Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[JitDiff X64] xtqqczze/dotnet-runtime/BitCast-Memory2 #991

Open
MihuBot opened this issue Feb 9, 2025 · 3 comments
Open

[JitDiff X64] xtqqczze/dotnet-runtime/BitCast-Memory2 #991

MihuBot opened this issue Feb 9, 2025 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Feb 9, 2025

Job completed in 15 minutes 20 seconds (remote runner delay: 1 minute 21 seconds).

Using arguments: -NoPRLink

Diffs

Diffs
Found 88 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 43692361
Total bytes of diff: 43693174
Total bytes of delta: 813 (0.00 % of base)
Total relative delta: -6.22
    diff is a regression.
    relative diff is an improvement.


Total byte diff includes 2677 bytes from reconciling methods
	Base had   48 unique methods,     2505 unique bytes
	Diff had   64 unique methods,     5182 unique bytes

Top file regressions (bytes):
         754 : System.Private.CoreLib.dasm (0.01 % of base)
         146 : System.Memory.dasm (0.05 % of base)
          13 : System.Security.Cryptography.dasm (0.00 % of base)

Top file improvements (bytes):
         -68 : System.Net.WebSockets.dasm (-0.05 % of base)
         -32 : System.Net.Sockets.dasm (-0.01 % of base)

5 total files with Code Size differences (2 improved, 3 regressed), 258 unchanged.

