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

Merged
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415
Sep 23, 2021
Merged

Fix regressions due to pipeline stalls introduced in #59415#59497
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415

Conversation

@alexcovington

Copy link
Copy Markdown
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.

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Sep 22, 2021
@ghost

Copy link
Copy Markdown

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:-

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadsrc/coreclr/jit/lsraxarch.cpp
if (size > 0)
{
if (size <= XMM_REGSIZE_BYTES)
if (regSize == YMM_REGSIZE_BYTES)

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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

alexcovington commented Sep 23, 2021

Copy link
Copy Markdown
ContributorAuthor

@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.

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

@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

xorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0movups xmmword ptr [rsp+2B18H],xmm0

Diff

xorecx,ecxxorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0mov qword ptr [rsp+2B20H],rcx

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Contributor

Failures seems to be related to #59541

@kunalspathak
kunalspathak merged commit b82e838 into dotnet:mainSep 23, 2021
@JulieLeeMSFTJulieLeeMSFT added this to the 7.0.0 milestone Sep 24, 2021
@kunalspathak

Copy link
Copy Markdown
Contributor

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

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91336F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91336DA94],0je short M03_L01call qword ptr [7FF91336F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D38F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D38DA8C],0je short M03_L01call qword ptr [7FF91D38F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D35F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D35DA8C],0je short M03_L01call qword ptr [7FF91D35F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; Total bytes of code 190
Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Linq.Tests.Perf_Enumerable.Range()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; 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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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
Copy Markdown
Contributor

Let me know if you think I missed anything.

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

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

Copy link
Copy Markdown
Member

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

@EgorBo

Copy link
Copy Markdown
Member

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

@ghostghost locked as resolved and limited conversation to collaborators Nov 11, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates 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

@alexcovington@kunalspathak@EgorBo@tannergooding@JulieLeeMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

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

Merged
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415
Sep 23, 2021
Merged

Fix regressions due to pipeline stalls introduced in #59415#59497
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415

Conversation

@alexcovington

Copy link
Copy Markdown
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.

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Sep 22, 2021
@ghost

Copy link
Copy Markdown

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:-

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadsrc/coreclr/jit/lsraxarch.cpp
if (size > 0)
{
if (size <= XMM_REGSIZE_BYTES)
if (regSize == YMM_REGSIZE_BYTES)

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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

alexcovington commented Sep 23, 2021

Copy link
Copy Markdown
ContributorAuthor

@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.

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

@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

xorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0movups xmmword ptr [rsp+2B18H],xmm0

Diff

xorecx,ecxxorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0mov qword ptr [rsp+2B20H],rcx

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Contributor

Failures seems to be related to #59541

@kunalspathak
kunalspathak merged commit b82e838 into dotnet:mainSep 23, 2021
@JulieLeeMSFTJulieLeeMSFT added this to the 7.0.0 milestone Sep 24, 2021
@kunalspathak

Copy link
Copy Markdown
Contributor

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

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91336F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91336DA94],0je short M03_L01call qword ptr [7FF91336F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D38F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D38DA8C],0je short M03_L01call qword ptr [7FF91D38F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D35F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D35DA8C],0je short M03_L01call qword ptr [7FF91D35F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; Total bytes of code 190
Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Linq.Tests.Perf_Enumerable.Range()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; 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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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
Copy Markdown
Contributor

Let me know if you think I missed anything.

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

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

Copy link
Copy Markdown
Member

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

@EgorBo

Copy link
Copy Markdown
Member

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

@ghostghost locked as resolved and limited conversation to collaborators Nov 11, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates 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

@alexcovington@kunalspathak@EgorBo@tannergooding@JulieLeeMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

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

Merged
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415
Sep 23, 2021
Merged

Fix regressions due to pipeline stalls introduced in #59415#59497
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415

Conversation

@alexcovington

Copy link
Copy Markdown
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.

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Sep 22, 2021
@ghost

Copy link
Copy Markdown

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:-

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadsrc/coreclr/jit/lsraxarch.cpp
if (size > 0)
{
if (size <= XMM_REGSIZE_BYTES)
if (regSize == YMM_REGSIZE_BYTES)

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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

alexcovington commented Sep 23, 2021

Copy link
Copy Markdown
ContributorAuthor

@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.

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

@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

xorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0movups xmmword ptr [rsp+2B18H],xmm0

Diff

xorecx,ecxxorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0mov qword ptr [rsp+2B20H],rcx

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Contributor

Failures seems to be related to #59541

@kunalspathak
kunalspathak merged commit b82e838 into dotnet:mainSep 23, 2021
@JulieLeeMSFTJulieLeeMSFT added this to the 7.0.0 milestone Sep 24, 2021
@kunalspathak

Copy link
Copy Markdown
Contributor

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

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91336F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91336DA94],0je short M03_L01call qword ptr [7FF91336F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D38F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D38DA8C],0je short M03_L01call qword ptr [7FF91D38F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D35F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D35DA8C],0je short M03_L01call qword ptr [7FF91D35F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; Total bytes of code 190
Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Linq.Tests.Perf_Enumerable.Range()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; 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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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
Copy Markdown
Contributor

Let me know if you think I missed anything.

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

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

Copy link
Copy Markdown
Member

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

@EgorBo

Copy link
Copy Markdown
Member

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

@ghostghost locked as resolved and limited conversation to collaborators Nov 11, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates 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

@alexcovington@kunalspathak@EgorBo@tannergooding@JulieLeeMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

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

Merged
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415
Sep 23, 2021
Merged

Fix regressions due to pipeline stalls introduced in #59415#59497
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415

Conversation

@alexcovington

Copy link
Copy Markdown
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.

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Sep 22, 2021
@ghost

Copy link
Copy Markdown

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:-

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadsrc/coreclr/jit/lsraxarch.cpp
if (size > 0)
{
if (size <= XMM_REGSIZE_BYTES)
if (regSize == YMM_REGSIZE_BYTES)

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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

alexcovington commented Sep 23, 2021

Copy link
Copy Markdown
ContributorAuthor

@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.

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

@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

xorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0movups xmmword ptr [rsp+2B18H],xmm0

Diff

xorecx,ecxxorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0mov qword ptr [rsp+2B20H],rcx

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Contributor

Failures seems to be related to #59541

@kunalspathak
kunalspathak merged commit b82e838 into dotnet:mainSep 23, 2021
@JulieLeeMSFTJulieLeeMSFT added this to the 7.0.0 milestone Sep 24, 2021
@kunalspathak

Copy link
Copy Markdown
Contributor

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

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91336F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91336DA94],0je short M03_L01call qword ptr [7FF91336F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D38F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D38DA8C],0je short M03_L01call qword ptr [7FF91D38F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D35F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D35DA8C],0je short M03_L01call qword ptr [7FF91D35F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; Total bytes of code 190
Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Linq.Tests.Perf_Enumerable.Range()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; 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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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
Copy Markdown
Contributor

Let me know if you think I missed anything.

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

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

Copy link
Copy Markdown
Member

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

@EgorBo

Copy link
Copy Markdown
Member

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

@ghostghost locked as resolved and limited conversation to collaborators Nov 11, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates 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

@alexcovington@kunalspathak@EgorBo@tannergooding@JulieLeeMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

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

Merged
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415
Sep 23, 2021
Merged

Fix regressions due to pipeline stalls introduced in #59415#59497
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415

Conversation

@alexcovington

Copy link
Copy Markdown
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.

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Sep 22, 2021
@ghost

Copy link
Copy Markdown

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:-

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadsrc/coreclr/jit/lsraxarch.cpp
if (size > 0)
{
if (size <= XMM_REGSIZE_BYTES)
if (regSize == YMM_REGSIZE_BYTES)

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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

alexcovington commented Sep 23, 2021

Copy link
Copy Markdown
ContributorAuthor

@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.

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

@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

xorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0movups xmmword ptr [rsp+2B18H],xmm0

Diff

xorecx,ecxxorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0mov qword ptr [rsp+2B20H],rcx

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Contributor

Failures seems to be related to #59541

@kunalspathak
kunalspathak merged commit b82e838 into dotnet:mainSep 23, 2021
@JulieLeeMSFTJulieLeeMSFT added this to the 7.0.0 milestone Sep 24, 2021
@kunalspathak

Copy link
Copy Markdown
Contributor

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

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91336F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91336DA94],0je short M03_L01call qword ptr [7FF91336F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D38F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D38DA8C],0je short M03_L01call qword ptr [7FF91D38F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D35F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D35DA8C],0je short M03_L01call qword ptr [7FF91D35F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; Total bytes of code 190
Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Linq.Tests.Perf_Enumerable.Range()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; 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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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
Copy Markdown
Contributor

Let me know if you think I missed anything.

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

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

Copy link
Copy Markdown
Member

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

@EgorBo

Copy link
Copy Markdown
Member

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

@ghostghost locked as resolved and limited conversation to collaborators Nov 11, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates 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

@alexcovington@kunalspathak@EgorBo@tannergooding@JulieLeeMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

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

Merged
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415
Sep 23, 2021
Merged

Fix regressions due to pipeline stalls introduced in #59415#59497
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415

Conversation

@alexcovington

Copy link
Copy Markdown
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.

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Sep 22, 2021
@ghost

Copy link
Copy Markdown

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:-

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadsrc/coreclr/jit/lsraxarch.cpp
if (size > 0)
{
if (size <= XMM_REGSIZE_BYTES)
if (regSize == YMM_REGSIZE_BYTES)

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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

alexcovington commented Sep 23, 2021

Copy link
Copy Markdown
ContributorAuthor

@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.

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

@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

xorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0movups xmmword ptr [rsp+2B18H],xmm0

Diff

xorecx,ecxxorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0mov qword ptr [rsp+2B20H],rcx

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Contributor

Failures seems to be related to #59541

@kunalspathak
kunalspathak merged commit b82e838 into dotnet:mainSep 23, 2021
@JulieLeeMSFTJulieLeeMSFT added this to the 7.0.0 milestone Sep 24, 2021
@kunalspathak

Copy link
Copy Markdown
Contributor

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

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91336F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91336DA94],0je short M03_L01call qword ptr [7FF91336F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D38F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D38DA8C],0je short M03_L01call qword ptr [7FF91D38F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D35F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D35DA8C],0je short M03_L01call qword ptr [7FF91D35F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; Total bytes of code 190
Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Linq.Tests.Perf_Enumerable.Range()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; 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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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
Copy Markdown
Contributor

Let me know if you think I missed anything.

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

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

Copy link
Copy Markdown
Member

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

@EgorBo

Copy link
Copy Markdown
Member

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

@ghostghost locked as resolved and limited conversation to collaborators Nov 11, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates 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

@alexcovington@kunalspathak@EgorBo@tannergooding@JulieLeeMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

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

Merged
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415
Sep 23, 2021
Merged

Fix regressions due to pipeline stalls introduced in #59415#59497
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415

Conversation

@alexcovington

Copy link
Copy Markdown
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.

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Sep 22, 2021
@ghost

Copy link
Copy Markdown

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:-

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadsrc/coreclr/jit/lsraxarch.cpp
if (size > 0)
{
if (size <= XMM_REGSIZE_BYTES)
if (regSize == YMM_REGSIZE_BYTES)

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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

alexcovington commented Sep 23, 2021

Copy link
Copy Markdown
ContributorAuthor

@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.

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

@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

xorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0movups xmmword ptr [rsp+2B18H],xmm0

Diff

xorecx,ecxxorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0mov qword ptr [rsp+2B20H],rcx

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Contributor

Failures seems to be related to #59541

@kunalspathak
kunalspathak merged commit b82e838 into dotnet:mainSep 23, 2021
@JulieLeeMSFTJulieLeeMSFT added this to the 7.0.0 milestone Sep 24, 2021
@kunalspathak

Copy link
Copy Markdown
Contributor

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

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91336F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91336DA94],0je short M03_L01call qword ptr [7FF91336F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D38F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D38DA8C],0je short M03_L01call qword ptr [7FF91D38F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D35F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D35DA8C],0je short M03_L01call qword ptr [7FF91D35F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; Total bytes of code 190
Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Linq.Tests.Perf_Enumerable.Range()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; 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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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
Copy Markdown
Contributor

Let me know if you think I missed anything.

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

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

Copy link
Copy Markdown
Member

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

@EgorBo

Copy link
Copy Markdown
Member

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

@ghostghost locked as resolved and limited conversation to collaborators Nov 11, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates 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

@alexcovington@kunalspathak@EgorBo@tannergooding@JulieLeeMSFT
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

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

Merged
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415
Sep 23, 2021
Merged

Fix regressions due to pipeline stalls introduced in #59415#59497
kunalspathak merged 12 commits into
dotnet:mainfrom
amd:issue-59415

Conversation

@alexcovington

Copy link
Copy Markdown
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.

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Sep 22, 2021
@ghost

Copy link
Copy Markdown

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:-

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadsrc/coreclr/jit/lsraxarch.cpp
if (size > 0)
{
if (size <= XMM_REGSIZE_BYTES)
if (regSize == YMM_REGSIZE_BYTES)

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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

alexcovington commented Sep 23, 2021

Copy link
Copy Markdown
ContributorAuthor

@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.

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

@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

xorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0movups xmmword ptr [rsp+2B18H],xmm0

Diff

xorecx,ecxxorpsxmm0,xmm0movups xmmword ptr [rsp+2B10H],xmm0mov qword ptr [rsp+2B20H],rcx

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
Contributor

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
Copy Markdown
Contributor

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
Copy Markdown
ContributorAuthor

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
Copy Markdown
Contributor

Failures seems to be related to #59541

@kunalspathak
kunalspathak merged commit b82e838 into dotnet:mainSep 23, 2021
@JulieLeeMSFTJulieLeeMSFT added this to the 7.0.0 milestone Sep 24, 2021
@kunalspathak

Copy link
Copy Markdown
Contributor

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

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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

@kunalspathak

Copy link
Copy Markdown
Contributor

@alexcovington

Copy link
Copy Markdown
ContributorAuthor

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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91336F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91336DA94],0je short M03_L01call qword ptr [7FF91336F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91339F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91339DA94],0je short M03_L01call qword ptr [7FF91339F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91337F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91337DA94],0je short M03_L01call qword ptr [7FF91337F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91338F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91338DA94],0je short M03_L01call qword ptr [7FF91338F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D38F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D38DA8C],0je short M03_L01call qword ptr [7FF91D38F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D35F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D35DA8C],0je short M03_L01call qword ptr [7FF91D35F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D36F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D36DA8C],0je short M03_L01call qword ptr [7FF91D36F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)vzerouppermoveax,edxsubeax,r9dcmprcx,r8je near ptr M04_L08cmpedx,r9djb short M04_L00jmp short M04_L01M04_L00:movr9d,edxM04_L01:movedx,r9dxorr9d,r9dcmprdx,4jb short M04_L05cmprdx,10jb short M04_L03lear10,[rdx+0FFF0]M04_L02:lear11,[r9+r9]vmovupdymm0,[rcx+r11]vmovupdymm1,[r8+r11] vpcmpeqw ymm0,ymm0,ymm1 vpmovmskb r11d,ymm0cmpr11d,0FFFFFFFFjne short M04_L03addr9,10cmpr10,r9jae short M04_L02M04_L03:lear10,[r9+4]cmprdx,r10jb short M04_L05M04_L04:movr10,[rcx+r9*2]cmp[r8+r9*2],r10jne short M04_L05addr9,4lear10,[r9+4]cmprdx,r10jae short M04_L04M04_L05:lear10,[r9+2]cmprdx,r10jb short M04_L06movr11d,[rcx+r9*2]cmp[r8+r9*2],r11djne short M04_L06movr9,r10M04_L06:cmpr9,rdxjae short M04_L08nop word ptr [rax+rax]M04_L07:lear10,[rcx+r9*2]movzxr11d,word ptr [r8+r9*2]movzxr10d,word ptr [r10]subr10d,r11djne short M04_L09incr9cmpr9,rdxjb short M04_L07M04_L08:vzeroupperretM04_L09:moveax,r10dvzeroupperret; Total bytes of code 197
; Internal.Runtime.CompilerServices.Unsafe.IsNullRef[[System.__Canon, System.Private.CoreLib]](System.__Canon ByRef)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,0B8learbp,[rsp+0F0]xoreax,eaxmov[rbp+0FFC0],raxmov[rbp+0FFB8],raxmovrax,[rdx]mov[rbp+0FFC0],raxmovr10,[r8]mov[rbp+0FFB8],r10movrcx,[rcx+20]movr11d,[rdx+8]movedx,[r8+8]mov[rsp+20],edxmov[rsp+28],r9dmov[rbp+0FFAC],rcxmovrdx,raxmov[rbp+0FFA4],rdxmovr8d,r11dmov[rbp+0FFB4],r8dmovr9,r10mov[rbp+0FF9C],r9learcx,[rbp+0FF40]call qword ptr [7FF96893D598]movrax,[7FF968947C88]movrcx,[rbp+0FFAC]movrdx,[rbp+0FFA4]movr8d,[rbp+0FFB4]movr9,[rbp+0FF9C]call qword ptr [rax]movesi,eaxlearcx,[rbp+0FF40]call qword ptr [7FF96893D5A0]moveax,esiaddrsp,0B8poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; Total bytes of code 172
; System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)pushrdipushrsipushrbxcmpedx,r9djg short M04_L01movr10d,edxM04_L00:movr11d,r10djmp short M04_L02M04_L01:movr10d,r9djmp short M04_L00M04_L02:testr10d,r10dje short M04_L09movzxesi,word ptr [rcx]cmpesi,7Fjg short M04_L09movzxedi,word ptr [r8]cmpedi,7Fjg short M04_L09cmpesi,edijne short M04_L04M04_L03:decr10daddrcx,2addr8,2jmp short M04_L02M04_L04:moveax,esioreax,20movebx,ediorebx,20cmpeax,ebxje short M04_L10M04_L05:moveax,esimovr10d,ediaddesi,0FFFFFF9Fcmpesi,19ja short M04_L06addeax,0FFFFFFE0M04_L06:addedi,0FFFFFF9Fcmpedi,19jbe short M04_L08M04_L07:subeax,r10dpoprbxpoprsipoprdiretM04_L08:addr10d,0FFFFFFE0jmp short M04_L07M04_L09:testr10d,r10djne short M04_L11moveax,edxsubeax,r9dpoprbxpoprsipoprdiretM04_L10:moveax,esioreax,20addeax,0FFFFFF9Fcmpeax,19ja short M04_L05jmp short M04_L03M04_L11:subr11d,r10dsubr9d,r11dsubedx,r11dpoprbxpoprsipoprdijmp 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)testrdx,rdx sete almovzxeax,alret; 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()pushrsisubrsp,20movrsi,rcxmovrcx,[rsi+30]movrax,[rcx]movrax,[rax+48]call qword ptr [rax+30]movrcx,raxmovrdx,[rsi+8]movr8,[rsi+18]movr9d,[rsi+38]cmp[rcx],ecxaddrsp,20poprsijmp 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)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxtestrdx,rdxje short M01_L02testr8,r8je short M01_L05learax,[rdx+0C]movedx,[rdx+8]lear10,[r8+0C]movr8d,[r8+8]mov[rsp+38],raxmov[rsp+40],edxmov[rsp+28],r10mov[rsp+30],r8dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)nopaddrsp,48retM01_L00:testr9d,0DFFFFFE0je short M01_L01cmpr9d,40000000je short M01_L01cmpr9d,10000000je short M01_L01movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3M01_L01:addrsp,48retM01_L02:testr8,r8je short M01_L03moveax,0FFFFFFFFjmp short M01_L04M01_L03:xoreax,eaxM01_L04:jmp short M01_L00M01_L05:moveax,1jmp short M01_L00; Total bytes of code 155
; System.Globalization.CompareInfo.Compare(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)subrsp,48xoreax,eaxmov[rsp+28],rax vxorps xmm4,xmm4,xmm4 vmovdqa xmmword ptr [rsp+30],xmm4mov[rsp+40],raxmovrax,[r8]movr10d,[r8+8]movr11,[rdx]movedx,[rdx+8]cmpedx,r10dje short M02_L01M02_L00:testr9d,0DFFFFFE0jne short M02_L05mov[rsp+38],r11mov[rsp+40],edxmov[rsp+28],raxmov[rsp+30],r10dleardx,[rsp+38]lear8,[rsp+28]call System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)jmp short M02_L02M02_L01:cmpr11,rax sete r8bmovzxr8d,r8btestr8d,r8dje short M02_L00jmp short M02_L03M02_L02:addrsp,48retM02_L03:testr9d,0DFFFFFE0je short M02_L04cmpr9d,40000000je short M02_L04cmpr9d,10000000jne short M02_L07M02_L04:xoreax,eaxaddrsp,48retM02_L05:cmpr9d,40000000jne short M02_L06movrcx,r11movr8,raxmovr9d,r10dcall System.SpanHelpers.SequenceCompareTo(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L06:cmpr9d,10000000jne short M02_L07movrcx,r11movr8,raxmovr9d,r10dcall System.Globalization.Ordinal.CompareStringIgnoreCase(Char ByRef, Int32, Char ByRef, Int32)jmp short M02_L02M02_L07:movecx,r9dcall System.Globalization.CompareInfo.ThrowCompareOptionsCheckFailed(System.Globalization.CompareOptions)int3; Total bytes of code 205
; System.Globalization.CompareInfo.IcuCompareString(System.ReadOnlySpan`1<Char>, System.ReadOnlySpan`1<Char>, System.Globalization.CompareOptions)pushrbppushr15pushr14pushr13pushr12pushrdipushrsipushrbxsubrsp,88learbp,[rsp+0C0]xorebx,ebxmov[rbp+0FFC0],rbxmov[rbp+0FFB8],rbxmovrbx,rcxmovrsi,rdxmovrdi,r8movr14d,r9dlearcx,[rbp+0FF78]movrdx,r10call CORINFO_HELP_INIT_PINVOKE_FRAMEmovr15,raxmovrcx,rspmov[rbp+0FF98],rcxmovrcx,rbpmov[rbp+0FFA8],rcxmovrdx,[rsi]mov[rbp+0FFC0],rdxmovr9,[rdi]mov[rbp+0FFB8],r9movrcx,[rbx+20]movr8d,[rsi+8]moveax,[rdi+8]mov[rsp+20],eaxmov[rsp+28],r14dmovrax,offset MD_Interop+Globalization.CompareString(IntPtr, Char*, Int32, Char*, Int32, System.Globalization.CompareOptions)mov[rbp+0FF88],raxlearax,[M03_L00]mov[rbp+0FFA0],raxlearax,[rbp+0FF78]mov[r15+10],raxmov byte ptr [r15+0C],0call qword ptr [7FF91D37F030]M03_L00:mov byte ptr [r15+0C],1cmp dword ptr [7FF91D37DA8C],0je short M03_L01call qword ptr [7FF91D37F3B8]M03_L01:movrdx,[rbp+0FF80]mov[r15+10],rdxaddrsp,88poprbxpoprsipoprdipopr12popr13popr14popr15poprbpret; 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()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; Total bytes of code 190
Compare codegen

.NET 7.0.0 (42.42.42.42424), X64 RyuJIT

; System.Linq.Tests.Perf_Enumerable.Range()pushrdipushrsisubrsp,28movrsi,rcxmovrcx,offset MT_System.Linq.Enumerable+RangeIteratorcall CORINFO_HELP_NEWSFASTmovrdi,raxcall CORINFO_HELP_GETCURRENTMANAGEDTHREADIDmov[rdi+8],eaxxoredx,edxmov[rdi+14],edxmov dword ptr [rdi+18],64movrdx,[rsi+8]movrcx,rdiaddrsp,28poprsipoprdijmp 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)pushrbppushrsisubrsp,38learbp,[rsp+40]mov[rbp+0FFE0],rspmovrsi,rdxmovr11,7FF912FD0470call qword ptr [7FF913390470]movrcx,raxmov[rbp+0FFF0],rcxmovr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxje short M01_L01M01_L00:movrcx,[rbp+0FFF0]movr11,7FF912FD0480call qword ptr [7FF913390480]mov[rsi+40],eaxmovrcx,[rbp+0FFF0]movr11,7FF912FD0478call qword ptr [7FF913390478]testeax,eaxjne short M01_L00M01_L01:movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]nopaddrsp,38poprsipoprbpretpushrbppushrsisubrsp,28movrbp,[rcx+20]mov[rsp+20],rbplearbp,[rbp+40]cmp qword ptr [rbp+0FFF0],0je short M01_L02movrcx,[rbp+0FFF0]movr11,7FF912FD0488call qword ptr [7FF913390488]M01_L02:nopaddrsp,28poprsipoprbpret; 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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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],rcxmovrax,[rcx+10]movrcx,raxmovrdx,[rsp+8]movrdx,[rdx+28]movrax,[rax]movrax,[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
Copy Markdown
Contributor

Let me know if you think I missed anything.

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

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

Copy link
Copy Markdown
Member

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

@EgorBo

Copy link
Copy Markdown
Member

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

@ghostghost locked as resolved and limited conversation to collaborators Nov 11, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates 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

@alexcovington@kunalspathak@EgorBo@tannergooding@JulieLeeMSFT