Top method regressions (bytes):
         343 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.__Canon](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[double](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[int](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[long](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[short](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.Nullable`1[int]](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.Numerics.Vector`1[float]](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[ubyte](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         134 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[System.__Canon](System.__Canon[],int,int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts) (0 base, 1 diff methods)
         134 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[System.__Canon](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
         114 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[System.__Canon](System.ReadOnlyMemory`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts) (0 base, 1 diff methods)
         101 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.__Canon](System.Memory`1[System.__Canon],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[double](double[],int,int):System.Collections.Generic.IEnumerable`1[double] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[int](int[],int,int):System.Collections.Generic.IEnumerable`1[int] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[long](long[],int,int):System.Collections.Generic.IEnumerable`1[long] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[short](short[],int,int):System.Collections.Generic.IEnumerable`1[short] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[System.Nullable`1[int]](System.Nullable`1[int][],int,int):System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][],int,int):System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[ubyte](ubyte[],int,int):System.Collections.Generic.IEnumerable`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[double](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[int](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[long](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[short](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[System.Nullable`1[int]](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[System.Numerics.Vector`1[float]](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[ubyte](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[double](System.ReadOnlyMemory`1[double]):System.Collections.Generic.IEnumerable`1[double] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[int](System.ReadOnlyMemory`1[int]):System.Collections.Generic.IEnumerable`1[int] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[long](System.ReadOnlyMemory`1[long]):System.Collections.Generic.IEnumerable`1[long] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[short](System.ReadOnlyMemory`1[short]):System.Collections.Generic.IEnumerable`1[short] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]]):System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[System.Numerics.Vector`1[float]](System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]):System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[ubyte](System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.IEnumerable`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          62 (18.90 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[System.__Canon]:.ctor(System.ReadOnlyMemory`1[System.__Canon]):this (FullOpts)
          54 (11.84 % of base) : System.Private.CoreLib.dasm - System.IO.MemoryStream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          51 (7.25 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream:<WriteAsyncCore>g__TransformBlock|53_0(System.Security.Cryptography.ICryptoTransform,System.ReadOnlyMemory`1[ubyte],ubyte[],int):int (FullOpts)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[double](System.Memory`1[double],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[int](System.Memory`1[int],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[long](System.Memory`1[long],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[short](System.Memory`1[short],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Nullable`1[int]](System.Memory`1[System.Nullable`1[int]],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Numerics.Vector`1[float]](System.Memory`1[System.Numerics.Vector`1[float]],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[ubyte](System.Memory`1[ubyte],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          45 (12.20 % of base) : System.Private.CoreLib.dasm - System.IO.UnmanagedMemoryStream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[double]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[int]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[long]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[short]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[System.__Canon]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[ubyte]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[double]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[int]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[long]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[short]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[System.__Canon]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[ubyte]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[double]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[int]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[long]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[short]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[System.__Canon]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[ubyte]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          15 (3.42 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[double]:.ctor(System.ReadOnlyMemory`1[double]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[int]:.ctor(System.ReadOnlyMemory`1[int]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[long]:.ctor(System.ReadOnlyMemory`1[long]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[short]:.ctor(System.ReadOnlyMemory`1[short]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[System.Nullable`1[int]]:.ctor(System.ReadOnlyMemory`1[System.Nullable`1[int]]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[System.Numerics.Vector`1[float]]:.ctor(System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[ubyte]:.ctor(System.ReadOnlyMemory`1[ubyte]):this (FullOpts)
           2 (0.38 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
           2 (0.38 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

Top method improvements (bytes):
        -249 (-71.14 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.__Canon](System.ReadOnlyMemory`1[System.__Canon],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[double](System.ReadOnlyMemory`1[double],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[int](System.ReadOnlyMemory`1[int],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[long](System.ReadOnlyMemory`1[long],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[short](System.ReadOnlyMemory`1[short],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Numerics.Vector`1[float]](System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[ubyte](System.ReadOnlyMemory`1[ubyte],byref):ubyte (FullOpts)
        -134 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[System.__Canon](System.__Canon[],int,int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts) (1 base, 0 diff methods)
        -134 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[System.__Canon](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
        -114 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[System.__Canon](System.ReadOnlyMemory`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[double](double[],int,int):System.Collections.Generic.IEnumerable`1[double] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[int](int[],int,int):System.Collections.Generic.IEnumerable`1[int] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[long](long[],int,int):System.Collections.Generic.IEnumerable`1[long] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[short](short[],int,int):System.Collections.Generic.IEnumerable`1[short] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[System.Nullable`1[int]](System.Nullable`1[int][],int,int):System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][],int,int):System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[ubyte](ubyte[],int,int):System.Collections.Generic.IEnumerable`1[ubyte] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[double](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[int](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[long](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[short](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[System.Nullable`1[int]](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[System.Numerics.Vector`1[float]](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[ubyte](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[double](System.ReadOnlyMemory`1[double]):System.Collections.Generic.IEnumerable`1[double] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[int](System.ReadOnlyMemory`1[int]):System.Collections.Generic.IEnumerable`1[int] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[long](System.ReadOnlyMemory`1[long]):System.Collections.Generic.IEnumerable`1[long] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[short](System.ReadOnlyMemory`1[short]):System.Collections.Generic.IEnumerable`1[short] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]]):System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[System.Numerics.Vector`1[float]](System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]):System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[ubyte](System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.IEnumerable`1[ubyte] (FullOpts) (1 base, 0 diff methods)
         -68 (-3.34 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.WebSocket+<ReceiveAsync>d__14:MoveNext():this (FullOpts)
         -40 (-6.28 % of base) : System.Private.CoreLib.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         -38 (-1.15 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream+<ReadAsyncCore>d__44:MoveNext():this (FullOpts)
         -32 (-28.57 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:get_Buffer():ubyte[]:this (FullOpts)
         -22 (-4.86 % of base) : System.Private.CoreLib.dasm - System.IO.UnmanagedMemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         -21 (-6.77 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         -18 (-3.12 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadAsync(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         -18 (-3.12 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadBlockAsync(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[double]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[int]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[long]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[short]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[System.__Canon]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[ubyte]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[double]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[int]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[long]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[short]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[System.__Canon]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[ubyte]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[double]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[int]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[long]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[short]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[System.__Canon]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[ubyte]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)

Top method regressions (percentages):
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[double](double[],int,int):System.Collections.Generic.IEnumerable`1[double] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[int](int[],int,int):System.Collections.Generic.IEnumerable`1[int] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[long](long[],int,int):System.Collections.Generic.IEnumerable`1[long] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[short](short[],int,int):System.Collections.Generic.IEnumerable`1[short] (FullOpts) (0 base, 1 diff methods)
         134 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[System.__Canon](System.__Canon[],int,int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[System.Nullable`1[int]](System.Nullable`1[int][],int,int):System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][],int,int):System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|20_2[ubyte](ubyte[],int,int):System.Collections.Generic.IEnumerable`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[double](System.ReadOnlyMemory`1[double]):System.Collections.Generic.IEnumerable`1[double] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[int](System.ReadOnlyMemory`1[int]):System.Collections.Generic.IEnumerable`1[int] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[long](System.ReadOnlyMemory`1[long]):System.Collections.Generic.IEnumerable`1[long] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[short](System.ReadOnlyMemory`1[short]):System.Collections.Generic.IEnumerable`1[short] (FullOpts) (0 base, 1 diff methods)
         114 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[System.__Canon](System.ReadOnlyMemory`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]]):System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[System.Numerics.Vector`1[float]](System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]):System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]] (FullOpts) (0 base, 1 diff methods)
          71 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|20_1[ubyte](System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.IEnumerable`1[ubyte] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[double](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[int](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[long](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[short](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
         134 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[System.__Canon](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[System.Nullable`1[int]](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[System.Numerics.Vector`1[float]](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          87 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|20_0[ubyte](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[double](System.Memory`1[double],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[int](System.Memory`1[int],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[long](System.Memory`1[long],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[short](System.Memory`1[short],byref):ubyte (FullOpts) (0 base, 1 diff methods)
         101 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.__Canon](System.Memory`1[System.__Canon],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Nullable`1[int]](System.Memory`1[System.Nullable`1[int]],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Numerics.Vector`1[float]](System.Memory`1[System.Numerics.Vector`1[float]],byref):ubyte (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[ubyte](System.Memory`1[ubyte],byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[double](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[int](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[long](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[short](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         343 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.__Canon](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.Nullable`1[int]](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.Numerics.Vector`1[float]](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
         272 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[ubyte](System.Object,int,int,byref):ubyte (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[double]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[int]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[long]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[short]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[System.__Canon]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|20_2>d`1[ubyte]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[double]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[int]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[long]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[short]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[System.__Canon]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|20_1>d`1[ubyte]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[double]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[int]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[long]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[short]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[System.__Canon]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          17 (Infinity of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|20_0>d`1[ubyte]:.ctor(int):this (FullOpts) (0 base, 1 diff methods)
          62 (18.90 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[System.__Canon]:.ctor(System.ReadOnlyMemory`1[System.__Canon]):this (FullOpts)
          45 (12.20 % of base) : System.Private.CoreLib.dasm - System.IO.UnmanagedMemoryStream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          54 (11.84 % of base) : System.Private.CoreLib.dasm - System.IO.MemoryStream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          51 (7.25 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream:<WriteAsyncCore>g__TransformBlock|53_0(System.Security.Cryptography.ICryptoTransform,System.ReadOnlyMemory`1[ubyte],ubyte[],int):int (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[double]:.ctor(System.ReadOnlyMemory`1[double]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[int]:.ctor(System.ReadOnlyMemory`1[int]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[long]:.ctor(System.ReadOnlyMemory`1[long]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[short]:.ctor(System.ReadOnlyMemory`1[short]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[System.Nullable`1[int]]:.ctor(System.ReadOnlyMemory`1[System.Nullable`1[int]]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[System.Numerics.Vector`1[float]]:.ctor(System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]):this (FullOpts)
          12 (5.22 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequence`1[ubyte]:.ctor(System.ReadOnlyMemory`1[ubyte]):this (FullOpts)
          15 (3.42 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
           2 (0.38 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
           2 (0.38 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

Top method improvements (percentages):
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[double](double[],int,int):System.Collections.Generic.IEnumerable`1[double] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[int](int[],int,int):System.Collections.Generic.IEnumerable`1[int] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[long](long[],int,int):System.Collections.Generic.IEnumerable`1[long] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[short](short[],int,int):System.Collections.Generic.IEnumerable`1[short] (FullOpts) (1 base, 0 diff methods)
        -134 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[System.__Canon](System.__Canon[],int,int):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[System.Nullable`1[int]](System.Nullable`1[int][],int,int):System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][],int,int):System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromArray|18_2[ubyte](ubyte[],int,int):System.Collections.Generic.IEnumerable`1[ubyte] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[double](System.ReadOnlyMemory`1[double]):System.Collections.Generic.IEnumerable`1[double] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[int](System.ReadOnlyMemory`1[int]):System.Collections.Generic.IEnumerable`1[int] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[long](System.ReadOnlyMemory`1[long]):System.Collections.Generic.IEnumerable`1[long] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[short](System.ReadOnlyMemory`1[short]):System.Collections.Generic.IEnumerable`1[short] (FullOpts) (1 base, 0 diff methods)
        -114 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[System.__Canon](System.ReadOnlyMemory`1[System.__Canon]):System.Collections.Generic.IEnumerable`1[System.__Canon] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]]):System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[System.Numerics.Vector`1[float]](System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]):System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]] (FullOpts) (1 base, 0 diff methods)
         -71 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromMemoryManager|18_1[ubyte](System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.IEnumerable`1[ubyte] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[double](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[int](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[long](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[short](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
        -134 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[System.__Canon](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[System.Nullable`1[int]](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[System.Numerics.Vector`1[float]](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -87 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:<ToEnumerable>g__FromString|18_0[ubyte](System.String,int,int):System.Collections.Generic.IEnumerable`1[ushort] (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[double]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[int]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[long]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[short]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[System.__Canon]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromArray|18_2>d`1[ubyte]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[double]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[int]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[long]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[short]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[System.__Canon]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromMemoryManager|18_1>d`1[ubyte]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[double]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[int]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[long]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[short]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[System.__Canon]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[System.Nullable`1[int]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[System.Numerics.Vector`1[float]]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
         -17 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal+<<ToEnumerable>g__FromString|18_0>d`1[ubyte]:.ctor(int):this (FullOpts) (1 base, 0 diff methods)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[double](System.ReadOnlyMemory`1[double],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[int](System.ReadOnlyMemory`1[int],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[long](System.ReadOnlyMemory`1[long],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[short](System.ReadOnlyMemory`1[short],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Numerics.Vector`1[float]](System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]],byref):ubyte (FullOpts)
        -239 (-83.57 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[ubyte](System.ReadOnlyMemory`1[ubyte],byref):ubyte (FullOpts)
        -249 (-71.14 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.__Canon](System.ReadOnlyMemory`1[System.__Canon],byref):ubyte (FullOpts)
         -32 (-28.57 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:get_Buffer():ubyte[]:this (FullOpts)
         -21 (-6.77 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         -40 (-6.28 % of base) : System.Private.CoreLib.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         -22 (-4.86 % of base) : System.Private.CoreLib.dasm - System.IO.UnmanagedMemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         -68 (-3.34 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.WebSocket+<ReceiveAsync>d__14:MoveNext():this (FullOpts)
         -18 (-3.12 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadAsync(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         -18 (-3.12 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadBlockAsync(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         -38 (-1.15 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream+<ReadAsyncCore>d__44:MoveNext():this (FullOpts)

142 total methods with Code Size differences (64 improved, 78 regressed), 247478 unchanged.

--------------------------------------------------------------------------------

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Feb 9, 2025

Top method regressions

62 (18.90 % of base) - System.Buffers.ReadOnlySequence`1[System.__Canon]:.ctor(System.ReadOnlyMemory`1[System.__Canon]):this
 ; Assembly listing for method System.Buffers.ReadOnlySequence`1[System.__Canon]:.ctor(System.ReadOnlyMemory`1[System.__Canon]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 10,  6   )   byref  ->  rbx         this single-def
-;  V01 TypeCtx      [V01,T01] (  7,  4.80)    long  ->  r15         single-def
-;  V02 arg1         [V02,T02] (  5,  4.50)  struct (16) [rbp-0x30]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[System.__Canon]>
+;  V01 TypeCtx      [V01,T02] (  7,  4.80)    long  ->  r15         single-def
+;  V02 arg1         [V02,T01] (  6,  5   )  struct (16) [rbp-0x30]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[System.__Canon]>
 ;  V03 loc0         [V03    ] (  3,  2   )     ref  ->  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Buffers.MemoryManager`1[System.__Canon]>
 ;  V04 loc1         [V04    ] (  3,  2   )     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V05 loc2         [V05    ] (  2,  1.50)     int  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V06 loc3         [V06    ] (  4,  2   )  struct (16) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[System.__Canon]>
-;  V07 loc4         [V07,T11] (  3,  1.50)     ref  ->  r15         class-hnd single-def <System.__Canon[]>
-;  V08 loc5         [V08,T12] (  3,  1.50)     int  ->  r14        
+;  V07 loc4         [V07,T14] (  3,  1.50)     ref  ->  r15         class-hnd single-def <System.__Canon[]>
+;  V08 loc5         [V08,T15] (  3,  1.50)     int  ->  r14        
 ;* V09 loc6         [V09    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.String>
 ;* V10 loc7         [V10    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V12 tmp1         [V12    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V13 tmp2         [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V14 tmp3         [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V15 tmp4         [V15    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V16 tmp5         [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V17 tmp6         [V17,T09] (  2,  2   )     int  ->  rax         "Inlining Arg"
-;* V18 tmp7         [V18    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V19 tmp8         [V19    ] (  2,  1   )     ref  ->  [rbp-0x58]  do-not-enreg[X] addr-exposed "field V06._array (fldOffset=0x0)" P-DEP
-;  V20 tmp9         [V20    ] (  2,  1   )     int  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V06._offset (fldOffset=0x8)" P-DEP
-;  V21 tmp10        [V21    ] (  2,  1   )     int  ->  [rbp-0x4C]  do-not-enreg[X] addr-exposed "field V06._count (fldOffset=0xc)" P-DEP
-;  V22 tmp11        [V22,T05] (  2,  4   )    long  ->  rdi         "argument with side effect"
-;  V23 tmp12        [V23,T10] (  2,  2   )    long  ->  rdi         "argument with side effect"
-;  V24 cse0         [V24,T07] (  3,  2.50)     ref  ->  r14         "CSE #01: aggressive"
-;  V25 rat0         [V25,T04] (  3,  4   )    long  ->  rdi         "runtime lookup"
-;  V26 rat1         [V26,T03] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V27 rat2         [V27,T08] (  3,  2   )    long  ->  rdi         "runtime lookup"
-;  V28 rat3         [V28,T06] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V17 tmp6         [V17,T12] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;* V18 tmp7         [V18    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V19 tmp8         [V19    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V20 tmp9         [V20    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V21 tmp10        [V21    ] (  2,  1   )     ref  ->  [rbp-0x58]  do-not-enreg[X] addr-exposed "field V06._array (fldOffset=0x0)" P-DEP
+;  V22 tmp11        [V22    ] (  2,  1   )     int  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V06._offset (fldOffset=0x8)" P-DEP
+;  V23 tmp12        [V23    ] (  2,  1   )     int  ->  [rbp-0x4C]  do-not-enreg[X] addr-exposed "field V06._count (fldOffset=0xc)" P-DEP
+;  V24 tmp13        [V24,T05] (  2,  4   )    long  ->  rdi         "argument with side effect"
+;  V25 tmp14        [V25,T09] (  3,  2.20)    long  ->  rdi         "argument with side effect"
+;  V26 tmp15        [V26,T13] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V27 cse0         [V27,T08] (  3,  2.50)     ref  ->  r14         "CSE #01: aggressive"
+;  V28 rat0         [V28,T04] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V29 rat1         [V29,T03] (  3,  5.60)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V30 rat2         [V30,T10] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V31 rat3         [V31,T06] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V32 rat4         [V32,T11] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V33 rat5         [V33,T07] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 72
 
 G_M28634_IG01:
        push     rbp
        push     r15
        push     r14
        push     rbx
        sub      rsp, 72
        lea      rbp, [rsp+0x60]
        xor      eax, eax
        mov      qword ptr [rbp-0x58], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        mov      qword ptr [rbp-0x20], rsi
        mov      gword ptr [rbp-0x30], rdx
        mov      qword ptr [rbp-0x28], rcx
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=49 bbWeight=1 PerfScore 11.83
 G_M28634_IG02:
        mov      rdi, qword ptr [r15+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi+0x68]
        test     rdi, rdi
        je       SHORT G_M28634_IG05
 						;; size=16 bbWeight=1 PerfScore 7.25
 G_M28634_IG03:
        mov      r14, gword ptr [rbp-0x30]
        mov      rsi, r14
        mov      rdx, qword ptr [rbp-0x28]
        lea      rcx, [rbp-0x38]
        lea      r8, [rbp-0x40]
        lea      r9, [rbp-0x48]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetMemoryManager[System.__Canon,System.__Canon](System.ReadOnlyMemory`1[System.__Canon],byref,byref,byref):ubyte
        call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetMemoryManager[System.__Canon,System.__Canon](System.ReadOnlyMemory`1[System.__Canon],byref,byref,byref):ubyte
        test     eax, eax
        je       SHORT G_M28634_IG06
 						;; size=39 bbWeight=1 PerfScore 8.25
 G_M28634_IG04:
        mov      rsi, gword ptr [rbp-0x38]
        mov      rdi, rbx
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, gword ptr [rbp-0x38]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      eax, dword ptr [rbp-0x40]
        or       eax, 0xD1FFAB1E
        mov      dword ptr [rbx+0x10], eax
        mov      eax, dword ptr [rbp-0x40]
        add      eax, dword ptr [rbp-0x48]
        mov      dword ptr [rbx+0x14], eax
-       jmp      SHORT G_M28634_IG08
-						;; size=47 bbWeight=0.50 PerfScore 6.50
+       jmp      G_M28634_IG10
+						;; size=50 bbWeight=0.50 PerfScore 6.50
 G_M28634_IG05:
        mov      rdi, r15
        mov      rsi, 0xD1FFAB1E      ; global ptr
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS
        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rdi, rax
        jmp      SHORT G_M28634_IG03
 						;; size=30 bbWeight=0.20 PerfScore 1.20
 G_M28634_IG06:
        mov      rdi, qword ptr [r15+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi+0x70]
        test     rdi, rdi
-       je       SHORT G_M28634_IG09
+       je       SHORT G_M28634_IG11
 						;; size=16 bbWeight=0.50 PerfScore 3.62
 G_M28634_IG07:
+       mov      rsi, qword ptr [rdi+0x18]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
+       je       G_M28634_IG12
+						;; size=17 bbWeight=0.50 PerfScore 2.62
+G_M28634_IG08:
+       mov      rdi, rax
+						;; size=3 bbWeight=0.40 PerfScore 0.10
+G_M28634_IG09:
+       lea      r8, [rbp-0x58]
        mov      rsi, r14
-       mov      rdx, qword ptr [rbp-0x28]
-       lea      rcx, [rbp-0x58]
-       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.__Canon](System.ReadOnlyMemory`1[System.__Canon],byref):ubyte
-       call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.__Canon](System.ReadOnlyMemory`1[System.__Canon],byref):ubyte
+       mov      edx, dword ptr [rbp-0x28]
+       mov      ecx, dword ptr [rbp-0x24]
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.__Canon](System.Object,int,int,byref):ubyte
+       call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.__Canon](System.Object,int,int,byref):ubyte
        test     eax, eax
-       je       SHORT G_M28634_IG10
+       je       G_M28634_IG13
        mov      r15, gword ptr [rbp-0x58]
        mov      r14d, dword ptr [rbp-0x50]
        mov      rdi, rbx
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      dword ptr [rbx+0x10], r14d
        add      r14d, dword ptr [rbp-0x4C]
        or       r14d, 0xD1FFAB1E
        mov      dword ptr [rbx+0x14], r14d
-						;; size=77 bbWeight=0.50 PerfScore 7.88
-G_M28634_IG08:
+						;; size=83 bbWeight=0.50 PerfScore 8.38
+G_M28634_IG10:
        add      rsp, 72
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=1 PerfScore 3.25
-G_M28634_IG09:
+G_M28634_IG11:
        mov      rdi, r15
        mov      rsi, 0xD1FFAB1E      ; global ptr
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS
        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rdi, rax
-       jmp      SHORT G_M28634_IG07
-						;; size=30 bbWeight=0.10 PerfScore 0.60
-G_M28634_IG10:
+       jmp      G_M28634_IG07
+						;; size=33 bbWeight=0.10 PerfScore 0.60
+G_M28634_IG12:
+       mov      rsi, 0xD1FFAB1E      ; global ptr
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD
+       mov      rdi, rax
+       jmp      G_M28634_IG09
+						;; size=30 bbWeight=0.10 PerfScore 0.58
+G_M28634_IG13:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException()
        call     [rax]System.ThrowHelper:ThrowInvalidOperationException()
        int3     
 						;; size=13 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 328, prolog size 35, PerfScore 52.13, instruction count 88, allocated bytes for code 328 (MethodHash=58a89025) for method System.Buffers.ReadOnlySequence`1[System.__Canon]:.ctor(System.ReadOnlyMemory`1[System.__Canon]):this (FullOpts)
+; Total bytes of code 390, prolog size 35, PerfScore 55.93, instruction count 99, allocated bytes for code 390 (MethodHash=58a89025) for method System.Buffers.ReadOnlySequence`1[System.__Canon]:.ctor(System.ReadOnlyMemory`1[System.__Canon]):this (FullOpts)
 ; ============================================================
12 (5.22 % of base) - System.Buffers.ReadOnlySequence`1[double]:.ctor(System.ReadOnlyMemory`1[double]):this
 ; Assembly listing for method System.Buffers.ReadOnlySequence`1[double]:.ctor(System.ReadOnlyMemory`1[double]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 10,  6   )   byref  ->  rbx         this single-def
-;  V01 arg1         [V01,T01] (  6,  5.50)  struct (16) [rbp-0x38]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[double]>
+;  V01 arg1         [V01,T01] (  5,  5   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[double]>
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd single-def <System.Buffers.MemoryManager`1[double]>
-;  V03 loc1         [V03,T04] (  3,  2   )     int  ->  r14         ld-addr-op
-;  V04 loc2         [V04,T10] (  2,  1.50)     int  ->  r13         ld-addr-op
-;  V05 loc3         [V05    ] (  4,  2   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[double]>
-;  V06 loc4         [V06,T08] (  3,  1.50)     ref  ->  r15         class-hnd single-def <double[]>
-;  V07 loc5         [V07,T09] (  3,  1.50)     int  ->  r14        
+;  V03 loc1         [V03,T06] (  3,  2   )     int  ->  r12         ld-addr-op
+;  V04 loc2         [V04,T09] (  2,  1.50)     int  ->  [rbp-0x3C]  ld-addr-op spill-single-def
+;  V05 loc3         [V05    ] (  4,  2   )  struct (16) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[double]>
+;  V06 loc4         [V06,T07] (  3,  1.50)     ref  ->  r15         class-hnd single-def <double[]>
+;  V07 loc5         [V07,T08] (  3,  1.50)     int  ->  r14        
 ;* V08 loc6         [V08    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.String>
 ;* V09 loc7         [V09    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V11 tmp1         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlyMemory`1[double]>
-;  V13 tmp3         [V13,T02] (  4,  6   )     ref  ->  r12         class-hnd single-def "dup spill" <System.Buffers.MemoryManager`1[double]>
+;  V13 tmp3         [V13,T02] (  4,  6   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def "dup spill" <System.Buffers.MemoryManager`1[double]>
 ;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.Buffers.MemoryManager`1[double]>
 ;* V15 tmp5         [V15    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp7         [V17    ] (  2,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
-;  V18 tmp8         [V18    ] (  2,  1   )     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
-;  V19 tmp9         [V19    ] (  2,  1   )     int  ->  [rbp-0x3C]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
-;  V20 tmp10        [V20,T05] (  2,  2   )     ref  ->  rsi         single-def "field V12._object (fldOffset=0x0)" P-INDEP
-;  V21 tmp11        [V21,T06] (  2,  2   )     int  ->  r14         "field V12._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp12        [V22,T07] (  2,  2   )     int  ->  r13         "field V12._length (fldOffset=0xc)" P-INDEP
-;  V23 cse0         [V23,T03] (  3,  2.50)     ref  ->  r15         "CSE #01: aggressive"
+;  V17 tmp7         [V17    ] (  2,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
+;  V18 tmp8         [V18    ] (  2,  1   )     int  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
+;  V19 tmp9         [V19    ] (  2,  1   )     int  ->  [rbp-0x44]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
+;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._object (fldOffset=0x0)" P-INDEP
+;* V21 tmp11        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x8)" P-INDEP
+;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0xc)" P-INDEP
+;  V23 tmp13        [V23,T03] (  3,  2.50)     ref  ->  r15         single-def "V01.[000..008)"
+;  V24 tmp14        [V24,T04] (  3,  2.50)     int  ->  r14         "V01.[008..012)"
+;  V25 tmp15        [V25,T05] (  3,  2.50)     int  ->  r13         "V01.[012..016)"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M48922_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 56
+       lea      rbp, [rsp+0x60]
        xor      eax, eax
-       mov      qword ptr [rbp-0x48], rax
+       mov      qword ptr [rbp-0x50], rax
        mov      gword ptr [rbp-0x38], rsi
        mov      qword ptr [rbp-0x30], rdx
        mov      rbx, rdi
 						;; size=36 bbWeight=1 PerfScore 10.25
 G_M48922_IG02:
        mov      r15, gword ptr [rbp-0x38]
-       mov      rsi, r15
        mov      r14d, dword ptr [rbp-0x30]
        mov      r13d, dword ptr [rbp-0x2C]
+       mov      r12d, r14d
+       mov      dword ptr [rbp-0x3C], r13d
+       mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.MemoryManager`1[double]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       mov      r12, rax
-       test     r12, r12
+       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
+       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS
+       mov      gword ptr [rbp-0x58], rax
+       test     rax, rax
        je       SHORT G_M48922_IG04
-						;; size=45 bbWeight=1 PerfScore 8.25
+						;; size=53 bbWeight=1 PerfScore 10.25
 G_M48922_IG03:
        mov      rdi, rbx
-       mov      rsi, r12
+       mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x08]
-       mov      rsi, r12
+       mov      rsi, gword ptr [rbp-0x58]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      edi, r14d
-       or       edi, 0xD1FFAB1E
-       mov      dword ptr [rbx+0x10], edi
-       add      r14d, r13d
-       mov      dword ptr [rbx+0x14], r14d
+       mov      ecx, r12d
+       or       ecx, 0xD1FFAB1E
+       mov      dword ptr [rbx+0x10], ecx
+       add      r12d, dword ptr [rbp-0x3C]
+       mov      dword ptr [rbx+0x14], r12d
        jmp      SHORT G_M48922_IG06
-						;; size=44 bbWeight=0.50 PerfScore 4.00
+						;; size=46 bbWeight=0.50 PerfScore 5.25
 G_M48922_IG04:
+       lea      rcx, [rbp-0x50]
        mov      rdi, r15
-       mov      rsi, qword ptr [rbp-0x30]
-       lea      rdx, [rbp-0x48]
-       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArray[double](System.ReadOnlyMemory`1[double],byref):ubyte
-       call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArray[double](System.ReadOnlyMemory`1[double],byref):ubyte
+       mov      esi, r14d
+       mov      edx, r13d
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[double](System.Object,int,int,byref):ubyte
+       call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[double](System.Object,int,int,byref):ubyte
        test     eax, eax
        jne      SHORT G_M48922_IG05
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException()
        call     [rax]System.ThrowHelper:ThrowInvalidOperationException()
        int3     
-						;; size=40 bbWeight=0.50 PerfScore 4.88
+						;; size=42 bbWeight=0.50 PerfScore 4.62
 G_M48922_IG05:
-       mov      r15, gword ptr [rbp-0x48]
-       mov      r14d, dword ptr [rbp-0x40]
+       mov      r15, gword ptr [rbp-0x50]
+       mov      r14d, dword ptr [rbp-0x48]
        mov      rdi, rbx
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      dword ptr [rbx+0x10], r14d
-       add      r14d, dword ptr [rbp-0x3C]
+       add      r14d, dword ptr [rbp-0x44]
        or       r14d, 0xD1FFAB1E
        mov      dword ptr [rbx+0x14], r14d
 						;; size=50 bbWeight=0.50 PerfScore 4.75
 G_M48922_IG06:
-       add      rsp, 40
+       add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 230, prolog size 25, PerfScore 36.38, instruction count 65, allocated bytes for code 230 (MethodHash=c77240e5) for method System.Buffers.ReadOnlySequence`1[double]:.ctor(System.ReadOnlyMemory`1[double]):this (FullOpts)
+; Total bytes of code 242, prolog size 25, PerfScore 39.38, instruction count 68, allocated bytes for code 242 (MethodHash=c77240e5) for method System.Buffers.ReadOnlySequence`1[double]:.ctor(System.ReadOnlyMemory`1[double]):this (FullOpts)
 ; ============================================================
12 (5.22 % of base) - System.Buffers.ReadOnlySequence`1[int]:.ctor(System.ReadOnlyMemory`1[int]):this
 ; Assembly listing for method System.Buffers.ReadOnlySequence`1[int]:.ctor(System.ReadOnlyMemory`1[int]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 10,  6   )   byref  ->  rbx         this single-def
-;  V01 arg1         [V01,T01] (  6,  5.50)  struct (16) [rbp-0x38]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[int]>
+;  V01 arg1         [V01,T01] (  5,  5   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[int]>
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd single-def <System.Buffers.MemoryManager`1[int]>
-;  V03 loc1         [V03,T04] (  3,  2   )     int  ->  r14         ld-addr-op
-;  V04 loc2         [V04,T10] (  2,  1.50)     int  ->  r13         ld-addr-op
-;  V05 loc3         [V05    ] (  4,  2   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[int]>
-;  V06 loc4         [V06,T08] (  3,  1.50)     ref  ->  r15         class-hnd single-def <int[]>
-;  V07 loc5         [V07,T09] (  3,  1.50)     int  ->  r14        
+;  V03 loc1         [V03,T06] (  3,  2   )     int  ->  r12         ld-addr-op
+;  V04 loc2         [V04,T09] (  2,  1.50)     int  ->  [rbp-0x3C]  ld-addr-op spill-single-def
+;  V05 loc3         [V05    ] (  4,  2   )  struct (16) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[int]>
+;  V06 loc4         [V06,T07] (  3,  1.50)     ref  ->  r15         class-hnd single-def <int[]>
+;  V07 loc5         [V07,T08] (  3,  1.50)     int  ->  r14        
 ;* V08 loc6         [V08    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.String>
 ;* V09 loc7         [V09    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V11 tmp1         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlyMemory`1[int]>
-;  V13 tmp3         [V13,T02] (  4,  6   )     ref  ->  r12         class-hnd single-def "dup spill" <System.Buffers.MemoryManager`1[int]>
+;  V13 tmp3         [V13,T02] (  4,  6   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def "dup spill" <System.Buffers.MemoryManager`1[int]>
 ;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.Buffers.MemoryManager`1[int]>
 ;* V15 tmp5         [V15    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp7         [V17    ] (  2,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
-;  V18 tmp8         [V18    ] (  2,  1   )     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
-;  V19 tmp9         [V19    ] (  2,  1   )     int  ->  [rbp-0x3C]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
-;  V20 tmp10        [V20,T05] (  2,  2   )     ref  ->  rsi         single-def "field V12._object (fldOffset=0x0)" P-INDEP
-;  V21 tmp11        [V21,T06] (  2,  2   )     int  ->  r14         "field V12._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp12        [V22,T07] (  2,  2   )     int  ->  r13         "field V12._length (fldOffset=0xc)" P-INDEP
-;  V23 cse0         [V23,T03] (  3,  2.50)     ref  ->  r15         "CSE #01: aggressive"
+;  V17 tmp7         [V17    ] (  2,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
+;  V18 tmp8         [V18    ] (  2,  1   )     int  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
+;  V19 tmp9         [V19    ] (  2,  1   )     int  ->  [rbp-0x44]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
+;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._object (fldOffset=0x0)" P-INDEP
+;* V21 tmp11        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x8)" P-INDEP
+;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0xc)" P-INDEP
+;  V23 tmp13        [V23,T03] (  3,  2.50)     ref  ->  r15         single-def "V01.[000..008)"
+;  V24 tmp14        [V24,T04] (  3,  2.50)     int  ->  r14         "V01.[008..012)"
+;  V25 tmp15        [V25,T05] (  3,  2.50)     int  ->  r13         "V01.[012..016)"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M154_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 56
+       lea      rbp, [rsp+0x60]
        xor      eax, eax
-       mov      qword ptr [rbp-0x48], rax
+       mov      qword ptr [rbp-0x50], rax
        mov      gword ptr [rbp-0x38], rsi
        mov      qword ptr [rbp-0x30], rdx
        mov      rbx, rdi
 						;; size=36 bbWeight=1 PerfScore 10.25
 G_M154_IG02:
        mov      r15, gword ptr [rbp-0x38]
-       mov      rsi, r15
        mov      r14d, dword ptr [rbp-0x30]
        mov      r13d, dword ptr [rbp-0x2C]
+       mov      r12d, r14d
+       mov      dword ptr [rbp-0x3C], r13d
+       mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.MemoryManager`1[int]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       mov      r12, rax
-       test     r12, r12
+       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
+       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS
+       mov      gword ptr [rbp-0x58], rax
+       test     rax, rax
        je       SHORT G_M154_IG04
-						;; size=45 bbWeight=1 PerfScore 8.25
+						;; size=53 bbWeight=1 PerfScore 10.25
 G_M154_IG03:
        mov      rdi, rbx
-       mov      rsi, r12
+       mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x08]
-       mov      rsi, r12
+       mov      rsi, gword ptr [rbp-0x58]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      edi, r14d
-       or       edi, 0xD1FFAB1E
-       mov      dword ptr [rbx+0x10], edi
-       add      r14d, r13d
-       mov      dword ptr [rbx+0x14], r14d
+       mov      ecx, r12d
+       or       ecx, 0xD1FFAB1E
+       mov      dword ptr [rbx+0x10], ecx
+       add      r12d, dword ptr [rbp-0x3C]
+       mov      dword ptr [rbx+0x14], r12d
        jmp      SHORT G_M154_IG06
-						;; size=44 bbWeight=0.50 PerfScore 4.00
+						;; size=46 bbWeight=0.50 PerfScore 5.25
 G_M154_IG04:
+       lea      rcx, [rbp-0x50]
        mov      rdi, r15
-       mov      rsi, qword ptr [rbp-0x30]
-       lea      rdx, [rbp-0x48]
-       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArray[int](System.ReadOnlyMemory`1[int],byref):ubyte
-       call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArray[int](System.ReadOnlyMemory`1[int],byref):ubyte
+       mov      esi, r14d
+       mov      edx, r13d
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[int](System.Object,int,int,byref):ubyte
+       call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[int](System.Object,int,int,byref):ubyte
        test     eax, eax
        jne      SHORT G_M154_IG05
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException()
        call     [rax]System.ThrowHelper:ThrowInvalidOperationException()
        int3     
-						;; size=40 bbWeight=0.50 PerfScore 4.88
+						;; size=42 bbWeight=0.50 PerfScore 4.62
 G_M154_IG05:
-       mov      r15, gword ptr [rbp-0x48]
-       mov      r14d, dword ptr [rbp-0x40]
+       mov      r15, gword ptr [rbp-0x50]
+       mov      r14d, dword ptr [rbp-0x48]
        mov      rdi, rbx
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      dword ptr [rbx+0x10], r14d
-       add      r14d, dword ptr [rbp-0x3C]
+       add      r14d, dword ptr [rbp-0x44]
        or       r14d, 0xD1FFAB1E
        mov      dword ptr [rbx+0x14], r14d
 						;; size=50 bbWeight=0.50 PerfScore 4.75
 G_M154_IG06:
-       add      rsp, 40
+       add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 230, prolog size 25, PerfScore 36.38, instruction count 65, allocated bytes for code 230 (MethodHash=3829ff65) for method System.Buffers.ReadOnlySequence`1[int]:.ctor(System.ReadOnlyMemory`1[int]):this (FullOpts)
+; Total bytes of code 242, prolog size 25, PerfScore 39.38, instruction count 68, allocated bytes for code 242 (MethodHash=3829ff65) for method System.Buffers.ReadOnlySequence`1[int]:.ctor(System.ReadOnlyMemory`1[int]):this (FullOpts)
 ; ============================================================
12 (5.22 % of base) - System.Buffers.ReadOnlySequence`1[long]:.ctor(System.ReadOnlyMemory`1[long]):this
 ; Assembly listing for method System.Buffers.ReadOnlySequence`1[long]:.ctor(System.ReadOnlyMemory`1[long]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 10,  6   )   byref  ->  rbx         this single-def
-;  V01 arg1         [V01,T01] (  6,  5.50)  struct (16) [rbp-0x38]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[long]>
+;  V01 arg1         [V01,T01] (  5,  5   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[long]>
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd single-def <System.Buffers.MemoryManager`1[long]>
-;  V03 loc1         [V03,T04] (  3,  2   )     int  ->  r14         ld-addr-op
-;  V04 loc2         [V04,T10] (  2,  1.50)     int  ->  r13         ld-addr-op
-;  V05 loc3         [V05    ] (  4,  2   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[long]>
-;  V06 loc4         [V06,T08] (  3,  1.50)     ref  ->  r15         class-hnd single-def <long[]>
-;  V07 loc5         [V07,T09] (  3,  1.50)     int  ->  r14        
+;  V03 loc1         [V03,T06] (  3,  2   )     int  ->  r12         ld-addr-op
+;  V04 loc2         [V04,T09] (  2,  1.50)     int  ->  [rbp-0x3C]  ld-addr-op spill-single-def
+;  V05 loc3         [V05    ] (  4,  2   )  struct (16) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[long]>
+;  V06 loc4         [V06,T07] (  3,  1.50)     ref  ->  r15         class-hnd single-def <long[]>
+;  V07 loc5         [V07,T08] (  3,  1.50)     int  ->  r14        
 ;* V08 loc6         [V08    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.String>
 ;* V09 loc7         [V09    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V11 tmp1         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlyMemory`1[long]>
-;  V13 tmp3         [V13,T02] (  4,  6   )     ref  ->  r12         class-hnd single-def "dup spill" <System.Buffers.MemoryManager`1[long]>
+;  V13 tmp3         [V13,T02] (  4,  6   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def "dup spill" <System.Buffers.MemoryManager`1[long]>
 ;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.Buffers.MemoryManager`1[long]>
 ;* V15 tmp5         [V15    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp7         [V17    ] (  2,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
-;  V18 tmp8         [V18    ] (  2,  1   )     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
-;  V19 tmp9         [V19    ] (  2,  1   )     int  ->  [rbp-0x3C]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
-;  V20 tmp10        [V20,T05] (  2,  2   )     ref  ->  rsi         single-def "field V12._object (fldOffset=0x0)" P-INDEP
-;  V21 tmp11        [V21,T06] (  2,  2   )     int  ->  r14         "field V12._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp12        [V22,T07] (  2,  2   )     int  ->  r13         "field V12._length (fldOffset=0xc)" P-INDEP
-;  V23 cse0         [V23,T03] (  3,  2.50)     ref  ->  r15         "CSE #01: aggressive"
+;  V17 tmp7         [V17    ] (  2,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
+;  V18 tmp8         [V18    ] (  2,  1   )     int  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
+;  V19 tmp9         [V19    ] (  2,  1   )     int  ->  [rbp-0x44]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
+;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._object (fldOffset=0x0)" P-INDEP
+;* V21 tmp11        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x8)" P-INDEP
+;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0xc)" P-INDEP
+;  V23 tmp13        [V23,T03] (  3,  2.50)     ref  ->  r15         single-def "V01.[000..008)"
+;  V24 tmp14        [V24,T04] (  3,  2.50)     int  ->  r14         "V01.[008..012)"
+;  V25 tmp15        [V25,T05] (  3,  2.50)     int  ->  r13         "V01.[012..016)"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M16218_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 56
+       lea      rbp, [rsp+0x60]
        xor      eax, eax
-       mov      qword ptr [rbp-0x48], rax
+       mov      qword ptr [rbp-0x50], rax
        mov      gword ptr [rbp-0x38], rsi
        mov      qword ptr [rbp-0x30], rdx
        mov      rbx, rdi
 						;; size=36 bbWeight=1 PerfScore 10.25
 G_M16218_IG02:
        mov      r15, gword ptr [rbp-0x38]
-       mov      rsi, r15
        mov      r14d, dword ptr [rbp-0x30]
        mov      r13d, dword ptr [rbp-0x2C]
+       mov      r12d, r14d
+       mov      dword ptr [rbp-0x3C], r13d
+       mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.MemoryManager`1[long]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       mov      r12, rax
-       test     r12, r12
+       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
+       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS
+       mov      gword ptr [rbp-0x58], rax
+       test     rax, rax
        je       SHORT G_M16218_IG04
-						;; size=45 bbWeight=1 PerfScore 8.25
+						;; size=53 bbWeight=1 PerfScore 10.25
 G_M16218_IG03:
        mov      rdi, rbx
-       mov      rsi, r12
+       mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x08]
-       mov      rsi, r12
+       mov      rsi, gword ptr [rbp-0x58]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      edi, r14d
-       or       edi, 0xD1FFAB1E
-       mov      dword ptr [rbx+0x10], edi
-       add      r14d, r13d
-       mov      dword ptr [rbx+0x14], r14d
+       mov      ecx, r12d
+       or       ecx, 0xD1FFAB1E
+       mov      dword ptr [rbx+0x10], ecx
+       add      r12d, dword ptr [rbp-0x3C]
+       mov      dword ptr [rbx+0x14], r12d
        jmp      SHORT G_M16218_IG06
-						;; size=44 bbWeight=0.50 PerfScore 4.00
+						;; size=46 bbWeight=0.50 PerfScore 5.25
 G_M16218_IG04:
+       lea      rcx, [rbp-0x50]
        mov      rdi, r15
-       mov      rsi, qword ptr [rbp-0x30]
-       lea      rdx, [rbp-0x48]
-       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArray[long](System.ReadOnlyMemory`1[long],byref):ubyte
-       call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArray[long](System.ReadOnlyMemory`1[long],byref):ubyte
+       mov      esi, r14d
+       mov      edx, r13d
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[long](System.Object,int,int,byref):ubyte
+       call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[long](System.Object,int,int,byref):ubyte
        test     eax, eax
        jne      SHORT G_M16218_IG05
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException()
        call     [rax]System.ThrowHelper:ThrowInvalidOperationException()
        int3     
-						;; size=40 bbWeight=0.50 PerfScore 4.88
+						;; size=42 bbWeight=0.50 PerfScore 4.62
 G_M16218_IG05:
-       mov      r15, gword ptr [rbp-0x48]
-       mov      r14d, dword ptr [rbp-0x40]
+       mov      r15, gword ptr [rbp-0x50]
+       mov      r14d, dword ptr [rbp-0x48]
        mov      rdi, rbx
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      dword ptr [rbx+0x10], r14d
-       add      r14d, dword ptr [rbp-0x3C]
+       add      r14d, dword ptr [rbp-0x44]
        or       r14d, 0xD1FFAB1E
        mov      dword ptr [rbx+0x14], r14d
 						;; size=50 bbWeight=0.50 PerfScore 4.75
 G_M16218_IG06:
-       add      rsp, 40
+       add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 230, prolog size 25, PerfScore 36.38, instruction count 65, allocated bytes for code 230 (MethodHash=e511c0a5) for method System.Buffers.ReadOnlySequence`1[long]:.ctor(System.ReadOnlyMemory`1[long]):this (FullOpts)
+; Total bytes of code 242, prolog size 25, PerfScore 39.38, instruction count 68, allocated bytes for code 242 (MethodHash=e511c0a5) for method System.Buffers.ReadOnlySequence`1[long]:.ctor(System.ReadOnlyMemory`1[long]):this (FullOpts)
 ; ============================================================
12 (5.22 % of base) - System.Buffers.ReadOnlySequence`1[short]:.ctor(System.ReadOnlyMemory`1[short]):this
 ; Assembly listing for method System.Buffers.ReadOnlySequence`1[short]:.ctor(System.ReadOnlyMemory`1[short]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 10,  6   )   byref  ->  rbx         this single-def
-;  V01 arg1         [V01,T01] (  6,  5.50)  struct (16) [rbp-0x38]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[short]>
+;  V01 arg1         [V01,T01] (  5,  5   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[short]>
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd single-def <System.Buffers.MemoryManager`1[short]>
-;  V03 loc1         [V03,T04] (  3,  2   )     int  ->  r14         ld-addr-op
-;  V04 loc2         [V04,T10] (  2,  1.50)     int  ->  r13         ld-addr-op
-;  V05 loc3         [V05    ] (  4,  2   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[short]>
-;  V06 loc4         [V06,T08] (  3,  1.50)     ref  ->  r15         class-hnd single-def <short[]>
-;  V07 loc5         [V07,T09] (  3,  1.50)     int  ->  r14        
+;  V03 loc1         [V03,T06] (  3,  2   )     int  ->  r12         ld-addr-op
+;  V04 loc2         [V04,T09] (  2,  1.50)     int  ->  [rbp-0x3C]  ld-addr-op spill-single-def
+;  V05 loc3         [V05    ] (  4,  2   )  struct (16) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[short]>
+;  V06 loc4         [V06,T07] (  3,  1.50)     ref  ->  r15         class-hnd single-def <short[]>
+;  V07 loc5         [V07,T08] (  3,  1.50)     int  ->  r14        
 ;* V08 loc6         [V08    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.String>
 ;* V09 loc7         [V09    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V11 tmp1         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp2         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlyMemory`1[short]>
-;  V13 tmp3         [V13,T02] (  4,  6   )     ref  ->  r12         class-hnd single-def "dup spill" <System.Buffers.MemoryManager`1[short]>
+;  V13 tmp3         [V13,T02] (  4,  6   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def "dup spill" <System.Buffers.MemoryManager`1[short]>
 ;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.Buffers.MemoryManager`1[short]>
 ;* V15 tmp5         [V15    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp7         [V17    ] (  2,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
-;  V18 tmp8         [V18    ] (  2,  1   )     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
-;  V19 tmp9         [V19    ] (  2,  1   )     int  ->  [rbp-0x3C]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
-;  V20 tmp10        [V20,T05] (  2,  2   )     ref  ->  rsi         single-def "field V12._object (fldOffset=0x0)" P-INDEP
-;  V21 tmp11        [V21,T06] (  2,  2   )     int  ->  r14         "field V12._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp12        [V22,T07] (  2,  2   )     int  ->  r13         "field V12._length (fldOffset=0xc)" P-INDEP
-;  V23 cse0         [V23,T03] (  3,  2.50)     ref  ->  r15         "CSE #01: aggressive"
+;  V17 tmp7         [V17    ] (  2,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
+;  V18 tmp8         [V18    ] (  2,  1   )     int  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
+;  V19 tmp9         [V19    ] (  2,  1   )     int  ->  [rbp-0x44]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
+;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._object (fldOffset=0x0)" P-INDEP
+;* V21 tmp11        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x8)" P-INDEP
+;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0xc)" P-INDEP
+;  V23 tmp13        [V23,T03] (  3,  2.50)     ref  ->  r15         single-def "V01.[000..008)"
+;  V24 tmp14        [V24,T04] (  3,  2.50)     int  ->  r14         "V01.[008..012)"
+;  V25 tmp15        [V25,T05] (  3,  2.50)     int  ->  r13         "V01.[012..016)"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M29114_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 56
+       lea      rbp, [rsp+0x60]
        xor      eax, eax
-       mov      qword ptr [rbp-0x48], rax
+       mov      qword ptr [rbp-0x50], rax
        mov      gword ptr [rbp-0x38], rsi
        mov      qword ptr [rbp-0x30], rdx
        mov      rbx, rdi
 						;; size=36 bbWeight=1 PerfScore 10.25
 G_M29114_IG02:
        mov      r15, gword ptr [rbp-0x38]
-       mov      rsi, r15
        mov      r14d, dword ptr [rbp-0x30]
        mov      r13d, dword ptr [rbp-0x2C]
+       mov      r12d, r14d
+       mov      dword ptr [rbp-0x3C], r13d
+       mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.MemoryManager`1[short]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
-       call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
-       mov      r12, rax
-       test     r12, r12
+       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
+       call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS
+       mov      gword ptr [rbp-0x58], rax
+       test     rax, rax
        je       SHORT G_M29114_IG04
-						;; size=45 bbWeight=1 PerfScore 8.25
+						;; size=53 bbWeight=1 PerfScore 10.25
 G_M29114_IG03:
        mov      rdi, rbx
-       mov      rsi, r12
+       mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x08]
-       mov      rsi, r12
+       mov      rsi, gword ptr [rbp-0x58]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      edi, r14d
-       or       edi, 0xD1FFAB1E
-       mov      dword ptr [rbx+0x10], edi
-       add      r14d, r13d
-       mov      dword ptr [rbx+0x14], r14d
+       mov      ecx, r12d
+       or       ecx, 0xD1FFAB1E
+       mov      dword ptr [rbx+0x10], ecx
+       add      r12d, dword ptr [rbp-0x3C]
+       mov      dword ptr [rbx+0x14], r12d
        jmp      SHORT G_M29114_IG06
-						;; size=44 bbWeight=0.50 PerfScore 4.00
+						;; size=46 bbWeight=0.50 PerfScore 5.25
 G_M29114_IG04:
+       lea      rcx, [rbp-0x50]
        mov      rdi, r15
-       mov      rsi, qword ptr [rbp-0x30]
-       lea      rdx, [rbp-0x48]
-       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArray[short](System.ReadOnlyMemory`1[short],byref):ubyte
-       call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArray[short](System.ReadOnlyMemory`1[short],byref):ubyte
+       mov      esi, r14d
+       mov      edx, r13d
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[short](System.Object,int,int,byref):ubyte
+       call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[short](System.Object,int,int,byref):ubyte
        test     eax, eax
        jne      SHORT G_M29114_IG05
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException()
        call     [rax]System.ThrowHelper:ThrowInvalidOperationException()
        int3     
-						;; size=40 bbWeight=0.50 PerfScore 4.88
+						;; size=42 bbWeight=0.50 PerfScore 4.62
 G_M29114_IG05:
-       mov      r15, gword ptr [rbp-0x48]
-       mov      r14d, dword ptr [rbp-0x40]
+       mov      r15, gword ptr [rbp-0x50]
+       mov      r14d, dword ptr [rbp-0x48]
        mov      rdi, rbx
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, r15
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      dword ptr [rbx+0x10], r14d
-       add      r14d, dword ptr [rbp-0x3C]
+       add      r14d, dword ptr [rbp-0x44]
        or       r14d, 0xD1FFAB1E
        mov      dword ptr [rbx+0x14], r14d
 						;; size=50 bbWeight=0.50 PerfScore 4.75
 G_M29114_IG06:
-       add      rsp, 40
+       add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 230, prolog size 25, PerfScore 36.38, instruction count 65, allocated bytes for code 230 (MethodHash=f3488e45) for method System.Buffers.ReadOnlySequence`1[short]:.ctor(System.ReadOnlyMemory`1[short]):this (FullOpts)
+; Total bytes of code 242, prolog size 25, PerfScore 39.38, instruction count 68, allocated bytes for code 242 (MethodHash=f3488e45) for method System.Buffers.ReadOnlySequence`1[short]:.ctor(System.ReadOnlyMemory`1[short]):this (FullOpts)
 ; ============================================================

Note: some changes were skipped as they were too large to fit into a comment.

Larger list of diffs: https://gist.github.com/MihuBot/a48094c03f6d8637597eea89309f30bb

@MihuBot
Copy link
Owner Author

MihuBot commented Feb 9, 2025

Top method improvements

-249 (-71.14 % of base) - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.__Canon](System.ReadOnlyMemory`1[System.__Canon],byref):ubyte
 ; Assembly listing for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.__Canon](System.ReadOnlyMemory`1[System.__Canon],byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
-; partially interruptible
+; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T02] (  5,  3.60)    long  ->  r15         single-def
-;  V01 arg0         [V01,T01] (  5,  5   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.ReadOnlyMemory`1[System.__Canon]>
-;  V02 arg1         [V02,T00] ( 10,  6   )   byref  ->  rbx         single-def
-;  V03 loc0         [V03,T07] (  7,  4.50)     ref  ->  rdi         class-hnd single-def <System.Object>
-;  V04 loc1         [V04,T09] (  3,  2   )     int  ->  r14         ld-addr-op
-;  V05 loc2         [V05,T06] (  8,  4.50)     int  ->  r13         ld-addr-op
-;  V06 loc3         [V06    ] (  3,  1.50)  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[System.__Canon]>
-;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;* V08 tmp1         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V09 tmp2         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp3         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[System.__Canon]>
-;* V11 tmp4         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V12 tmp5         [V12    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V13 tmp6         [V13,T03] (  5,  5   )     ref  ->  rdi         class-hnd single-def "impAppendStmt" <System.__Canon[]>
-;* V14 tmp7         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[System.__Canon]>
-;* V15 tmp8         [V15    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <System.__Canon[]>
-;* V17 tmp10        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[System.__Canon]>
-;* V18 tmp11        [V18    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V19 tmp12        [V19,T11] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V20 tmp13        [V20,T04] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V21 tmp14        [V21    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V22 tmp15        [V22,T05] (  5,  5   )     int  ->  r14         "Inlining Arg"
-;* V23 tmp16        [V23    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V24 tmp17        [V24    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V25 tmp18        [V25    ] (  2,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V06._array (fldOffset=0x0)" P-DEP
-;  V26 tmp19        [V26    ] (  2,  1   )     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V06._offset (fldOffset=0x8)" P-DEP
-;  V27 tmp20        [V27    ] (  1,  0.50)     int  ->  [rbp-0x3C]  do-not-enreg[X] addr-exposed "field V06._count (fldOffset=0xc)" P-DEP
-;  V28 tmp21        [V28,T15] (  2,  1   )     ref  ->  rsi         single-def "field V14._array (fldOffset=0x0)" P-INDEP
-;  V29 tmp22        [V29,T17] (  2,  1   )     int  ->  r14         "field V14._offset (fldOffset=0x8)" P-INDEP
-;  V30 tmp23        [V30,T18] (  2,  1   )     int  ->  r13         "field V14._count (fldOffset=0xc)" P-INDEP
-;  V31 tmp24        [V31,T16] (  2,  1   )     ref  ->  [rbp-0x50]  spill-single-def "field V17._array (fldOffset=0x0)" P-INDEP
-;  V32 tmp25        [V32,T19] (  2,  1   )     int  ->  r15         "field V17._offset (fldOffset=0x8)" P-INDEP
-;  V33 tmp26        [V33,T20] (  2,  1   )     int  ->  r13         "field V17._count (fldOffset=0xc)" P-INDEP
-;  V34 cse0         [V34,T12] (  3,  1.50)     int  ->  rsi         "CSE #01: moderate"
-;  V35 cse1         [V35,T13] (  3,  1.50)    long  ->  rax         "CSE #02: moderate"
-;  V36 cse2         [V36,T14] (  3,  1.50)     int  ->  rsi         "CSE #03: moderate"
-;  V37 rat0         [V37,T10] (  3,  2   )    long  ->  rdi         "runtime lookup"
-;  V38 rat1         [V38,T08] (  3,  2.80)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V00 TypeCtx      [V00,T01] (  5,  4.20)    long  ->  rdi         single-def
+;  V01 arg0         [V01,T00] (  5,  5   )  struct (16) [rbp-0x20]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[System.__Canon]>
+;  V02 arg1         [V02,T03] (  3,  3   )   byref  ->  rbx         single-def
+;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
+;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V05 tmp2         [V05,T05] (  2,  4   )    long  ->  rdi         "argument with side effect"
+;  V06 rat0         [V06,T04] (  3,  4   )    long  ->  rdi         "runtime lookup"
+;  V07 rat1         [V07,T02] (  3,  5.60)    long  ->  rax         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 24
 
 G_M45636_IG01:
        push     rbp
-       push     r15
-       push     r14
-       push     r13
        push     rbx
-       sub      rsp, 48
-       lea      rbp, [rsp+0x50]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x48], rax
-       mov      qword ptr [rbp-0x28], rdi
-       mov      gword ptr [rbp-0x38], rsi
-       mov      qword ptr [rbp-0x30], rdx
-       mov      r15, rdi
+       sub      rsp, 24
+       lea      rbp, [rsp+0x20]
+       mov      qword ptr [rbp-0x10], rdi
+       mov      gword ptr [rbp-0x20], rsi
+       mov      qword ptr [rbp-0x18], rdx
        mov      rbx, rcx
-						;; size=41 bbWeight=1 PerfScore 10.50
+						;; size=26 bbWeight=1 PerfScore 6.00
 G_M45636_IG02:
-       mov      r14d, dword ptr [rbp-0x30]
-       mov      r13d, dword ptr [rbp-0x2C]
-       mov      rdi, gword ptr [rbp-0x38]
-       test     rdi, rdi
-       je       SHORT G_M45636_IG04
-						;; size=17 bbWeight=1 PerfScore 4.25
-G_M45636_IG03:
-       mov      rax, qword ptr [rdi]
-       mov      rsi, rax
-       test     dword ptr [rsi], 0xD1FFAB1E
-       jne      G_M45636_IG11
-       lea      rsi, [rbp-0x48]
-       mov      rax, qword ptr [rax+0x48]
-       call     [rax]System.Buffers.MemoryManager`1[System.__Canon]:TryGetArray(byref):ubyte:this
-       test     eax, eax
-       jne      SHORT G_M45636_IG09
-						;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M45636_IG04:
-       test     r13d, r13d
+       mov      rsi, qword ptr [rdi+0x18]
+       mov      rax, qword ptr [rsi+0x10]
+       test     rax, rax
        je       SHORT G_M45636_IG06
-       xor      eax, eax
-       mov      qword ptr [rbx], rax
-       mov      qword ptr [rbx+0x08], rax
-						;; size=14 bbWeight=0.50 PerfScore 1.75
+						;; size=13 bbWeight=1 PerfScore 5.25
+G_M45636_IG03:
+       mov      rdi, rax
+						;; size=3 bbWeight=0.80 PerfScore 0.20
+G_M45636_IG04:
+       mov      rsi, gword ptr [rbp-0x20]
+       mov      edx, dword ptr [rbp-0x18]
+       mov      ecx, dword ptr [rbp-0x14]
+       mov      r8, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.__Canon](System.Object,int,int,byref):ubyte
+						;; size=23 bbWeight=1 PerfScore 3.50
 G_M45636_IG05:
-       add      rsp, 48
+       add      rsp, 24
        pop      rbx
-       pop      r13
-       pop      r14
-       pop      r15
        pop      rbp
-       ret      
-						;; size=13 bbWeight=0.50 PerfScore 1.88
+       tail.jmp [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.__Canon](System.Object,int,int,byref):ubyte
+						;; size=9 bbWeight=1 PerfScore 3.25
 G_M45636_IG06:
-       mov      rdi, qword ptr [r15+0x18]
-       mov      rdi, qword ptr [rdi+0x18]
-       test     rdi, rdi
-       je       SHORT G_M45636_IG08
-						;; size=13 bbWeight=0.50 PerfScore 2.62
-G_M45636_IG07:
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
-       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
-       mov      rsi, gword ptr [rax]
-       add      rsi, 8
-       mov      rdi, rbx
-       call     CORINFO_HELP_ASSIGN_BYREF
-       movsq    
-       jmp      G_M45636_IG12
-						;; size=34 bbWeight=0.50 PerfScore 4.88
-G_M45636_IG08:
-       mov      rdi, r15
        mov      rsi, 0xD1FFAB1E      ; global ptr
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_METHOD
        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_METHOD
        mov      rdi, rax
-       jmp      SHORT G_M45636_IG07
-						;; size=30 bbWeight=0.10 PerfScore 0.60
-G_M45636_IG09:
-       mov      rdi, gword ptr [rbp-0x48]
-       add      r14d, dword ptr [rbp-0x40]
-       test     rdi, rdi
-       je       SHORT G_M45636_IG10
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r14d
-       jb       SHORT G_M45636_IG10
-       sub      esi, r14d
-       cmp      esi, r13d
-       jb       SHORT G_M45636_IG10
-       mov      rsi, rdi
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r14d
-       mov      dword ptr [rbx+0x0C], r13d
-       jmp      SHORT G_M45636_IG12
-						;; size=50 bbWeight=0.50 PerfScore 7.25
-G_M45636_IG10:
-       mov      esi, r14d
-       mov      edx, r13d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
-G_M45636_IG11:
-       mov      r15d, r14d
-       and      r15d, 0xD1FFAB1E
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M45636_IG14
-       sub      esi, r15d
-       cmp      esi, r13d
-       jb       SHORT G_M45636_IG14
-       mov      gword ptr [rbp-0x50], rdi
-       mov      rsi, gword ptr [rbp-0x50]
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r13d
-						;; size=50 bbWeight=0.50 PerfScore 5.25
-G_M45636_IG12:
-       mov      eax, 1
-						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M45636_IG13:
-       add      rsp, 48
-       pop      rbx
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M45636_IG14:
-       mov      esi, r15d
-       mov      edx, r13d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
+       jmp      SHORT G_M45636_IG04
+						;; size=27 bbWeight=0.20 PerfScore 1.15
 
-; Total bytes of code 350, prolog size 27, PerfScore 51.47, instruction count 106, allocated bytes for code 350 (MethodHash=54a64dbb) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.__Canon](System.ReadOnlyMemory`1[System.__Canon],byref):ubyte (FullOpts)
+; Total bytes of code 101, prolog size 26, PerfScore 19.35, instruction count 27, allocated bytes for code 101 (MethodHash=54a64dbb) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.__Canon](System.ReadOnlyMemory`1[System.__Canon],byref):ubyte (FullOpts)
 ; ============================================================
-239 (-83.57 % of base) - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[double](System.ReadOnlyMemory`1[double],byref):ubyte
 ; Assembly listing for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[double](System.ReadOnlyMemory`1[double],byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
-; partially interruptible
+; rsp based frame
+; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5,  5   )  struct (16) [rbp-0x28]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.ReadOnlyMemory`1[double]>
-;  V01 arg1         [V01,T00] ( 10,  6   )   byref  ->  rbx         single-def
-;  V02 loc0         [V02,T06] (  7,  4.50)     ref  ->  rdi         class-hnd single-def <System.Object>
-;  V03 loc1         [V03,T07] (  3,  2   )     int  ->  r15         ld-addr-op
-;  V04 loc2         [V04,T05] (  8,  4.50)     int  ->  r14         ld-addr-op
-;  V05 loc3         [V05    ] (  3,  1.50)  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[double]>
-;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[double]>
-;  V08 tmp2         [V08,T02] (  5,  5   )     ref  ->  rdi         class-hnd single-def "impAppendStmt" <double[]>
-;* V09 tmp3         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[double]>
-;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <double[]>
-;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[double]>
-;  V12 tmp6         [V12,T08] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V13 tmp7         [V13,T03] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V14 tmp8         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V15 tmp9         [V15,T04] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V16 tmp10        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp11        [V17    ] (  2,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
-;  V18 tmp12        [V18    ] (  2,  1   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
-;  V19 tmp13        [V19    ] (  1,  0.50)     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
-;  V20 tmp14        [V20,T12] (  2,  1   )     ref  ->  rsi         single-def "field V09._array (fldOffset=0x0)" P-INDEP
-;  V21 tmp15        [V21,T14] (  2,  1   )     int  ->  r15         "field V09._offset (fldOffset=0x8)" P-INDEP
-;  V22 tmp16        [V22,T15] (  2,  1   )     int  ->  r14         "field V09._count (fldOffset=0xc)" P-INDEP
-;  V23 tmp17        [V23,T13] (  2,  1   )     ref  ->  [rbp-0x40]  spill-single-def "field V11._array (fldOffset=0x0)" P-INDEP
-;  V24 tmp18        [V24,T16] (  2,  1   )     int  ->  r15         "field V11._offset (fldOffset=0x8)" P-INDEP
-;  V25 tmp19        [V25,T17] (  2,  1   )     int  ->  r14         "field V11._count (fldOffset=0xc)" P-INDEP
-;  V26 cse0         [V26,T09] (  3,  1.50)     int  ->  rsi         "CSE #01: moderate"
-;  V27 cse1         [V27,T10] (  3,  1.50)    long  ->  rax         "CSE #02: moderate"
-;  V28 cse2         [V28,T11] (  3,  1.50)     int  ->  rsi         "CSE #03: moderate"
+;  V00 arg0         [V00,T00] (  5,  5   )  struct (16) [rsp+0x08]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[double]>
+;  V01 arg1         [V01,T01] (  3,  3   )   byref  ->  rcx         single-def
+;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;
-; Lcl frame size = 40
+; Lcl frame size = 24
 
 G_M516_IG01:
-       push     rbp
-       push     r15
-       push     r14
-       push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
-       mov      gword ptr [rbp-0x28], rdi
-       mov      qword ptr [rbp-0x20], rsi
-       mov      rbx, rdx
-						;; size=32 bbWeight=1 PerfScore 8.25
+       sub      rsp, 24
+       mov      gword ptr [rsp+0x08], rdi
+       mov      qword ptr [rsp+0x10], rsi
+       mov      rcx, rdx
+						;; size=17 bbWeight=1 PerfScore 2.50
 G_M516_IG02:
-       mov      r15d, dword ptr [rbp-0x20]
-       mov      r14d, dword ptr [rbp-0x1C]
-       mov      rdi, gword ptr [rbp-0x28]
-       test     rdi, rdi
-       je       SHORT G_M516_IG04
-						;; size=17 bbWeight=1 PerfScore 4.25
+       mov      rdi, gword ptr [rsp+0x08]
+       mov      esi, dword ptr [rsp+0x10]
+       mov      edx, dword ptr [rsp+0x14]
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[double](System.Object,int,int,byref):ubyte
+						;; size=23 bbWeight=1 PerfScore 3.25
 G_M516_IG03:
-       mov      rax, qword ptr [rdi]
-       mov      rsi, rax
-       test     dword ptr [rsi], 0xD1FFAB1E
-       jne      G_M516_IG09
-       lea      rsi, [rbp-0x38]
-       mov      rax, qword ptr [rax+0x48]
-       call     [rax]System.Buffers.MemoryManager`1[double]:TryGetArray(byref):ubyte:this
-       test     eax, eax
-       jne      SHORT G_M516_IG07
-						;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M516_IG04:
-       test     r14d, r14d
-       je       SHORT G_M516_IG06
-       xor      eax, eax
-       mov      qword ptr [rbx], rax
-       mov      qword ptr [rbx+0x08], rax
-						;; size=14 bbWeight=0.50 PerfScore 1.75
-G_M516_IG05:
-       add      rsp, 40
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M516_IG06:
-       mov      rdi, 0xD1FFAB1E      ; box for System.ArraySegment`1[double]:<Empty>k__BackingField
-       mov      rsi, gword ptr [rdi]
-       add      rsi, 8
-       mov      rdi, rbx
-       call     CORINFO_HELP_ASSIGN_BYREF
-       movsq    
-       jmp      SHORT G_M516_IG10
-						;; size=29 bbWeight=0.50 PerfScore 3.38
-G_M516_IG07:
-       mov      rdi, gword ptr [rbp-0x38]
-       add      r15d, dword ptr [rbp-0x30]
-       test     rdi, rdi
-       je       SHORT G_M516_IG08
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M516_IG08
-       sub      esi, r15d
-       cmp      esi, r14d
-       jb       SHORT G_M516_IG08
-       mov      rsi, rdi
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r14d
-       jmp      SHORT G_M516_IG10
-						;; size=50 bbWeight=0.50 PerfScore 7.25
-G_M516_IG08:
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
-G_M516_IG09:
-       and      r15d, 0xD1FFAB1E
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M516_IG12
-       sub      esi, r15d
-       cmp      esi, r14d
-       jb       SHORT G_M516_IG12
-       mov      gword ptr [rbp-0x40], rdi
-       mov      rsi, gword ptr [rbp-0x40]
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r14d
-						;; size=47 bbWeight=0.50 PerfScore 5.12
-G_M516_IG10:
-       mov      eax, 1
-						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M516_IG11:
-       add      rsp, 40
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M516_IG12:
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
+       add      rsp, 24
+       tail.jmp [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[double](System.Object,int,int,byref):ubyte
+						;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 286, prolog size 21, PerfScore 43.88, instruction count 89, allocated bytes for code 286 (MethodHash=5d74fdfb) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[double](System.ReadOnlyMemory`1[double],byref):ubyte (FullOpts)
+; Total bytes of code 47, prolog size 17, PerfScore 8.00, instruction count 10, allocated bytes for code 47 (MethodHash=5d74fdfb) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[double](System.ReadOnlyMemory`1[double],byref):ubyte (FullOpts)
 ; ============================================================
-239 (-83.57 % of base) - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[int](System.ReadOnlyMemory`1[int],byref):ubyte
 ; Assembly listing for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[int](System.ReadOnlyMemory`1[int],byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
-; partially interruptible
+; rsp based frame
+; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5,  5   )  struct (16) [rbp-0x28]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.ReadOnlyMemory`1[int]>
-;  V01 arg1         [V01,T00] ( 10,  6   )   byref  ->  rbx         single-def
-;  V02 loc0         [V02,T06] (  7,  4.50)     ref  ->  rdi         class-hnd single-def <System.Object>
-;  V03 loc1         [V03,T07] (  3,  2   )     int  ->  r15         ld-addr-op
-;  V04 loc2         [V04,T05] (  8,  4.50)     int  ->  r14         ld-addr-op
-;  V05 loc3         [V05    ] (  3,  1.50)  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[int]>
-;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[int]>
-;  V08 tmp2         [V08,T02] (  5,  5   )     ref  ->  rdi         class-hnd single-def "impAppendStmt" <int[]>
-;* V09 tmp3         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[int]>
-;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <int[]>
-;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[int]>
-;  V12 tmp6         [V12,T08] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V13 tmp7         [V13,T03] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V14 tmp8         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V15 tmp9         [V15,T04] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V16 tmp10        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp11        [V17    ] (  2,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
-;  V18 tmp12        [V18    ] (  2,  1   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
-;  V19 tmp13        [V19    ] (  1,  0.50)     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
-;  V20 tmp14        [V20,T12] (  2,  1   )     ref  ->  rsi         single-def "field V09._array (fldOffset=0x0)" P-INDEP
-;  V21 tmp15        [V21,T14] (  2,  1   )     int  ->  r15         "field V09._offset (fldOffset=0x8)" P-INDEP
-;  V22 tmp16        [V22,T15] (  2,  1   )     int  ->  r14         "field V09._count (fldOffset=0xc)" P-INDEP
-;  V23 tmp17        [V23,T13] (  2,  1   )     ref  ->  [rbp-0x40]  spill-single-def "field V11._array (fldOffset=0x0)" P-INDEP
-;  V24 tmp18        [V24,T16] (  2,  1   )     int  ->  r15         "field V11._offset (fldOffset=0x8)" P-INDEP
-;  V25 tmp19        [V25,T17] (  2,  1   )     int  ->  r14         "field V11._count (fldOffset=0xc)" P-INDEP
-;  V26 cse0         [V26,T09] (  3,  1.50)     int  ->  rsi         "CSE #01: moderate"
-;  V27 cse1         [V27,T10] (  3,  1.50)    long  ->  rax         "CSE #02: moderate"
-;  V28 cse2         [V28,T11] (  3,  1.50)     int  ->  rsi         "CSE #03: moderate"
+;  V00 arg0         [V00,T00] (  5,  5   )  struct (16) [rsp+0x08]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[int]>
+;  V01 arg1         [V01,T01] (  3,  3   )   byref  ->  rcx         single-def
+;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;
-; Lcl frame size = 40
+; Lcl frame size = 24
 
 G_M28356_IG01:
-       push     rbp
-       push     r15
-       push     r14
-       push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
-       mov      gword ptr [rbp-0x28], rdi
-       mov      qword ptr [rbp-0x20], rsi
-       mov      rbx, rdx
-						;; size=32 bbWeight=1 PerfScore 8.25
+       sub      rsp, 24
+       mov      gword ptr [rsp+0x08], rdi
+       mov      qword ptr [rsp+0x10], rsi
+       mov      rcx, rdx
+						;; size=17 bbWeight=1 PerfScore 2.50
 G_M28356_IG02:
-       mov      r15d, dword ptr [rbp-0x20]
-       mov      r14d, dword ptr [rbp-0x1C]
-       mov      rdi, gword ptr [rbp-0x28]
-       test     rdi, rdi
-       je       SHORT G_M28356_IG04
-						;; size=17 bbWeight=1 PerfScore 4.25
+       mov      rdi, gword ptr [rsp+0x08]
+       mov      esi, dword ptr [rsp+0x10]
+       mov      edx, dword ptr [rsp+0x14]
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[int](System.Object,int,int,byref):ubyte
+						;; size=23 bbWeight=1 PerfScore 3.25
 G_M28356_IG03:
-       mov      rax, qword ptr [rdi]
-       mov      rsi, rax
-       test     dword ptr [rsi], 0xD1FFAB1E
-       jne      G_M28356_IG09
-       lea      rsi, [rbp-0x38]
-       mov      rax, qword ptr [rax+0x48]
-       call     [rax]System.Buffers.MemoryManager`1[int]:TryGetArray(byref):ubyte:this
-       test     eax, eax
-       jne      SHORT G_M28356_IG07
-						;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M28356_IG04:
-       test     r14d, r14d
-       je       SHORT G_M28356_IG06
-       xor      eax, eax
-       mov      qword ptr [rbx], rax
-       mov      qword ptr [rbx+0x08], rax
-						;; size=14 bbWeight=0.50 PerfScore 1.75
-G_M28356_IG05:
-       add      rsp, 40
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M28356_IG06:
-       mov      rdi, 0xD1FFAB1E      ; box for System.ArraySegment`1[int]:<Empty>k__BackingField
-       mov      rsi, gword ptr [rdi]
-       add      rsi, 8
-       mov      rdi, rbx
-       call     CORINFO_HELP_ASSIGN_BYREF
-       movsq    
-       jmp      SHORT G_M28356_IG10
-						;; size=29 bbWeight=0.50 PerfScore 3.38
-G_M28356_IG07:
-       mov      rdi, gword ptr [rbp-0x38]
-       add      r15d, dword ptr [rbp-0x30]
-       test     rdi, rdi
-       je       SHORT G_M28356_IG08
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M28356_IG08
-       sub      esi, r15d
-       cmp      esi, r14d
-       jb       SHORT G_M28356_IG08
-       mov      rsi, rdi
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r14d
-       jmp      SHORT G_M28356_IG10
-						;; size=50 bbWeight=0.50 PerfScore 7.25
-G_M28356_IG08:
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
-G_M28356_IG09:
-       and      r15d, 0xD1FFAB1E
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M28356_IG12
-       sub      esi, r15d
-       cmp      esi, r14d
-       jb       SHORT G_M28356_IG12
-       mov      gword ptr [rbp-0x40], rdi
-       mov      rsi, gword ptr [rbp-0x40]
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r14d
-						;; size=47 bbWeight=0.50 PerfScore 5.12
-G_M28356_IG10:
-       mov      eax, 1
-						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M28356_IG11:
-       add      rsp, 40
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M28356_IG12:
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
+       add      rsp, 24
+       tail.jmp [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[int](System.Object,int,int,byref):ubyte
+						;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 286, prolog size 21, PerfScore 43.88, instruction count 89, allocated bytes for code 286 (MethodHash=d8b2913b) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[int](System.ReadOnlyMemory`1[int],byref):ubyte (FullOpts)
+; Total bytes of code 47, prolog size 17, PerfScore 8.00, instruction count 10, allocated bytes for code 47 (MethodHash=d8b2913b) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[int](System.ReadOnlyMemory`1[int],byref):ubyte (FullOpts)
 ; ============================================================
-239 (-83.57 % of base) - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[long](System.ReadOnlyMemory`1[long],byref):ubyte
 ; Assembly listing for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[long](System.ReadOnlyMemory`1[long],byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
-; partially interruptible
+; rsp based frame
+; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5,  5   )  struct (16) [rbp-0x28]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.ReadOnlyMemory`1[long]>
-;  V01 arg1         [V01,T00] ( 10,  6   )   byref  ->  rbx         single-def
-;  V02 loc0         [V02,T06] (  7,  4.50)     ref  ->  rdi         class-hnd single-def <System.Object>
-;  V03 loc1         [V03,T07] (  3,  2   )     int  ->  r15         ld-addr-op
-;  V04 loc2         [V04,T05] (  8,  4.50)     int  ->  r14         ld-addr-op
-;  V05 loc3         [V05    ] (  3,  1.50)  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[long]>
-;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[long]>
-;  V08 tmp2         [V08,T02] (  5,  5   )     ref  ->  rdi         class-hnd single-def "impAppendStmt" <long[]>
-;* V09 tmp3         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[long]>
-;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <long[]>
-;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[long]>
-;  V12 tmp6         [V12,T08] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V13 tmp7         [V13,T03] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V14 tmp8         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V15 tmp9         [V15,T04] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V16 tmp10        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp11        [V17    ] (  2,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
-;  V18 tmp12        [V18    ] (  2,  1   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
-;  V19 tmp13        [V19    ] (  1,  0.50)     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
-;  V20 tmp14        [V20,T12] (  2,  1   )     ref  ->  rsi         single-def "field V09._array (fldOffset=0x0)" P-INDEP
-;  V21 tmp15        [V21,T14] (  2,  1   )     int  ->  r15         "field V09._offset (fldOffset=0x8)" P-INDEP
-;  V22 tmp16        [V22,T15] (  2,  1   )     int  ->  r14         "field V09._count (fldOffset=0xc)" P-INDEP
-;  V23 tmp17        [V23,T13] (  2,  1   )     ref  ->  [rbp-0x40]  spill-single-def "field V11._array (fldOffset=0x0)" P-INDEP
-;  V24 tmp18        [V24,T16] (  2,  1   )     int  ->  r15         "field V11._offset (fldOffset=0x8)" P-INDEP
-;  V25 tmp19        [V25,T17] (  2,  1   )     int  ->  r14         "field V11._count (fldOffset=0xc)" P-INDEP
-;  V26 cse0         [V26,T09] (  3,  1.50)     int  ->  rsi         "CSE #01: moderate"
-;  V27 cse1         [V27,T10] (  3,  1.50)    long  ->  rax         "CSE #02: moderate"
-;  V28 cse2         [V28,T11] (  3,  1.50)     int  ->  rsi         "CSE #03: moderate"
+;  V00 arg0         [V00,T00] (  5,  5   )  struct (16) [rsp+0x08]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[long]>
+;  V01 arg1         [V01,T01] (  3,  3   )   byref  ->  rcx         single-def
+;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;
-; Lcl frame size = 40
+; Lcl frame size = 24
 
 G_M50116_IG01:
-       push     rbp
-       push     r15
-       push     r14
-       push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
-       mov      gword ptr [rbp-0x28], rdi
-       mov      qword ptr [rbp-0x20], rsi
-       mov      rbx, rdx
-						;; size=32 bbWeight=1 PerfScore 8.25
+       sub      rsp, 24
+       mov      gword ptr [rsp+0x08], rdi
+       mov      qword ptr [rsp+0x10], rsi
+       mov      rcx, rdx
+						;; size=17 bbWeight=1 PerfScore 2.50
 G_M50116_IG02:
-       mov      r15d, dword ptr [rbp-0x20]
-       mov      r14d, dword ptr [rbp-0x1C]
-       mov      rdi, gword ptr [rbp-0x28]
-       test     rdi, rdi
-       je       SHORT G_M50116_IG04
-						;; size=17 bbWeight=1 PerfScore 4.25
+       mov      rdi, gword ptr [rsp+0x08]
+       mov      esi, dword ptr [rsp+0x10]
+       mov      edx, dword ptr [rsp+0x14]
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[long](System.Object,int,int,byref):ubyte
+						;; size=23 bbWeight=1 PerfScore 3.25
 G_M50116_IG03:
-       mov      rax, qword ptr [rdi]
-       mov      rsi, rax
-       test     dword ptr [rsi], 0xD1FFAB1E
-       jne      G_M50116_IG09
-       lea      rsi, [rbp-0x38]
-       mov      rax, qword ptr [rax+0x48]
-       call     [rax]System.Buffers.MemoryManager`1[long]:TryGetArray(byref):ubyte:this
-       test     eax, eax
-       jne      SHORT G_M50116_IG07
-						;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M50116_IG04:
-       test     r14d, r14d
-       je       SHORT G_M50116_IG06
-       xor      eax, eax
-       mov      qword ptr [rbx], rax
-       mov      qword ptr [rbx+0x08], rax
-						;; size=14 bbWeight=0.50 PerfScore 1.75
-G_M50116_IG05:
-       add      rsp, 40
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M50116_IG06:
-       mov      rdi, 0xD1FFAB1E      ; box for System.ArraySegment`1[long]:<Empty>k__BackingField
-       mov      rsi, gword ptr [rdi]
-       add      rsi, 8
-       mov      rdi, rbx
-       call     CORINFO_HELP_ASSIGN_BYREF
-       movsq    
-       jmp      SHORT G_M50116_IG10
-						;; size=29 bbWeight=0.50 PerfScore 3.38
-G_M50116_IG07:
-       mov      rdi, gword ptr [rbp-0x38]
-       add      r15d, dword ptr [rbp-0x30]
-       test     rdi, rdi
-       je       SHORT G_M50116_IG08
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M50116_IG08
-       sub      esi, r15d
-       cmp      esi, r14d
-       jb       SHORT G_M50116_IG08
-       mov      rsi, rdi
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r14d
-       jmp      SHORT G_M50116_IG10
-						;; size=50 bbWeight=0.50 PerfScore 7.25
-G_M50116_IG08:
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
-G_M50116_IG09:
-       and      r15d, 0xD1FFAB1E
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M50116_IG12
-       sub      esi, r15d
-       cmp      esi, r14d
-       jb       SHORT G_M50116_IG12
-       mov      gword ptr [rbp-0x40], rdi
-       mov      rsi, gword ptr [rbp-0x40]
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r14d
-						;; size=47 bbWeight=0.50 PerfScore 5.12
-G_M50116_IG10:
-       mov      eax, 1
-						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M50116_IG11:
-       add      rsp, 40
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M50116_IG12:
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
+       add      rsp, 24
+       tail.jmp [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[long](System.Object,int,int,byref):ubyte
+						;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 286, prolog size 21, PerfScore 43.88, instruction count 89, allocated bytes for code 286 (MethodHash=0e8b3c3b) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[long](System.ReadOnlyMemory`1[long],byref):ubyte (FullOpts)
+; Total bytes of code 47, prolog size 17, PerfScore 8.00, instruction count 10, allocated bytes for code 47 (MethodHash=0e8b3c3b) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[long](System.ReadOnlyMemory`1[long],byref):ubyte (FullOpts)
 ; ============================================================
-239 (-83.57 % of base) - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[short](System.ReadOnlyMemory`1[short],byref):ubyte
 ; Assembly listing for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[short](System.ReadOnlyMemory`1[short],byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
-; partially interruptible
+; rsp based frame
+; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5,  5   )  struct (16) [rbp-0x28]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.ReadOnlyMemory`1[short]>
-;  V01 arg1         [V01,T00] ( 10,  6   )   byref  ->  rbx         single-def
-;  V02 loc0         [V02,T06] (  7,  4.50)     ref  ->  rdi         class-hnd single-def <System.Object>
-;  V03 loc1         [V03,T07] (  3,  2   )     int  ->  r15         ld-addr-op
-;  V04 loc2         [V04,T05] (  8,  4.50)     int  ->  r14         ld-addr-op
-;  V05 loc3         [V05    ] (  3,  1.50)  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[short]>
-;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[short]>
-;  V08 tmp2         [V08,T02] (  5,  5   )     ref  ->  rdi         class-hnd single-def "impAppendStmt" <short[]>
-;* V09 tmp3         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[short]>
-;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <short[]>
-;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[short]>
-;  V12 tmp6         [V12,T08] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V13 tmp7         [V13,T03] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V14 tmp8         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V15 tmp9         [V15,T04] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V16 tmp10        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp11        [V17    ] (  2,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
-;  V18 tmp12        [V18    ] (  2,  1   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
-;  V19 tmp13        [V19    ] (  1,  0.50)     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
-;  V20 tmp14        [V20,T12] (  2,  1   )     ref  ->  rsi         single-def "field V09._array (fldOffset=0x0)" P-INDEP
-;  V21 tmp15        [V21,T14] (  2,  1   )     int  ->  r15         "field V09._offset (fldOffset=0x8)" P-INDEP
-;  V22 tmp16        [V22,T15] (  2,  1   )     int  ->  r14         "field V09._count (fldOffset=0xc)" P-INDEP
-;  V23 tmp17        [V23,T13] (  2,  1   )     ref  ->  [rbp-0x40]  spill-single-def "field V11._array (fldOffset=0x0)" P-INDEP
-;  V24 tmp18        [V24,T16] (  2,  1   )     int  ->  r15         "field V11._offset (fldOffset=0x8)" P-INDEP
-;  V25 tmp19        [V25,T17] (  2,  1   )     int  ->  r14         "field V11._count (fldOffset=0xc)" P-INDEP
-;  V26 cse0         [V26,T09] (  3,  1.50)     int  ->  rsi         "CSE #01: moderate"
-;  V27 cse1         [V27,T10] (  3,  1.50)    long  ->  rax         "CSE #02: moderate"
-;  V28 cse2         [V28,T11] (  3,  1.50)     int  ->  rsi         "CSE #03: moderate"
+;  V00 arg0         [V00,T00] (  5,  5   )  struct (16) [rsp+0x08]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[short]>
+;  V01 arg1         [V01,T01] (  3,  3   )   byref  ->  rcx         single-def
+;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;
-; Lcl frame size = 40
+; Lcl frame size = 24
 
 G_M1124_IG01:
-       push     rbp
-       push     r15
-       push     r14
-       push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
-       mov      gword ptr [rbp-0x28], rdi
-       mov      qword ptr [rbp-0x20], rsi
-       mov      rbx, rdx
-						;; size=32 bbWeight=1 PerfScore 8.25
+       sub      rsp, 24
+       mov      gword ptr [rsp+0x08], rdi
+       mov      qword ptr [rsp+0x10], rsi
+       mov      rcx, rdx
+						;; size=17 bbWeight=1 PerfScore 2.50
 G_M1124_IG02:
-       mov      r15d, dword ptr [rbp-0x20]
-       mov      r14d, dword ptr [rbp-0x1C]
-       mov      rdi, gword ptr [rbp-0x28]
-       test     rdi, rdi
-       je       SHORT G_M1124_IG04
-						;; size=17 bbWeight=1 PerfScore 4.25
+       mov      rdi, gword ptr [rsp+0x08]
+       mov      esi, dword ptr [rsp+0x10]
+       mov      edx, dword ptr [rsp+0x14]
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[short](System.Object,int,int,byref):ubyte
+						;; size=23 bbWeight=1 PerfScore 3.25
 G_M1124_IG03:
-       mov      rax, qword ptr [rdi]
-       mov      rsi, rax
-       test     dword ptr [rsi], 0xD1FFAB1E
-       jne      G_M1124_IG09
-       lea      rsi, [rbp-0x38]
-       mov      rax, qword ptr [rax+0x48]
-       call     [rax]System.Buffers.MemoryManager`1[short]:TryGetArray(byref):ubyte:this
-       test     eax, eax
-       jne      SHORT G_M1124_IG07
-						;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M1124_IG04:
-       test     r14d, r14d
-       je       SHORT G_M1124_IG06
-       xor      eax, eax
-       mov      qword ptr [rbx], rax
-       mov      qword ptr [rbx+0x08], rax
-						;; size=14 bbWeight=0.50 PerfScore 1.75
-G_M1124_IG05:
-       add      rsp, 40
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M1124_IG06:
-       mov      rdi, 0xD1FFAB1E      ; box for System.ArraySegment`1[short]:<Empty>k__BackingField
-       mov      rsi, gword ptr [rdi]
-       add      rsi, 8
-       mov      rdi, rbx
-       call     CORINFO_HELP_ASSIGN_BYREF
-       movsq    
-       jmp      SHORT G_M1124_IG10
-						;; size=29 bbWeight=0.50 PerfScore 3.38
-G_M1124_IG07:
-       mov      rdi, gword ptr [rbp-0x38]
-       add      r15d, dword ptr [rbp-0x30]
-       test     rdi, rdi
-       je       SHORT G_M1124_IG08
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M1124_IG08
-       sub      esi, r15d
-       cmp      esi, r14d
-       jb       SHORT G_M1124_IG08
-       mov      rsi, rdi
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r14d
-       jmp      SHORT G_M1124_IG10
-						;; size=50 bbWeight=0.50 PerfScore 7.25
-G_M1124_IG08:
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
-G_M1124_IG09:
-       and      r15d, 0xD1FFAB1E
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M1124_IG12
-       sub      esi, r15d
-       cmp      esi, r14d
-       jb       SHORT G_M1124_IG12
-       mov      gword ptr [rbp-0x40], rdi
-       mov      rsi, gword ptr [rbp-0x40]
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r14d
-						;; size=47 bbWeight=0.50 PerfScore 5.12
-G_M1124_IG10:
-       mov      eax, 1
-						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M1124_IG11:
-       add      rsp, 40
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M1124_IG12:
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
+       add      rsp, 24
+       tail.jmp [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[short](System.Object,int,int,byref):ubyte
+						;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 286, prolog size 21, PerfScore 43.88, instruction count 89, allocated bytes for code 286 (MethodHash=01f5fb9b) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[short](System.ReadOnlyMemory`1[short],byref):ubyte (FullOpts)
+; Total bytes of code 47, prolog size 17, PerfScore 8.00, instruction count 10, allocated bytes for code 47 (MethodHash=01f5fb9b) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[short](System.ReadOnlyMemory`1[short],byref):ubyte (FullOpts)
 ; ============================================================
-239 (-83.57 % of base) - System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]],byref):ubyte
 ; Assembly listing for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]],byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
-; partially interruptible
+; rsp based frame
+; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5,  5   )  struct (16) [rbp-0x28]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.ReadOnlyMemory`1[System.Nullable`1[int]]>
-;  V01 arg1         [V01,T00] ( 10,  6   )   byref  ->  rbx         single-def
-;  V02 loc0         [V02,T06] (  7,  4.50)     ref  ->  rdi         class-hnd single-def <System.Object>
-;  V03 loc1         [V03,T07] (  3,  2   )     int  ->  r15         ld-addr-op
-;  V04 loc2         [V04,T05] (  8,  4.50)     int  ->  r14         ld-addr-op
-;  V05 loc3         [V05    ] (  3,  1.50)  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[System.Nullable`1[int]]>
-;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[System.Nullable`1[int]]>
-;  V08 tmp2         [V08,T02] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "impAppendStmt" <System.Nullable`1[int][]>
-;* V09 tmp3         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[System.Nullable`1[int]]>
-;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <System.Nullable`1[int][]>
-;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[System.Nullable`1[int]]>
-;  V12 tmp6         [V12,T08] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V13 tmp7         [V13,T03] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V14 tmp8         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V15 tmp9         [V15,T04] (  5,  5   )     int  ->  r15         "Inlining Arg"
-;* V16 tmp10        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp11        [V17    ] (  2,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V05._array (fldOffset=0x0)" P-DEP
-;  V18 tmp12        [V18    ] (  2,  1   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V05._offset (fldOffset=0x8)" P-DEP
-;  V19 tmp13        [V19    ] (  1,  0.50)     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V05._count (fldOffset=0xc)" P-DEP
-;  V20 tmp14        [V20,T12] (  2,  1   )     ref  ->  rsi         single-def "field V09._array (fldOffset=0x0)" P-INDEP
-;  V21 tmp15        [V21,T14] (  2,  1   )     int  ->  r15         "field V09._offset (fldOffset=0x8)" P-INDEP
-;  V22 tmp16        [V22,T15] (  2,  1   )     int  ->  r14         "field V09._count (fldOffset=0xc)" P-INDEP
-;  V23 tmp17        [V23,T13] (  2,  1   )     ref  ->  [rbp-0x40]  spill-single-def "field V11._array (fldOffset=0x0)" P-INDEP
-;  V24 tmp18        [V24,T16] (  2,  1   )     int  ->  r15         "field V11._offset (fldOffset=0x8)" P-INDEP
-;  V25 tmp19        [V25,T17] (  2,  1   )     int  ->  r14         "field V11._count (fldOffset=0xc)" P-INDEP
-;  V26 cse0         [V26,T09] (  3,  1.50)     int  ->  rsi         "CSE #01: moderate"
-;  V27 cse1         [V27,T10] (  3,  1.50)    long  ->  rax         "CSE #02: moderate"
-;  V28 cse2         [V28,T11] (  3,  1.50)     int  ->  rsi         "CSE #03: moderate"
+;  V00 arg0         [V00,T00] (  5,  5   )  struct (16) [rsp+0x08]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[System.Nullable`1[int]]>
+;  V01 arg1         [V01,T01] (  3,  3   )   byref  ->  rcx         single-def
+;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;
-; Lcl frame size = 40
+; Lcl frame size = 24
 
 G_M26372_IG01:
-       push     rbp
-       push     r15
-       push     r14
-       push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
-       mov      gword ptr [rbp-0x28], rdi
-       mov      qword ptr [rbp-0x20], rsi
-       mov      rbx, rdx
-						;; size=32 bbWeight=1 PerfScore 8.25
+       sub      rsp, 24
+       mov      gword ptr [rsp+0x08], rdi
+       mov      qword ptr [rsp+0x10], rsi
+       mov      rcx, rdx
+						;; size=17 bbWeight=1 PerfScore 2.50
 G_M26372_IG02:
-       mov      r15d, dword ptr [rbp-0x20]
-       mov      r14d, dword ptr [rbp-0x1C]
-       mov      rdi, gword ptr [rbp-0x28]
-       test     rdi, rdi
-       je       SHORT G_M26372_IG04
-						;; size=17 bbWeight=1 PerfScore 4.25
+       mov      rdi, gword ptr [rsp+0x08]
+       mov      esi, dword ptr [rsp+0x10]
+       mov      edx, dword ptr [rsp+0x14]
+       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.Nullable`1[int]](System.Object,int,int,byref):ubyte
+						;; size=23 bbWeight=1 PerfScore 3.25
 G_M26372_IG03:
-       mov      rax, qword ptr [rdi]
-       mov      rsi, rax
-       test     dword ptr [rsi], 0xD1FFAB1E
-       jne      G_M26372_IG09
-       lea      rsi, [rbp-0x38]
-       mov      rax, qword ptr [rax+0x48]
-       call     [rax]System.Buffers.MemoryManager`1[System.Nullable`1[int]]:TryGetArray(byref):ubyte:this
-       test     eax, eax
-       jne      SHORT G_M26372_IG07
-						;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M26372_IG04:
-       test     r14d, r14d
-       je       SHORT G_M26372_IG06
-       xor      eax, eax
-       mov      qword ptr [rbx], rax
-       mov      qword ptr [rbx+0x08], rax
-						;; size=14 bbWeight=0.50 PerfScore 1.75
-G_M26372_IG05:
-       add      rsp, 40
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M26372_IG06:
-       mov      rdi, 0xD1FFAB1E      ; box for System.ArraySegment`1[System.Nullable`1[int]]:<Empty>k__BackingField
-       mov      rsi, gword ptr [rdi]
-       add      rsi, 8
-       mov      rdi, rbx
-       call     CORINFO_HELP_ASSIGN_BYREF
-       movsq    
-       jmp      SHORT G_M26372_IG10
-						;; size=29 bbWeight=0.50 PerfScore 3.38
-G_M26372_IG07:
-       mov      rdi, gword ptr [rbp-0x38]
-       add      r15d, dword ptr [rbp-0x30]
-       test     rdi, rdi
-       je       SHORT G_M26372_IG08
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M26372_IG08
-       sub      esi, r15d
-       cmp      esi, r14d
-       jb       SHORT G_M26372_IG08
-       mov      rsi, rdi
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r14d
-       jmp      SHORT G_M26372_IG10
-						;; size=50 bbWeight=0.50 PerfScore 7.25
-G_M26372_IG08:
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
-G_M26372_IG09:
-       and      r15d, 0xD1FFAB1E
-       mov      esi, dword ptr [rdi+0x08]
-       cmp      esi, r15d
-       jb       SHORT G_M26372_IG12
-       sub      esi, r15d
-       cmp      esi, r14d
-       jb       SHORT G_M26372_IG12
-       mov      gword ptr [rbp-0x40], rdi
-       mov      rsi, gword ptr [rbp-0x40]
-       mov      rdi, rbx
-       call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      dword ptr [rbx+0x08], r15d
-       mov      dword ptr [rbx+0x0C], r14d
-						;; size=47 bbWeight=0.50 PerfScore 5.12
-G_M26372_IG10:
-       mov      eax, 1
-						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M26372_IG11:
-       add      rsp, 40
-       pop      rbx
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M26372_IG12:
-       mov      esi, r15d
-       mov      edx, r14d
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.00
+       add      rsp, 24
+       tail.jmp [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArrayCore[System.Nullable`1[int]](System.Object,int,int,byref):ubyte
+						;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 286, prolog size 21, PerfScore 43.88, instruction count 89, allocated bytes for code 286 (MethodHash=2aed98fb) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]],byref):ubyte (FullOpts)
+; Total bytes of code 47, prolog size 17, PerfScore 8.00, instruction count 10, allocated bytes for code 47 (MethodHash=2aed98fb) for method System.Runtime.InteropServices.MemoryMarshal:TryGetArray[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]],byref):ubyte (FullOpts)
 ; ============================================================

Note: some changes were skipped as they were too large to fit into a comment.

Larger list of diffs: https://gist.github.com/MihuBot/5addeb2b819c8311c6d14497525e5893

@MihuBot
Copy link
Owner Author

MihuBot commented Feb 9, 2025

@xtqqczze

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant