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/MemoryExtensionsNullCheck #516

Open
MihuBot opened this issue Jul 12, 2024 · 3 comments
Open

[JitDiff X64] xtqqczze/dotnet-runtime/MemoryExtensionsNullCheck #516

MihuBot opened this issue Jul 12, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Jul 12, 2024

Job completed in 14 minutes.

Diffs

Diffs
Found 291 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 41785018
Total bytes of diff: 41784999
Total bytes of delta: -19 (-0.00 % of base)
Total relative delta: 1.68
    diff is an improvement.
    relative diff is a regression.


Top file regressions (bytes):
         151 : System.Diagnostics.DiagnosticSource.dasm (0.06 % of base)
          72 : System.Private.CoreLib.dasm (0.00 % of base)
          41 : System.Security.Cryptography.Pkcs.dasm (0.01 % of base)
          12 : System.Formats.Nrbf.dasm (0.02 % of base)
           7 : System.Data.Odbc.dasm (0.00 % of base)
           6 : System.Reflection.Metadata.dasm (0.00 % of base)
           6 : System.Net.Security.dasm (0.00 % of base)
           5 : System.Net.Quic.dasm (0.00 % of base)
           4 : System.Net.WebClient.dasm (0.01 % of base)
           4 : System.Net.NetworkInformation.dasm (0.01 % of base)
           3 : Microsoft.Extensions.FileProviders.Physical.dasm (0.01 % of base)
           2 : System.Formats.Asn1.dasm (0.00 % of base)
           1 : System.Net.Ping.dasm (0.00 % of base)

Top file improvements (bytes):
        -116 : System.Text.Json.dasm (-0.01 % of base)
         -96 : System.Numerics.Tensors.dasm (-0.01 % of base)
         -53 : System.Net.Http.dasm (-0.01 % of base)
         -29 : System.Security.Cryptography.Cose.dasm (-0.04 % of base)
         -14 : System.Security.Cryptography.dasm (-0.00 % of base)
         -14 : System.Runtime.Numerics.dasm (-0.01 % of base)
          -5 : System.Data.Common.dasm (-0.00 % of base)
          -3 : System.Security.Cryptography.Xml.dasm (-0.00 % of base)
          -2 : System.Private.Xml.dasm (-0.00 % of base)
          -1 : System.IO.Compression.dasm (-0.00 % of base)

23 total files with Code Size differences (10 improved, 13 regressed), 236 unchanged.

Top method regressions (bytes):
          38 (2.11 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignerInfo:PrepareDigest(ubyte):System.Security.Cryptography.IncrementalHash:this (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[double](double[]):System.Memory`1[double] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[int](int[]):System.Memory`1[int] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[long](long[]):System.Memory`1[long] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[short](short[]):System.Memory`1[short] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[System.Nullable`1[int]](System.Nullable`1[int][]):System.Memory`1[System.Nullable`1[int]] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][]):System.Memory`1[System.Numerics.Vector`1[float]] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[ubyte](ubyte[]):System.Memory`1[ubyte] (FullOpts)
          15 (44.12 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.StringSequenceMany:AsSpan():System.Span`1[System.String]:this (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[double]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[int]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[long]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[short]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[System.Numerics.Vector`1[float]]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[ubyte]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[double]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[int]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[long]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[short]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[System.Numerics.Vector`1[float]]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[ubyte]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (34.29 % of base) : System.Formats.Nrbf.dasm - System.Formats.Nrbf.RectangularArrayRecord:get_Lengths():System.ReadOnlySpan`1[int]:this (FullOpts)
           9 (16.36 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.ObjectSequenceMany:AsSpan():System.Span`1[System.Object]:this (FullOpts)
           7 (0.60 % of base) : System.Security.Cryptography.dasm - Internal.Cryptography.Helpers:AreSamePublicECParameters(System.Security.Cryptography.ECParameters,System.Security.Cryptography.ECParameters):ubyte (FullOpts)
           7 (4.14 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[System.__Canon](System.__Canon[]):System.Memory`1[System.__Canon] (FullOpts)
           6 (1.17 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SubjectIdentifier:MatchesCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte:this (FullOpts)
           6 (2.33 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+BagState:GrowIfNeeded(byref,int) (FullOpts)
           5 (1.52 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcHandle:GetDiagnosticRecord(short,byref,System.Text.StringBuilder,byref,byref):short:this (FullOpts)
           5 (3.88 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[System.__Canon](System.__Canon[]):System.Span`1[System.__Canon] (FullOpts)
           5 (2.66 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.PhysicalAddress:Equals(System.Object):ubyte:this (FullOpts)
           5 (0.86 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicConfiguration+CacheKey:Equals(System.Net.Quic.MsQuicConfiguration+CacheKey):ubyte:this (FullOpts)
           4 (0.46 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:GetStringUsingEncoding(System.Net.WebRequest,ubyte[]):System.String:this (FullOpts)
           3 (4.05 % of base) : Microsoft.Extensions.FileProviders.Physical.dasm - Microsoft.Extensions.FileProviders.Physical.PollingWildCardChangeToken:ArrayEquals(ubyte[],ubyte[]):ubyte (FullOpts)
           3 (1.09 % of base) : System.Net.Security.dasm - System.Net.Security.SslApplicationProtocol:.ctor(ubyte[]):this (FullOpts)
           3 (2.48 % of base) : System.Net.Security.dasm - System.Net.Security.SslSessionsCache+SslCredKey:Equals(System.Net.Security.SslSessionsCache+SslCredKey):ubyte:this (FullOpts)
           3 (1.72 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.BlobWriter:WriteBytes(ubyte[]):this (FullOpts)
           3 (0.49 % of base) : System.Reflection.Metadata.dasm - System.Reflection.PortableExecutable.PEBuilder:Sign(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Blob,System.Func`2[System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob],ubyte[]]):this (FullOpts)
           3 (1.74 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Rfc2898DeriveBytes:set_Salt(ubyte[]):this (FullOpts)
           2 (0.99 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcHandle:GetDiagnosticField(byref):short:this (FullOpts)
           2 (0.79 % of base) : System.Data.Common.dasm - System.Data.RelatedView:Invoke(System.Data.DataRow,int):ubyte:this (FullOpts)
           2 (2.47 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.StringSequenceMany:Equals(System.Diagnostics.Metrics.StringSequenceMany):ubyte:this (FullOpts)
           2 (0.35 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnWriter:EncodeSubIdentifier(System.Span`1[ubyte],byref):int (FullOpts)
           2 (2.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:Equals(System.Numerics.BigInteger):ubyte:this (FullOpts)
           2 (0.16 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+<ParseAsyncCoreUnrented>d__69:MoveNext():this (FullOpts)
           1 (0.57 % of base) : System.Private.CoreLib.dasm - System.Globalization.DateTimeFormatInfoScanner:GetFormatFlagGenitiveMonth(System.String[],System.String[],System.String[],System.String[]):int (FullOpts)
           1 (0.03 % of base) : System.Net.Ping.dasm - System.Net.NetworkInformation.Ping+<SendIcmpEchoRequestOverRawSocketAsync>d__76:MoveNext():this (FullOpts)

Top method improvements (bytes):
         -33 (-2.79 % of base) : System.Net.Http.dasm - System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts)
         -30 (-7.32 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[System.__Canon]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         -30 (-7.32 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[System.__Canon]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         -20 (-1.66 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.HPackEncoder:EncodeStringLiterals(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts)
         -17 (-6.05 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.ManagedCertificateFinder+<>c:<FindBySerialNumber>b__10_0(System.ValueTuple`2[System.Numerics.BigInteger,System.Numerics.BigInteger],System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte:this (FullOpts)
         -16 (-1.41 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:Parse(System.Buffers.ReadOnlySequence`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -15 (-3.55 % of base) : System.Private.CoreLib.dasm - System.ApplicationId:Equals(System.Object):ubyte:this (FullOpts)
          -8 (-4.28 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[double](double[],System.Memory`1[double]) (FullOpts)
          -8 (-4.28 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[int](int[],System.Memory`1[int]) (FullOpts)
          -8 (-4.28 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[long](long[],System.Memory`1[long]) (FullOpts)
          -8 (-4.30 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[short](short[],System.Memory`1[short]) (FullOpts)
          -8 (-4.28 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.Nullable`1[int]](System.Nullable`1[int][],System.Memory`1[System.Nullable`1[int]]) (FullOpts)
          -8 (-3.15 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromBytes(System.ReadOnlySpan`1[ubyte]):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -8 (-2.42 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromBytes(ubyte[]):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -7 (-2.22 % of base) : System.Data.Common.dasm - System.Data.DataColumn:set_AutoIncrementCurrent(System.Object):this (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[double](double[]):System.Span`1[double] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[int](int[]):System.Span`1[int] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[long](long[]):System.Span`1[long] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[short](short[]):System.Span`1[short] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[System.Nullable`1[int]](System.Nullable`1[int][]):System.Span`1[System.Nullable`1[int]] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][]):System.Span`1[System.Numerics.Vector`1[float]] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] (FullOpts)
          -6 (-9.09 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[double](double[],System.Span`1[double]) (FullOpts)
          -6 (-9.09 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[int](int[],System.Span`1[int]) (FullOpts)
          -6 (-9.09 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[long](long[],System.Span`1[long]) (FullOpts)
          -6 (-9.23 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[short](short[],System.Span`1[short]) (FullOpts)
          -6 (-6.59 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.__Canon](System.__Canon[],System.Span`1[System.__Canon]) (FullOpts)
          -6 (-9.09 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.Nullable`1[int]](System.Nullable`1[int][],System.Span`1[System.Nullable`1[int]]) (FullOpts)
          -6 (-9.09 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][],System.Span`1[System.Numerics.Vector`1[float]]) (FullOpts)
          -6 (-9.68 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[ubyte](ubyte[],System.Span`1[ubyte]) (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[double]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[double]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[int]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[int]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[long]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[long]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[short]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[short]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.__Canon]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.__Canon]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[ubyte]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[ubyte]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-1.26 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.EccKeyFormatHelper:WriteUncompressedBasePoint(byref,System.Formats.Asn1.AsnWriter) (FullOpts)
          -6 (-1.25 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.EccKeyFormatHelper:WriteUncompressedPublicKey(byref,System.Formats.Asn1.AsnWriter) (FullOpts)
          -5 (-4.27 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.StringSequenceMany:Equals(System.Object):ubyte:this (FullOpts)
          -5 (-4.00 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:Equals(System.Object):ubyte:this (FullOpts)
          -5 (-5.75 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Equality(System.Numerics.BigInteger,System.Numerics.BigInteger):ubyte (FullOpts)
          -5 (-4.72 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Inequality(System.Numerics.BigInteger,System.Numerics.BigInteger):ubyte (FullOpts)
          -4 (-1.97 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.__Canon](System.__Canon[],System.Memory`1[System.__Canon]) (FullOpts)
          -4 (-3.70 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:Encode(System.Formats.Cbor.CborWriter):System.ReadOnlyMemory`1[ubyte] (FullOpts)
          -4 (-1.67 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromInt32(int):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -4 (-1.27 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromString(System.String):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -3 (-1.58 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][],System.Memory`1[System.Numerics.Vector`1[float]]) (FullOpts)
          -3 (-1.65 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[ubyte](ubyte[],System.Memory`1[ubyte]) (FullOpts)
          -3 (-0.41 % of base) : System.Security.Cryptography.Xml.dasm - System.Security.Cryptography.Xml.SignedXml:CheckSignedInfo(System.Security.Cryptography.KeyedHashAlgorithm):ubyte:this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[double]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[int]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[long]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[short]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[System.Nullable`1[int]]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[System.Numerics.Vector`1[float]]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[ubyte]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[double]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[int]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[long]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[short]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[System.Nullable`1[int]]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[System.Numerics.Vector`1[float]]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[ubyte]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-0.15 % of base) : System.Private.CoreLib.dasm - System.Threading.AsyncLocalValueMap+MultiElementAsyncLocalValueMap:Set(System.Threading.IAsyncLocal,System.Object,ubyte):System.Threading.IAsyncLocalValueMap:this (FullOpts)
          -2 (-2.56 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.PkcsHelpers:AreByteArraysEqual(ubyte[],ubyte[]):ubyte (FullOpts)
          -2 (-2.30 % of base) : System.Private.Xml.dasm - System.Xml.Schema.DatatypeImplementation:Compare(ubyte[],ubyte[]):int (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Counter`1[double]:Add(double,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Counter`1[int]:Add(int,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Counter`1[long]:Add(long,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Counter`1[short]:Add(short,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Counter`1[ubyte]:Add(ubyte,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Gauge`1[double]:Record(double,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Gauge`1[int]:Record(int,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Gauge`1[long]:Record(long,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Gauge`1[short]:Record(short,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Gauge`1[ubyte]:Record(ubyte,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Histogram`1[double]:Record(double,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Histogram`1[int]:Record(int,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Histogram`1[long]:Record(long,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Histogram`1[short]:Record(short,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Histogram`1[ubyte]:Record(ubyte,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.UpDownCounter`1[double]:Add(double,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.UpDownCounter`1[int]:Add(int,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.UpDownCounter`1[long]:Add(long,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.UpDownCounter`1[short]:Add(short,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.UpDownCounter`1[ubyte]:Add(ubyte,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-0.09 % of base) : System.IO.Compression.dasm - System.IO.Compression.DeflateManagedStream+<ReadAsyncCore>d__28:MoveNext():this (FullOpts)
          -1 (-2.04 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.PhysicalAddress:ToString():System.String:this (FullOpts)
          -1 (-0.72 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:GetHashCode():int:this (FullOpts)
          -1 (-2.22 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseMultiSignMessage:AddSignatureForEmbedded(System.Security.Cryptography.Cose.CoseSigner,ubyte[]):this (FullOpts)

Top method regressions (percentages):
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[double](double[]):System.Memory`1[double] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[int](int[]):System.Memory`1[int] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[long](long[]):System.Memory`1[long] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[short](short[]):System.Memory`1[short] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[System.Nullable`1[int]](System.Nullable`1[int][]):System.Memory`1[System.Nullable`1[int]] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][]):System.Memory`1[System.Numerics.Vector`1[float]] (FullOpts)
          31 (52.54 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[ubyte](ubyte[]):System.Memory`1[ubyte] (FullOpts)
          15 (44.12 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.StringSequenceMany:AsSpan():System.Span`1[System.String]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[double]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[int]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[long]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[short]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[System.Numerics.Vector`1[float]]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (35.29 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[ubyte]:get_Tags():System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          12 (34.29 % of base) : System.Formats.Nrbf.dasm - System.Formats.Nrbf.RectangularArrayRecord:get_Lengths():System.ReadOnlySpan`1[int]:this (FullOpts)
           9 (16.36 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.ObjectSequenceMany:AsSpan():System.Span`1[System.Object]:this (FullOpts)
           7 (4.14 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsMemory[System.__Canon](System.__Canon[]):System.Memory`1[System.__Canon] (FullOpts)
           3 (4.05 % of base) : Microsoft.Extensions.FileProviders.Physical.dasm - Microsoft.Extensions.FileProviders.Physical.PollingWildCardChangeToken:ArrayEquals(ubyte[],ubyte[]):ubyte (FullOpts)
           5 (3.88 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[System.__Canon](System.__Canon[]):System.Span`1[System.__Canon] (FullOpts)
           5 (2.66 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.PhysicalAddress:Equals(System.Object):ubyte:this (FullOpts)
           3 (2.48 % of base) : System.Net.Security.dasm - System.Net.Security.SslSessionsCache+SslCredKey:Equals(System.Net.Security.SslSessionsCache+SslCredKey):ubyte:this (FullOpts)
           2 (2.47 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.StringSequenceMany:Equals(System.Diagnostics.Metrics.StringSequenceMany):ubyte:this (FullOpts)
           2 (2.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:Equals(System.Numerics.BigInteger):ubyte:this (FullOpts)
           6 (2.33 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+BagState:GrowIfNeeded(byref,int) (FullOpts)
          38 (2.11 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignerInfo:PrepareDigest(ubyte):System.Security.Cryptography.IncrementalHash:this (FullOpts)
           3 (1.74 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Rfc2898DeriveBytes:set_Salt(ubyte[]):this (FullOpts)
           3 (1.72 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.BlobWriter:WriteBytes(ubyte[]):this (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[double]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[int]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[long]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[short]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[System.Numerics.Vector`1[float]]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
          13 (1.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Measurement`1[ubyte]:ToArray(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]):System.Collections.Generic.KeyValuePair`2[System.String,System.Object][] (FullOpts)
           5 (1.52 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcHandle:GetDiagnosticRecord(short,byref,System.Text.StringBuilder,byref,byref):short:this (FullOpts)
           6 (1.17 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SubjectIdentifier:MatchesCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte:this (FullOpts)
           3 (1.09 % of base) : System.Net.Security.dasm - System.Net.Security.SslApplicationProtocol:.ctor(ubyte[]):this (FullOpts)
           2 (0.99 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcHandle:GetDiagnosticField(byref):short:this (FullOpts)
           5 (0.86 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicConfiguration+CacheKey:Equals(System.Net.Quic.MsQuicConfiguration+CacheKey):ubyte:this (FullOpts)
           2 (0.79 % of base) : System.Data.Common.dasm - System.Data.RelatedView:Invoke(System.Data.DataRow,int):ubyte:this (FullOpts)
           7 (0.60 % of base) : System.Security.Cryptography.dasm - Internal.Cryptography.Helpers:AreSamePublicECParameters(System.Security.Cryptography.ECParameters,System.Security.Cryptography.ECParameters):ubyte (FullOpts)
           1 (0.57 % of base) : System.Private.CoreLib.dasm - System.Globalization.DateTimeFormatInfoScanner:GetFormatFlagGenitiveMonth(System.String[],System.String[],System.String[],System.String[]):int (FullOpts)
           3 (0.49 % of base) : System.Reflection.Metadata.dasm - System.Reflection.PortableExecutable.PEBuilder:Sign(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Blob,System.Func`2[System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob],ubyte[]]):this (FullOpts)
           4 (0.46 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:GetStringUsingEncoding(System.Net.WebRequest,ubyte[]):System.String:this (FullOpts)
           2 (0.35 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnWriter:EncodeSubIdentifier(System.Span`1[ubyte],byref):int (FullOpts)
           2 (0.16 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+<ParseAsyncCoreUnrented>d__69:MoveNext():this (FullOpts)
           1 (0.03 % of base) : System.Net.Ping.dasm - System.Net.NetworkInformation.Ping+<SendIcmpEchoRequestOverRawSocketAsync>d__76:MoveNext():this (FullOpts)

Top method improvements (percentages):
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[double](double[]):System.Span`1[double] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[int](int[]):System.Span`1[int] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[long](long[]):System.Span`1[long] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[short](short[]):System.Span`1[short] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[System.Nullable`1[int]](System.Nullable`1[int][]):System.Span`1[System.Nullable`1[int]] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][]):System.Span`1[System.Numerics.Vector`1[float]] (FullOpts)
          -6 (-25.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] (FullOpts)
          -6 (-9.68 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[ubyte](ubyte[],System.Span`1[ubyte]) (FullOpts)
          -6 (-9.23 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[short](short[],System.Span`1[short]) (FullOpts)
          -6 (-9.09 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[double](double[],System.Span`1[double]) (FullOpts)
          -6 (-9.09 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[int](int[],System.Span`1[int]) (FullOpts)
          -6 (-9.09 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[long](long[],System.Span`1[long]) (FullOpts)
          -6 (-9.09 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.Nullable`1[int]](System.Nullable`1[int][],System.Span`1[System.Nullable`1[int]]) (FullOpts)
          -6 (-9.09 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][],System.Span`1[System.Numerics.Vector`1[float]]) (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[double]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[double]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[int]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[int]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[long]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[long]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[short]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[short]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.__Canon]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.__Canon]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[ubyte]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetLengths(System.Span`1[long]):this (FullOpts)
          -6 (-8.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[ubyte]:System.Numerics.Tensors.IReadOnlyTensor<System.Numerics.Tensors.Tensor<T>,T>.GetStrides(System.Span`1[long]):this (FullOpts)
         -30 (-7.32 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[System.__Canon]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         -30 (-7.32 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[System.__Canon]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -6 (-6.59 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.__Canon](System.__Canon[],System.Span`1[System.__Canon]) (FullOpts)
         -17 (-6.05 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.ManagedCertificateFinder+<>c:<FindBySerialNumber>b__10_0(System.ValueTuple`2[System.Numerics.BigInteger,System.Numerics.BigInteger],System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte:this (FullOpts)
          -5 (-5.75 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Equality(System.Numerics.BigInteger,System.Numerics.BigInteger):ubyte (FullOpts)
          -5 (-4.72 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:op_Inequality(System.Numerics.BigInteger,System.Numerics.BigInteger):ubyte (FullOpts)
          -8 (-4.30 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[short](short[],System.Memory`1[short]) (FullOpts)
          -8 (-4.28 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[double](double[],System.Memory`1[double]) (FullOpts)
          -8 (-4.28 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[int](int[],System.Memory`1[int]) (FullOpts)
          -8 (-4.28 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[long](long[],System.Memory`1[long]) (FullOpts)
          -8 (-4.28 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.Nullable`1[int]](System.Nullable`1[int][],System.Memory`1[System.Nullable`1[int]]) (FullOpts)
          -5 (-4.27 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.StringSequenceMany:Equals(System.Object):ubyte:this (FullOpts)
          -5 (-4.00 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:Equals(System.Object):ubyte:this (FullOpts)
          -4 (-3.70 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:Encode(System.Formats.Cbor.CborWriter):System.ReadOnlyMemory`1[ubyte] (FullOpts)
         -15 (-3.55 % of base) : System.Private.CoreLib.dasm - System.ApplicationId:Equals(System.Object):ubyte:this (FullOpts)
          -8 (-3.15 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromBytes(System.ReadOnlySpan`1[ubyte]):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
         -33 (-2.79 % of base) : System.Net.Http.dasm - System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts)
          -2 (-2.56 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.PkcsHelpers:AreByteArraysEqual(ubyte[],ubyte[]):ubyte (FullOpts)
          -8 (-2.42 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromBytes(ubyte[]):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -2 (-2.30 % of base) : System.Private.Xml.dasm - System.Xml.Schema.DatatypeImplementation:Compare(ubyte[],ubyte[]):int (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Counter`1[double]:Add(double,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Counter`1[int]:Add(int,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Counter`1[long]:Add(long,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Gauge`1[double]:Record(double,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Gauge`1[int]:Record(int,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Gauge`1[long]:Record(long,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Histogram`1[double]:Record(double,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Histogram`1[int]:Record(int,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Histogram`1[long]:Record(long,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.UpDownCounter`1[double]:Add(double,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.UpDownCounter`1[int]:Add(int,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.UpDownCounter`1[long]:Add(long,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.22 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseMultiSignMessage:AddSignatureForEmbedded(System.Security.Cryptography.Cose.CoseSigner,ubyte[]):this (FullOpts)
          -7 (-2.22 % of base) : System.Data.Common.dasm - System.Data.DataColumn:set_AutoIncrementCurrent(System.Object):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Counter`1[short]:Add(short,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Counter`1[ubyte]:Add(ubyte,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Gauge`1[short]:Record(short,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Gauge`1[ubyte]:Record(ubyte,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Histogram`1[short]:Record(short,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Histogram`1[ubyte]:Record(ubyte,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.UpDownCounter`1[short]:Add(short,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.UpDownCounter`1[ubyte]:Add(ubyte,System.Collections.Generic.KeyValuePair`2[System.String,System.Object][]):this (FullOpts)
          -1 (-2.04 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.PhysicalAddress:ToString():System.String:this (FullOpts)
          -4 (-1.97 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.__Canon](System.__Canon[],System.Memory`1[System.__Canon]) (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[double]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[int]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[long]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[short]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[System.Nullable`1[int]]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[System.Numerics.Vector`1[float]]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.MemoryConverter`1[ubyte]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[double]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[int]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[long]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[short]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[System.Nullable`1[int]]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[System.Numerics.Vector`1[float]]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -3 (-1.83 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ReadOnlyMemoryConverter`1[ubyte]:ConvertCollection(byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          -4 (-1.67 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromInt32(int):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
         -20 (-1.66 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.HPackEncoder:EncodeStringLiterals(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts)
          -3 (-1.65 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[ubyte](ubyte[],System.Memory`1[ubyte]) (FullOpts)
          -3 (-1.58 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CopyTo[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float][],System.Memory`1[System.Numerics.Vector`1[float]]) (FullOpts)
         -16 (-1.41 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:Parse(System.Buffers.ReadOnlySequence`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
          -4 (-1.27 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromString(System.String):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -6 (-1.26 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.EccKeyFormatHelper:WriteUncompressedBasePoint(byref,System.Formats.Asn1.AsnWriter) (FullOpts)
          -6 (-1.25 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.EccKeyFormatHelper:WriteUncompressedPublicKey(byref,System.Formats.Asn1.AsnWriter) (FullOpts)
          -1 (-0.72 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:GetHashCode():int:this (FullOpts)
          -3 (-0.41 % of base) : System.Security.Cryptography.Xml.dasm - System.Security.Cryptography.Xml.SignedXml:CheckSignedInfo(System.Security.Cryptography.KeyedHashAlgorithm):ubyte:this (FullOpts)
          -3 (-0.15 % of base) : System.Private.CoreLib.dasm - System.Threading.AsyncLocalValueMap+MultiElementAsyncLocalValueMap:Set(System.Threading.IAsyncLocal,System.Object,ubyte):System.Threading.IAsyncLocalValueMap:this (FullOpts)
          -1 (-0.09 % of base) : System.IO.Compression.dasm - System.IO.Compression.DeflateManagedStream+<ReadAsyncCore>d__28:MoveNext():this (FullOpts)

148 total methods with Code Size differences (102 improved, 46 regressed), 255724 unchanged.

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

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Jul 12, 2024

Top method regressions

38 (2.11 % of base) - System.Security.Cryptography.Pkcs.SignerInfo:PrepareDigest(ubyte):System.Security.Cryptography.IncrementalHash:this
 ; Assembly listing for method System.Security.Cryptography.Pkcs.SignerInfo:PrepareDigest(ubyte):System.Security.Cryptography.IncrementalHash:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 37 single block inlinees; 17 inlinees without PGO data
+; 0 inlinees with PGO data; 36 single block inlinees; 18 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T07] ( 11,  8.50)     ref  ->  rbx         this class-hnd single-def <System.Security.Cryptography.Pkcs.SignerInfo>
 ;  V01 arg1         [V01,T27] (  5,  3.50)   ubyte  ->  r15         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Security.Cryptography.HashAlgorithmName>
 ;  V03 loc1         [V03,T19] ( 15,  7.50)     ref  ->  r14         class-hnd exact single-def <System.Security.Cryptography.IncrementalHash>
 ;  V04 loc2         [V04,T37] (  3,  3.50)   ubyte  ->  r13        
 ;* V05 loc3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.PlatformNotSupportedException>
 ;  V06 loc4         [V06,T58] (  3,  1.50)   byref  ->  rdx         single-def
 ;  V07 loc5         [V07,T66] (  3,  1.50)  struct (24) [rbp-0x40]  do-not-enreg[SF] must-init ld-addr-op <System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]>
 ;  V08 loc6         [V08    ] ( 10,  5   )  struct (16) [rbp-0x50]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op single-def <System.ReadOnlyMemory`1[ubyte]>
 ;  V09 loc7         [V09,T21] (  4,  6.50)     ref  ->  r12         class-hnd single-def <ubyte[]>
 ;  V10 loc8         [V10,T20] (  8,  7.50)     ref  ->  [rbp-0xC8]  class-hnd exact spill-single-def <System.Formats.Asn1.AsnWriter>
 ;* V11 loc9         [V11,T77] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SA] multireg-arg ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
 ;  V12 loc10        [V12,T28] (  3,  5   )     ref  ->  rbx         class-hnd exact single-def <System.Security.Cryptography.Asn1.AttributeAsn[]>
 ;* V13 loc11        [V13,T85] (  0,  0   )     int  ->  zero-ref   
 ;  V14 loc12        [V14    ] (  5, 16   )  struct (16) [rbp-0x60]  do-not-enreg[XSA] multireg-arg must-init addr-exposed ld-addr-op <System.Security.Cryptography.Asn1.AttributeAsn>
 ;  V15 loc13        [V15,T11] (  4,  8   )     ref  ->  r13         class-hnd exact <System.Security.Cryptography.Pkcs.Pkcs9MessageDigest>
 ;  V16 loc14        [V16,T51] (  4,  2   )     ref  ->  rax         class-hnd single-def <ubyte[]>
 ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V18 tmp1         [V18    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;  V19 tmp2         [V19,T53] (  3,  2   )     int  ->  rdi        
 ;  V20 tmp3         [V20,T87] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
 ;  V21 tmp4         [V21,T42] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnWriter>
 ;  V22 tmp5         [V22,T82] (  1,  1   )  struct (32) [rbp-0x80]  do-not-enreg[HS] must-init hidden-struct-arg "location for address-of(RValue)" <System.Formats.Asn1.AsnWriter+Scope>
 ;  V23 tmp6         [V23,T15] (  2,  8   )     ref  ->  rax         class-hnd exact "dup spill" <System.Security.Cryptography.CryptographicAttributeObject>
 ;* V24 tmp7         [V24    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V25 tmp8         [V25    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ubyte]>
 ;* V26 tmp9         [V26    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;  V27 tmp10        [V27,T88] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
 ;  V28 tmp11        [V28,T89] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
 ;  V29 tmp12        [V29,T83] (  1,  1   )  struct (32) [rbp-0xA0]  do-not-enreg[HS] must-init hidden-struct-arg "location for address-of(RValue)" <System.Formats.Asn1.AsnWriter+Scope>
 ;* V30 tmp13        [V30    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret single-def "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
 ;* V31 tmp14        [V31    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
 ;* V32 tmp15        [V32    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.ReadOnlyMemory`1[ubyte]>
 ;* V33 tmp16        [V33    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;  V34 tmp17        [V34,T92] (  2,  0   )     ref  ->  rbx         class-hnd single-def "impSpillSpecialSideEff" <System.PlatformNotSupportedException>
 ;  V35 tmp18        [V35,T90] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "Single-def Box Helper" <System.Security.Cryptography.HashAlgorithmName>
 ;  V36 tmp19        [V36,T93] (  2,  0   )     ref  ->  r14         class-hnd exact single-def "impImportAndPushBox" <System.String>
 ;  V37 tmp20        [V37,T91] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
 ;* V38 tmp21        [V38    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.Oid>
 ;* V39 tmp22        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V40 tmp23        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.Pkcs.SignedCms>
 ;  V41 tmp24        [V41,T43] (  3,  3   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.Pkcs.SignedCms>
 ;* V42 tmp25        [V42    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V43 tmp26        [V43,T38] (  6,  3   )   byref  ->  r13         "Inline stloc first use temp"
 ;  V44 tmp27        [V44,T40] (  6,  3   )     int  ->  rdx         "Inline stloc first use temp"
 ;* V45 tmp28        [V45    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V46 tmp29        [V46    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V47 tmp30        [V47    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
 ;* V48 tmp31        [V48    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V49 tmp32        [V49    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op single-def "Inline stloc first use temp" <System.Span`1[ubyte]>
 ;  V50 tmp33        [V50,T67] (  3,  1.50)    long  ->  rdi         single-def "Inline stloc first use temp"
 ;* V51 tmp34        [V51    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V52 tmp35        [V52    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
 ;* V53 tmp36        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
 ;  V54 tmp37        [V54,T54] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V55 tmp38        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V56 tmp39        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp40        [V57    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.HMACCommon>
 ;* V58 tmp41        [V58    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V59 tmp42        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.HMACCommon>
 ;* V60 tmp43        [V60    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V61 tmp44        [V61,T39] (  6,  3   )   byref  ->  r12         "Inline stloc first use temp"
 ;  V62 tmp45        [V62,T41] (  6,  3   )     int  ->  rdx         "Inline stloc first use temp"
 ;  V63 tmp46        [V63,T30] (  4,  4   )   byref  ->  r13         single-def "Inlining Arg"
 ;  V64 tmp47        [V64,T35] (  7,  3.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V65 tmp48        [V65    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V66 tmp49        [V66    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
 ;* V67 tmp50        [V67    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V68 tmp51        [V68    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op single-def "Inline stloc first use temp" <System.Span`1[ubyte]>
 ;  V69 tmp52        [V69,T68] (  3,  1.50)    long  ->  rdi         single-def "Inline stloc first use temp"
 ;  V70 tmp53        [V70,T69] (  3,  1.50)     int  ->  rsi         single-def "Inline stloc first use temp"
 ;* V71 tmp54        [V71    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
 ;* V72 tmp55        [V72    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
 ;  V73 tmp56        [V73,T55] (  2,  2   )   byref  ->  rdx         single-def "Inlining Arg"
 ;* V74 tmp57        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V75 tmp58        [V75    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V76 tmp59        [V76    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.HMACCommon>
 ;  V77 tmp60        [V77,T00] (  5, 26   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.String>
 ;* V78 tmp61        [V78    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V79 tmp62        [V79,T05] (  2,  8   )     int  ->  rdi         "spilling unroll qmark"
 ;* V80 tmp63        [V80    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
 ;  V81 tmp64        [V81,T16] (  2,  8   )     ref  ->  rsi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
 ;* V82 tmp65        [V82    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
 ;  V83 tmp66        [V83,T17] (  2,  8   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
-;* V84 tmp67        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;* V85 tmp68        [V85    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <ubyte[]>
-;  V86 tmp69        [V86,T18] (  2,  8   )     ref  ->  rdx         class-hnd "dup spill" <ubyte[]>
-;  V87 tmp70        [V87,T04] (  6, 12   )     ref  ->  rdx        
-;* V88 tmp71        [V88    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <ubyte[]>
-;* V89 tmp72        [V89    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <ubyte[]>
-;  V90 tmp73        [V90,T12] (  4,  8   )     ref  ->  [rbp-0xD0]  class-hnd "Inline return value spill temp" <ubyte[]>
-;  V91 tmp74        [V91,T02] (  4, 16   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
-;* V92 tmp75        [V92    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
-;  V93 tmp76        [V93    ] (  5, 20   )  struct (16) [rbp-0xB0]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-;* V94 tmp77        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V95 tmp78        [V95,T31] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
-;* V96 tmp79        [V96    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V97 tmp80        [V97    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V98 tmp81        [V98    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V99 tmp82        [V99    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V100 tmp83       [V100    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
+;* V84 tmp67        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
+;* V85 tmp68        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;* V86 tmp69        [V86    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <ubyte[]>
+;  V87 tmp70        [V87,T18] (  2,  8   )     ref  ->  rdx         class-hnd "dup spill" <ubyte[]>
+;  V88 tmp71        [V88,T04] (  6, 12   )     ref  ->  rdx        
+;* V89 tmp72        [V89    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <ubyte[]>
+;* V90 tmp73        [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <ubyte[]>
+;  V91 tmp74        [V91,T12] (  4,  8   )     ref  ->  [rbp-0xD0]  class-hnd "Inline return value spill temp" <ubyte[]>
+;  V92 tmp75        [V92,T02] (  4, 16   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
+;* V93 tmp76        [V93    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
+;  V94 tmp77        [V94    ] (  5, 20   )  struct (16) [rbp-0xB0]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V95 tmp78        [V95    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;  V96 tmp79        [V96,T31] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
+;* V97 tmp80        [V97    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V98 tmp81        [V98    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V99 tmp82        [V99    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V100 tmp83       [V100    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V101 tmp84       [V101    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;* V102 tmp85       [V102    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V103 tmp86       [V103    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V104 tmp87       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V105 tmp88       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V106 tmp89       [V106    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] "stack allocated ref class temp" <System.Security.Cryptography.Oid>
-;  V107 tmp90       [V107,T52] (  3,  2   )     ref  ->  [rbp-0xD8]  do-not-enreg[H] EH-live "field V02._name (fldOffset=0x0)" P-INDEP
-;  V108 tmp91       [V108,T36] (  7,  3.50)     ref  ->  [rbp-0x50]  do-not-enreg[] "field V08._object (fldOffset=0x0)" P-DEP
-;  V109 tmp92       [V109,T78] (  2,  1   )     int  ->  [rbp-0x48]  do-not-enreg[] "field V08._index (fldOffset=0x8)" P-DEP
-;  V110 tmp93       [V110,T70] (  3,  1.50)     int  ->  [rbp-0x44]  do-not-enreg[] "field V08._length (fldOffset=0xc)" P-DEP
-;  V111 tmp94       [V111    ] (  4, 14   )     ref  ->  [rbp-0x60]  do-not-enreg[X] addr-exposed "field V14.AttrType (fldOffset=0x0)" P-DEP
-;  V112 tmp95       [V112    ] (  3, 10   )     ref  ->  [rbp-0x58]  do-not-enreg[X] addr-exposed "field V14.AttrValues (fldOffset=0x8)" P-DEP
-;* V113 tmp96       [V113    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V114 tmp97       [V114    ] (  0,  0   )     int  ->  zero-ref    single-def "field V18._length (fldOffset=0x8)" P-INDEP
-;  V115 tmp98       [V115,T33] (  2,  4   )   byref  ->  [rbp-0xE0]  spill-single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-;  V116 tmp99       [V116,T34] (  2,  4   )     int  ->  [rbp-0xB4]  spill-single-def "field V25._length (fldOffset=0x8)" P-INDEP
-;* V117 tmp100      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V118 tmp101      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
-;  V119 tmp102      [V119,T59] (  3,  1.50)   byref  ->  rax         "field V30._reference (fldOffset=0x0)" P-INDEP
-;  V120 tmp103      [V120,T71] (  3,  1.50)     int  ->  rdx         "field V30._length (fldOffset=0x8)" P-INDEP
-;* V121 tmp104      [V121    ] (  0,  0   )     ref  ->  zero-ref    "field V31._object (fldOffset=0x0)" P-INDEP
-;* V122 tmp105      [V122    ] (  0,  0   )     int  ->  zero-ref    "field V31._index (fldOffset=0x8)" P-INDEP
-;* V123 tmp106      [V123    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0xc)" P-INDEP
-;* V124 tmp107      [V124    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V33._reference (fldOffset=0x0)" P-INDEP
-;* V125 tmp108      [V125    ] (  0,  0   )     int  ->  zero-ref    single-def "field V33._length (fldOffset=0x8)" P-INDEP
-;* V126 tmp109      [V126    ] (  0,  0   )   byref  ->  zero-ref    "field V42._reference (fldOffset=0x0)" P-INDEP
-;* V127 tmp110      [V127    ] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
-;  V128 tmp111      [V128,T60] (  3,  1.50)   byref  ->  rsi         single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-;  V129 tmp112      [V129,T72] (  3,  1.50)     int  ->  rdx         single-def "field V46._length (fldOffset=0x8)" P-INDEP
-;* V130 tmp113      [V130    ] (  0,  0   )   byref  ->  zero-ref    "field V48._reference (fldOffset=0x0)" P-DEP
-;* V131 tmp114      [V131    ] (  0,  0   )     int  ->  zero-ref    "field V48._length (fldOffset=0x8)" P-DEP
-;  V132 tmp115      [V132,T74] (  2,  1   )   byref  ->  r13         "field V49._reference (fldOffset=0x0)" P-INDEP
-;  V133 tmp116      [V133,T79] (  2,  1   )     int  ->  rdx         "field V49._length (fldOffset=0x8)" P-INDEP
-;* V134 tmp117      [V134    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V55._reference (fldOffset=0x0)" P-INDEP
-;* V135 tmp118      [V135    ] (  0,  0   )     int  ->  zero-ref    "field V55._length (fldOffset=0x8)" P-INDEP
-;* V136 tmp119      [V136    ] (  0,  0   )   byref  ->  zero-ref    "field V60._reference (fldOffset=0x0)" P-INDEP
-;* V137 tmp120      [V137    ] (  0,  0   )     int  ->  zero-ref    "field V60._length (fldOffset=0x8)" P-INDEP
-;  V138 tmp121      [V138,T61] (  3,  1.50)   byref  ->  rsi         single-def "field V65._reference (fldOffset=0x0)" P-INDEP
-;  V139 tmp122      [V139,T73] (  3,  1.50)     int  ->  rdx         single-def "field V65._length (fldOffset=0x8)" P-INDEP
-;* V140 tmp123      [V140    ] (  0,  0   )   byref  ->  zero-ref    "field V67._reference (fldOffset=0x0)" P-DEP
-;* V141 tmp124      [V141    ] (  0,  0   )     int  ->  zero-ref    "field V67._length (fldOffset=0x8)" P-DEP
-;  V142 tmp125      [V142,T75] (  2,  1   )   byref  ->  r12         "field V68._reference (fldOffset=0x0)" P-INDEP
-;  V143 tmp126      [V143,T80] (  2,  1   )     int  ->  rdx         "field V68._length (fldOffset=0x8)" P-INDEP
-;* V144 tmp127      [V144    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V74._reference (fldOffset=0x0)" P-INDEP
-;* V145 tmp128      [V145    ] (  0,  0   )     int  ->  zero-ref    "field V74._length (fldOffset=0x8)" P-INDEP
-;  V146 tmp129      [V146,T22] (  3,  6   )   byref  ->  rax         "field V84._reference (fldOffset=0x0)" P-INDEP
-;  V147 tmp130      [V147,T25] (  3,  6   )     int  ->  rcx         "field V84._length (fldOffset=0x8)" P-INDEP
-;* V148 tmp131      [V148    ] (  0,  0   )     ref  ->  zero-ref    "field V92._object (fldOffset=0x0)" P-INDEP
-;* V149 tmp132      [V149    ] (  0,  0   )     int  ->  zero-ref    "field V92._index (fldOffset=0x8)" P-INDEP
-;* V150 tmp133      [V150    ] (  0,  0   )     int  ->  zero-ref    "field V92._length (fldOffset=0xc)" P-INDEP
-;  V151 tmp134      [V151,T08] (  3, 10   )     ref  ->  [rbp-0xB0]  do-not-enreg[] "field V93._object (fldOffset=0x0)" P-DEP
-;  V152 tmp135      [V152,T09] (  3, 10   )     int  ->  [rbp-0xA8]  do-not-enreg[] "field V93._index (fldOffset=0x8)" P-DEP
-;  V153 tmp136      [V153,T10] (  3, 10   )     int  ->  [rbp-0xA4]  do-not-enreg[] "field V93._length (fldOffset=0xc)" P-DEP
-;  V154 tmp137      [V154,T23] (  3,  6   )   byref  ->  rsi         "field V94._reference (fldOffset=0x0)" P-INDEP
-;  V155 tmp138      [V155,T13] (  4,  8   )     int  ->  rdi         "field V94._length (fldOffset=0x8)" P-INDEP
-;* V156 tmp139      [V156    ] (  0,  0   )   byref  ->  zero-ref    "field V96._reference (fldOffset=0x0)" P-INDEP
-;* V157 tmp140      [V157    ] (  0,  0   )     int  ->  zero-ref    "field V96._length (fldOffset=0x8)" P-INDEP
-;* V158 tmp141      [V158    ] (  0,  0   )   byref  ->  zero-ref    "field V98._reference (fldOffset=0x0)" P-INDEP
-;* V159 tmp142      [V159    ] (  0,  0   )     int  ->  zero-ref    "field V98._length (fldOffset=0x8)" P-INDEP
-;* V160 tmp143      [V160    ] (  0,  0   )   byref  ->  zero-ref    "field V102._reference (fldOffset=0x0)" P-INDEP
-;* V161 tmp144      [V161    ] (  0,  0   )     int  ->  zero-ref    "field V102._length (fldOffset=0x8)" P-INDEP
-;* V162 tmp145      [V162    ] (  0,  0   )   byref  ->  zero-ref    "field V103._reference (fldOffset=0x0)" P-INDEP
-;* V163 tmp146      [V163    ] (  0,  0   )     int  ->  zero-ref    "field V103._length (fldOffset=0x8)" P-INDEP
-;* V164 tmp147      [V164    ] (  0,  0   )   byref  ->  zero-ref    "field V104._reference (fldOffset=0x0)" P-INDEP
-;* V165 tmp148      [V165    ] (  0,  0   )     int  ->  zero-ref    "field V104._length (fldOffset=0x8)" P-INDEP
-;* V166 tmp149      [V166    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
-;* V167 tmp150      [V167    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
-;  V168 tmp151      [V168,T81] (  2,  1   )   ubyte  ->  rsi         single-def "V07.[000..001)"
-;* V169 tmp152      [V169    ] (  0,  0   )    long  ->  zero-ref    single-def "V106.[000..008)"
-;  V170 tmp153      [V170,T56] (  2,  2   )     ref  ->  rdi         single-def "V106.[008..016)"
-;* V171 tmp154      [V171    ] (  0,  0   )     ref  ->  zero-ref    single-def "V106.[016..024)"
-;* V172 tmp155      [V172    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V106.[028..029)"
-;  V173 tmp156      [V173,T44] (  3,  3   )   byref  ->  rdi         single-def "Spilling address for field-by-field copy"
-;  V174 tmp157      [V174,T94] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V175 tmp158      [V175,T76] (  2,  1   )     ref  ->  r13         single-def "Field obj"
-;  V176 tmp159      [V176,T45] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V177 tmp160      [V177,T46] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V178 tmp161      [V178,T47] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V179 tmp162      [V179,T48] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V180 tmp163      [V180,T49] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V181 tmp164      [V181,T50] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V182 tmp165      [V182,T06] (  3, 12   )     ref  ->  rdi         "arr expr"
-;  V183 tmp166      [V183,T14] (  3,  8   )     ref  ->  rsi         "argument with side effect"
-;  V184 tmp167      [V184,T95] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V185 tmp168      [V185,T96] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V186 tmp169      [V186,T57] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V187 tmp170      [V187,T97] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V188 PSPSym      [V188,T84] (  1,  1   )    long  ->  [rbp-0xF0]  do-not-enreg[V] "PSPSym"
-;  V189 cse0        [V189,T24] (  3,  6   )     ref  ->  rdi         "CSE #10: moderate"
-;  V190 cse1        [V190,T26] (  3,  6   )     int  ->  rsi         "CSE #11: moderate"
-;  V191 cse2        [V191,T62] (  3,  1.50)     ref  ->  rdx         "CSE #01: conservative"
-;  V192 cse3        [V192,T63] (  3,  1.50)     ref  ->  rdi         "CSE #02: conservative"
-;  V193 cse4        [V193,T64] (  3,  1.50)     ref  ->  rdi         "CSE #03: conservative"
-;  V194 cse5        [V194,T65] (  3,  1.50)     ref  ->  rdi         "CSE #05: conservative"
-;  V195 cse6        [V195,T29] (  3,  5   )     int  ->  [rbp-0xB8]  spill-single-def "CSE #12: moderate"
-;  V196 rat0        [V196,T01] (  5, 16.50)    long  ->  [rbp-0xC0]  "Widened IV V13"
-;  V197 rat1        [V197,T03] (  4, 14   )     ref  ->  r13         "replacement local"
-;  V198 rat2        [V198,T32] (  3,  4   )    long  ->  rdi         "CSE for expectedClsNode"
-;  V199 rat3        [V199,T86] (  3, 12   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;* V102 tmp85       [V102    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
+;* V103 tmp86       [V103    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V104 tmp87       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V105 tmp88       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V106 tmp89       [V106    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V107 tmp90       [V107    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] "stack allocated ref class temp" <System.Security.Cryptography.Oid>
+;  V108 tmp91       [V108,T52] (  3,  2   )     ref  ->  [rbp-0xD8]  do-not-enreg[H] EH-live "field V02._name (fldOffset=0x0)" P-INDEP
+;  V109 tmp92       [V109,T36] (  7,  3.50)     ref  ->  [rbp-0x50]  do-not-enreg[] "field V08._object (fldOffset=0x0)" P-DEP
+;  V110 tmp93       [V110,T78] (  2,  1   )     int  ->  [rbp-0x48]  do-not-enreg[] "field V08._index (fldOffset=0x8)" P-DEP
+;  V111 tmp94       [V111,T70] (  3,  1.50)     int  ->  [rbp-0x44]  do-not-enreg[] "field V08._length (fldOffset=0xc)" P-DEP
+;  V112 tmp95       [V112    ] (  4, 14   )     ref  ->  [rbp-0x60]  do-not-enreg[X] addr-exposed "field V14.AttrType (fldOffset=0x0)" P-DEP
+;  V113 tmp96       [V113    ] (  3, 10   )     ref  ->  [rbp-0x58]  do-not-enreg[X] addr-exposed "field V14.AttrValues (fldOffset=0x8)" P-DEP
+;* V114 tmp97       [V114    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V115 tmp98       [V115    ] (  0,  0   )     int  ->  zero-ref    single-def "field V18._length (fldOffset=0x8)" P-INDEP
+;  V116 tmp99       [V116,T22] (  3,  6   )   byref  ->  [rbp-0xE0]  "field V25._reference (fldOffset=0x0)" P-INDEP
+;  V117 tmp100      [V117,T25] (  3,  6   )     int  ->  [rbp-0xB4]  "field V25._length (fldOffset=0x8)" P-INDEP
+;* V118 tmp101      [V118    ] (  0,  0   )   byref  ->  zero-ref    "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V119 tmp102      [V119    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
+;  V120 tmp103      [V120,T59] (  3,  1.50)   byref  ->  rax         "field V30._reference (fldOffset=0x0)" P-INDEP
+;  V121 tmp104      [V121,T71] (  3,  1.50)     int  ->  rdx         "field V30._length (fldOffset=0x8)" P-INDEP
+;* V122 tmp105      [V122    ] (  0,  0   )     ref  ->  zero-ref    "field V31._object (fldOffset=0x0)" P-INDEP
+;* V123 tmp106      [V123    ] (  0,  0   )     int  ->  zero-ref    "field V31._index (fldOffset=0x8)" P-INDEP
+;* V124 tmp107      [V124    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0xc)" P-INDEP
+;* V125 tmp108      [V125    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+;* V126 tmp109      [V126    ] (  0,  0   )     int  ->  zero-ref    single-def "field V33._length (fldOffset=0x8)" P-INDEP
+;* V127 tmp110      [V127    ] (  0,  0   )   byref  ->  zero-ref    "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V128 tmp111      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
+;  V129 tmp112      [V129,T60] (  3,  1.50)   byref  ->  rsi         single-def "field V46._reference (fldOffset=0x0)" P-INDEP
+;  V130 tmp113      [V130,T72] (  3,  1.50)     int  ->  rdx         single-def "field V46._length (fldOffset=0x8)" P-INDEP
+;* V131 tmp114      [V131    ] (  0,  0   )   byref  ->  zero-ref    "field V48._reference (fldOffset=0x0)" P-DEP
+;* V132 tmp115      [V132    ] (  0,  0   )     int  ->  zero-ref    "field V48._length (fldOffset=0x8)" P-DEP
+;  V133 tmp116      [V133,T74] (  2,  1   )   byref  ->  r13         "field V49._reference (fldOffset=0x0)" P-INDEP
+;  V134 tmp117      [V134,T79] (  2,  1   )     int  ->  rdx         "field V49._length (fldOffset=0x8)" P-INDEP
+;* V135 tmp118      [V135    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V55._reference (fldOffset=0x0)" P-INDEP
+;* V136 tmp119      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V55._length (fldOffset=0x8)" P-INDEP
+;* V137 tmp120      [V137    ] (  0,  0   )   byref  ->  zero-ref    "field V60._reference (fldOffset=0x0)" P-INDEP
+;* V138 tmp121      [V138    ] (  0,  0   )     int  ->  zero-ref    "field V60._length (fldOffset=0x8)" P-INDEP
+;  V139 tmp122      [V139,T61] (  3,  1.50)   byref  ->  rsi         single-def "field V65._reference (fldOffset=0x0)" P-INDEP
+;  V140 tmp123      [V140,T73] (  3,  1.50)     int  ->  rdx         single-def "field V65._length (fldOffset=0x8)" P-INDEP
+;* V141 tmp124      [V141    ] (  0,  0   )   byref  ->  zero-ref    "field V67._reference (fldOffset=0x0)" P-DEP
+;* V142 tmp125      [V142    ] (  0,  0   )     int  ->  zero-ref    "field V67._length (fldOffset=0x8)" P-DEP
+;  V143 tmp126      [V143,T75] (  2,  1   )   byref  ->  r12         "field V68._reference (fldOffset=0x0)" P-INDEP
+;  V144 tmp127      [V144,T80] (  2,  1   )     int  ->  rdx         "field V68._length (fldOffset=0x8)" P-INDEP
+;* V145 tmp128      [V145    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V74._reference (fldOffset=0x0)" P-INDEP
+;* V146 tmp129      [V146    ] (  0,  0   )     int  ->  zero-ref    "field V74._length (fldOffset=0x8)" P-INDEP
+;* V147 tmp130      [V147    ] (  0,  0   )   byref  ->  zero-ref    "field V84._reference (fldOffset=0x0)" P-INDEP
+;* V148 tmp131      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
+;  V149 tmp132      [V149,T33] (  2,  4   )   byref  ->  rax         "field V85._reference (fldOffset=0x0)" P-INDEP
+;  V150 tmp133      [V150,T34] (  2,  4   )     int  ->  rcx         "field V85._length (fldOffset=0x8)" P-INDEP
+;* V151 tmp134      [V151    ] (  0,  0   )     ref  ->  zero-ref    "field V93._object (fldOffset=0x0)" P-INDEP
+;* V152 tmp135      [V152    ] (  0,  0   )     int  ->  zero-ref    "field V93._index (fldOffset=0x8)" P-INDEP
+;* V153 tmp136      [V153    ] (  0,  0   )     int  ->  zero-ref    "field V93._length (fldOffset=0xc)" P-INDEP
+;  V154 tmp137      [V154,T08] (  3, 10   )     ref  ->  [rbp-0xB0]  do-not-enreg[] "field V94._object (fldOffset=0x0)" P-DEP
+;  V155 tmp138      [V155,T09] (  3, 10   )     int  ->  [rbp-0xA8]  do-not-enreg[] "field V94._index (fldOffset=0x8)" P-DEP
+;  V156 tmp139      [V156,T10] (  3, 10   )     int  ->  [rbp-0xA4]  do-not-enreg[] "field V94._length (fldOffset=0xc)" P-DEP
+;  V157 tmp140      [V157,T23] (  3,  6   )   byref  ->  rsi         "field V95._reference (fldOffset=0x0)" P-INDEP
+;  V158 tmp141      [V158,T13] (  4,  8   )     int  ->  rdi         "field V95._length (fldOffset=0x8)" P-INDEP
+;* V159 tmp142      [V159    ] (  0,  0   )   byref  ->  zero-ref    "field V97._reference (fldOffset=0x0)" P-INDEP
+;* V160 tmp143      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V97._length (fldOffset=0x8)" P-INDEP
+;* V161 tmp144      [V161    ] (  0,  0   )   byref  ->  zero-ref    "field V99._reference (fldOffset=0x0)" P-INDEP
+;* V162 tmp145      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V99._length (fldOffset=0x8)" P-INDEP
+;* V163 tmp146      [V163    ] (  0,  0   )   byref  ->  zero-ref    "field V103._reference (fldOffset=0x0)" P-INDEP
+;* V164 tmp147      [V164    ] (  0,  0   )     int  ->  zero-ref    "field V103._length (fldOffset=0x8)" P-INDEP
+;* V165 tmp148      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V104._reference (fldOffset=0x0)" P-INDEP
+;* V166 tmp149      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V104._length (fldOffset=0x8)" P-INDEP
+;* V167 tmp150      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
+;* V168 tmp151      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
+;* V169 tmp152      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V106._reference (fldOffset=0x0)" P-INDEP
+;* V170 tmp153      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V106._length (fldOffset=0x8)" P-INDEP
+;  V171 tmp154      [V171,T81] (  2,  1   )   ubyte  ->  rsi         single-def "V07.[000..001)"
+;* V172 tmp155      [V172    ] (  0,  0   )    long  ->  zero-ref    single-def "V107.[000..008)"
+;  V173 tmp156      [V173,T56] (  2,  2   )     ref  ->  rdi         single-def "V107.[008..016)"
+;* V174 tmp157      [V174    ] (  0,  0   )     ref  ->  zero-ref    single-def "V107.[016..024)"
+;* V175 tmp158      [V175    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V107.[028..029)"
+;  V176 tmp159      [V176,T44] (  3,  3   )   byref  ->  rdi         single-def "Spilling address for field-by-field copy"
+;  V177 tmp160      [V177,T94] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V178 tmp161      [V178,T76] (  2,  1   )     ref  ->  r13         single-def "Field obj"
+;  V179 tmp162      [V179,T45] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V180 tmp163      [V180,T46] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V181 tmp164      [V181,T47] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V182 tmp165      [V182,T48] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V183 tmp166      [V183,T49] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V184 tmp167      [V184,T50] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V185 tmp168      [V185,T06] (  3, 12   )     ref  ->  rdi         "arr expr"
+;  V186 tmp169      [V186,T14] (  3,  8   )     ref  ->  rsi         "argument with side effect"
+;  V187 tmp170      [V187,T95] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V188 tmp171      [V188,T96] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V189 tmp172      [V189,T57] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V190 tmp173      [V190,T97] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V191 PSPSym      [V191,T84] (  1,  1   )    long  ->  [rbp-0xF0]  do-not-enreg[V] "PSPSym"
+;  V192 cse0        [V192,T24] (  3,  6   )     ref  ->  rdi         "CSE #10: moderate"
+;  V193 cse1        [V193,T26] (  3,  6   )     int  ->  rsi         "CSE #11: moderate"
+;  V194 cse2        [V194,T62] (  3,  1.50)     ref  ->  rdx         "CSE #01: conservative"
+;  V195 cse3        [V195,T63] (  3,  1.50)     ref  ->  rdi         "CSE #02: conservative"
+;  V196 cse4        [V196,T64] (  3,  1.50)     ref  ->  rdi         "CSE #03: conservative"
+;  V197 cse5        [V197,T65] (  3,  1.50)     ref  ->  rdi         "CSE #05: conservative"
+;  V198 cse6        [V198,T29] (  3,  5   )     int  ->  [rbp-0xB8]  spill-single-def "CSE #12: moderate"
+;  V199 rat0        [V199,T01] (  5, 16.50)    long  ->  [rbp-0xC0]  "Widened IV V13"
+;  V200 rat1        [V200,T03] (  4, 14   )     ref  ->  r13         "replacement local"
+;  V201 rat2        [V201,T32] (  3,  4   )    long  ->  rdi         "CSE for expectedClsNode"
+;  V202 rat3        [V202,T86] (  3, 12   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 200
 
 G_M28512_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 200
        lea      rbp, [rsp+0xF0]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
        vmovdqu32 zmmword ptr [rbp-0x70], zmm8
        xor      eax, eax
        mov      qword ptr [rbp-0x30], rax
        mov      qword ptr [rbp-0xF0], rsp
        mov      rbx, rdi
        mov      r15d, esi
 						;; size=69 bbWeight=1 PerfScore 13.83
 G_M28512_IG02:
        mov      rdi, gword ptr [rbx+0x10]
        mov      esi, 1
        mov      rax, 0xD1FFAB1E      ; code for Internal.Cryptography.PkcsHelpers:GetDigestAlgorithm(System.String,ubyte):System.Security.Cryptography.HashAlgorithmName
        call     [rax]Internal.Cryptography.PkcsHelpers:GetDigestAlgorithm(System.String,ubyte):System.Security.Cryptography.HashAlgorithmName
        mov      gword ptr [rbp-0xD8], rax
 						;; size=28 bbWeight=1 PerfScore 6.50
 G_M28512_IG03:
        mov      rdi, gword ptr [rbp-0xD8]
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.IncrementalHash:CreateHash(System.Security.Cryptography.HashAlgorithmName):System.Security.Cryptography.IncrementalHash
        call     [rax]System.Security.Cryptography.IncrementalHash:CreateHash(System.Security.Cryptography.HashAlgorithmName):System.Security.Cryptography.IncrementalHash
        mov      r14, rax
 						;; size=22 bbWeight=1 PerfScore 4.50
 G_M28512_IG04:
        cmp      gword ptr [rbx+0x40], 0
        jne      G_M28512_IG08
 						;; size=11 bbWeight=1 PerfScore 4.00
 G_M28512_IG05:
        mov      rdx, gword ptr [rbx+0x30]
        cmp      byte  ptr [rdx+0x22], 0
        je       G_M28512_IG17
        cmp      byte  ptr [rdx], dl
        add      rdx, 40
        lea      rdi, bword ptr [rdx+0x30]
        movzx    rsi, byte  ptr [rdi]
 						;; size=28 bbWeight=0.50 PerfScore 5.88
 G_M28512_IG06:
        vmovdqu  xmm0, xmmword ptr [rdi]
        vmovdqu  xmmword ptr [rbp-0x40], xmm0
        mov      rax, qword ptr [rdi+0x10]
        mov      qword ptr [rbp-0x30], rax
 						;; size=17 bbWeight=0.50 PerfScore 4.00
 G_M28512_IG07:
        test     esi, esi
        je       G_M28512_IG17
        mov      rdi, gword ptr [rbp-0x38]
        mov      rsi, qword ptr [rbp-0x30]
        mov      rdx, gword ptr [rdx+0x28]
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Pkcs.SignedCms:GetContent(System.ReadOnlyMemory`1[ubyte],System.String):System.ReadOnlyMemory`1[ubyte]
        call     [rax]System.Security.Cryptography.Pkcs.SignedCms:GetContent(System.ReadOnlyMemory`1[ubyte],System.String):System.ReadOnlyMemory`1[ubyte]
        mov      gword ptr [rbp-0x50], rax
        mov      qword ptr [rbp-0x48], rdx
        xor      r13, r13
        xor      edx, edx
        cmp      gword ptr [rbp-0x50], 0
        je       G_M28512_IG15
        mov      rdx, gword ptr [rbp-0x50]
        mov      rdi, qword ptr [rdx]
        test     dword ptr [rdi], 0xD1FFAB1E
        je       G_M28512_IG13
        mov      r13, gword ptr [rbp-0x50]
        add      r13, 16
        mov      rdi, gword ptr [rbp-0x50]
        mov      edx, dword ptr [rdi+0x08]
        jmp      G_M28512_IG14
 						;; size=95 bbWeight=0.50 PerfScore 13.62
 G_M28512_IG08:
        mov      r13, gword ptr [rbx+0x40]
        add      r13, 144
        xor      r12, r12
        xor      edx, edx
        mov      rdi, gword ptr [r13]
        test     rdi, rdi
        je       SHORT G_M28512_IG11
        mov      rdx, qword ptr [rdi]
        test     dword ptr [rdx], 0xD1FFAB1E
        je       SHORT G_M28512_IG09
        lea      r12, bword ptr [rdi+0x10]
        mov      edx, dword ptr [rdi+0x08]
        jmp      SHORT G_M28512_IG10
 						;; size=45 bbWeight=0.50 PerfScore 8.25
 G_M28512_IG09:
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
        mov      r12, rax
 						;; size=13 bbWeight=0.50 PerfScore 3.62
 G_M28512_IG10:
        mov      edi, dword ptr [r13+0x08]
        and      edi, 0xD1FFAB1E
        mov      esi, dword ptr [r13+0x0C]
        mov      eax, esi
        add      rax, rdi
        mov      edx, edx
        cmp      rax, rdx
        ja       G_M28512_IG53
        add      r12, rdi
        mov      edx, esi
 						;; size=35 bbWeight=0.50 PerfScore 3.38
 G_M28512_IG11:
        mov      rsi, r12
        cmp      byte  ptr [r14+0x1C], 0
        jne      G_M28512_IG52
        mov      rdi, gword ptr [r14+0x08]
        test     rdi, rdi
        je       SHORT G_M28512_IG12
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
        jmp      G_M28512_IG19
 						;; size=38 bbWeight=0.50 PerfScore 8.25
 G_M28512_IG12:
        mov      rdi, gword ptr [r14+0x10]
        mov      rdi, gword ptr [rdi+0x18]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
        jmp      G_M28512_IG19
 						;; size=23 bbWeight=0.50 PerfScore 6.50
 G_M28512_IG13:
        mov      rdi, gword ptr [rbp-0x50]
        mov      rax, gword ptr [rbp-0x50]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
        mov      r13, rax
 						;; size=21 bbWeight=0.50 PerfScore 4.62
 G_M28512_IG14:
        mov      edi, dword ptr [rbp-0x48]
        and      edi, 0xD1FFAB1E
        mov      esi, dword ptr [rbp-0x44]
        add      rsi, rdi
        mov      edx, edx
        cmp      rsi, rdx
        ja       G_M28512_IG53
        add      r13, rdi
        mov      edx, dword ptr [rbp-0x44]
 						;; size=32 bbWeight=0.50 PerfScore 2.62
 G_M28512_IG15:
        mov      rsi, r13
        cmp      byte  ptr [r14+0x1C], 0
        jne      G_M28512_IG52
        mov      rdi, gword ptr [r14+0x08]
        test     rdi, rdi
        je       SHORT G_M28512_IG16
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
        jmp      SHORT G_M28512_IG17
 						;; size=35 bbWeight=0.50 PerfScore 8.25
 G_M28512_IG16:
        mov      rdi, gword ptr [r14+0x10]
        mov      rdi, gword ptr [rdi+0x18]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
 						;; size=18 bbWeight=0.50 PerfScore 5.50
 G_M28512_IG17:
        mov      rdi, gword ptr [rbx+0x30]
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Pkcs.SignedCms:GetHashableContentSpan():System.ReadOnlySpan`1[ubyte]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Security.Cryptography.Pkcs.SignedCms:GetHashableContentSpan():System.ReadOnlySpan`1[ubyte]:this
        cmp      byte  ptr [r14+0x1C], 0
        jne      G_M28512_IG52
        mov      rdi, gword ptr [r14+0x08]
        test     rdi, rdi
        je       SHORT G_M28512_IG18
        mov      rsi, rax
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
        jmp      SHORT G_M28512_IG19
 						;; size=53 bbWeight=0.50 PerfScore 12.38
 G_M28512_IG18:
        mov      rdi, gword ptr [r14+0x10]
        mov      rdi, gword ptr [rdi+0x18]
        mov      rsi, rax
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
 						;; size=21 bbWeight=0.50 PerfScore 5.62
 G_M28512_IG19:
        cmp      gword ptr [rbx+0x40], 0
        jne      SHORT G_M28512_IG21
 						;; size=7 bbWeight=1 PerfScore 4.00
 G_M28512_IG20:
        cmp      gword ptr [rbx+0x18], 0
        setne    dil
        movzx    rdi, dil
        jmp      SHORT G_M28512_IG22
 						;; size=15 bbWeight=0.50 PerfScore 3.12
 G_M28512_IG21:
        mov      edi, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M28512_IG22:
        movzx    r13, dil
        cmp      gword ptr [rbx+0x18], 0
        je       SHORT G_M28512_IG24
 						;; size=11 bbWeight=1 PerfScore 4.25
 G_M28512_IG23:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.IncrementalHash:GetHashAndReset():ubyte[]:this
        call     [rax]System.Security.Cryptography.IncrementalHash:GetHashAndReset():ubyte[]:this
        mov      r12, rax
        mov      rdi, 0xD1FFAB1E      ; System.Formats.Asn1.AsnWriter
        call     CORINFO_HELP_NEWSFAST
        mov      dword ptr [rax+0x1C], 2
        mov      gword ptr [rbp-0xC8], rax
        test     r15b, r15b
        je       SHORT G_M28512_IG26
        xor      edx, edx
        xor      ecx, ecx
        lea      rsi, [rbp-0xA0]
        mov      rdi, rax
        mov      r8, 0xD1FFAB1E      ; code for System.Formats.Asn1.AsnWriter:PushSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
        call     [r8]System.Formats.Asn1.AsnWriter:PushSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
        jmp      SHORT G_M28512_IG27
 						;; size=81 bbWeight=0.50 PerfScore 7.38
 G_M28512_IG24:
        test     r15b, r15b
        je       G_M28512_IG45
        xor      rax, rax
 						;; size=11 bbWeight=0.50 PerfScore 0.75
 G_M28512_IG25:
        vzeroupper 
        add      rsp, 200
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=21 bbWeight=0.50 PerfScore 2.62
 G_M28512_IG26:
        xor      edx, edx
        xor      ecx, ecx
        lea      rsi, [rbp-0x80]
        mov      rdi, rax
        mov      r8, 0xD1FFAB1E      ; code for System.Formats.Asn1.AsnWriter:PushSetOf(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
        call     [r8]System.Formats.Asn1.AsnWriter:PushSetOf(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
 						;; size=24 bbWeight=0.50 PerfScore 2.25
 G_M28512_IG27:
        mov      rbx, gword ptr [rbx+0x18]
        xor      eax, eax
        mov      ecx, dword ptr [rbx+0x08]
        mov      dword ptr [rbp-0xB8], ecx
        test     ecx, ecx
        jle      G_M28512_IG43
 						;; size=23 bbWeight=0.50 PerfScore 3.25
 G_M28512_IG28:
        mov      qword ptr [rbp-0xC0], rax
        mov      rdi, rax
        shl      rdi, 4
 						;; size=14 bbWeight=4 PerfScore 7.00
 G_M28512_IG29:
        vmovdqu  xmm0, xmmword ptr [rbx+rdi+0x10]
        vmovdqu  xmmword ptr [rbp-0x60], xmm0
 						;; size=11 bbWeight=4 PerfScore 20.00
 G_M28512_IG30:
        lea      rdi, [rbp-0x60]
        mov      rsi, gword ptr [rbp-0xC8]
        mov      rdx, 0xD1FFAB1E      ; code for System.Security.Cryptography.Asn1.AttributeAsn:Encode(System.Formats.Asn1.AsnWriter):this
        call     [rdx]System.Security.Cryptography.Asn1.AttributeAsn:Encode(System.Formats.Asn1.AsnWriter):this
        mov      rdi, gword ptr [rbp-0x60]
        test     rdi, rdi
        je       G_M28512_IG42
 						;; size=36 bbWeight=4 PerfScore 28.00
 G_M28512_IG31:
        cmp      dword ptr [rdi+0x08], 20
        jne      G_M28512_IG42
 						;; size=10 bbWeight=1 PerfScore 4.00
 G_M28512_IG32:
        vmovups  ymm0, ymmword ptr [rdi+0x0C]
        vpxor    ymm0, ymm0, ymmword ptr [reloc @RWD00]
        vmovups  ymm1, ymmword ptr [rdi+0x14]
        vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD32], -10
        vptest   ymm0, ymm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        je       G_M28512_IG42
        mov      rdi, gword ptr [rbp-0x60]
        mov      rsi, gword ptr [rbp-0x58]
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Pkcs.SignerInfo:MakeAttribute(System.Security.Cryptography.Asn1.AttributeAsn):System.Security.Cryptography.CryptographicAttributeObject
        call     [rax]System.Security.Cryptography.Pkcs.SignerInfo:MakeAttribute(System.Security.Cryptography.Asn1.AttributeAsn):System.Security.Cryptography.CryptographicAttributeObject
        mov      rdi, gword ptr [rax+0x08]
        mov      rdi, gword ptr [rdi+0x08]
        mov      rsi, rdi
        mov      esi, dword ptr [rsi+0x10]
        cmp      esi, 1
        jne      G_M28512_IG51
        test     esi, esi
        je       G_M28512_IG50
        mov      rdi, gword ptr [rdi+0x08]
        cmp      dword ptr [rdi+0x08], 0
        jbe      G_M28512_IG54
        mov      rsi, gword ptr [rdi+0x10]
        mov      r13, rsi
        test     r13, r13
        je       SHORT G_M28512_IG34
 						;; size=127 bbWeight=2 PerfScore 90.00
 G_M28512_IG33:
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.Pkcs.Pkcs9MessageDigest
        cmp      qword ptr [r13], rdi
        jne      G_M28512_IG49
 						;; size=20 bbWeight=1 PerfScore 4.25
 G_M28512_IG34:
        test     r12, r12
-       jne      SHORT G_M28512_IG35
-       xor      rax, rax
-       xor      ecx, ecx
-       jmp      SHORT G_M28512_IG36
-						;; size=11 bbWeight=2 PerfScore 7.50
-G_M28512_IG35:
+       je       SHORT G_M28512_IG35
        lea      rax, bword ptr [r12+0x10]
        mov      ecx, dword ptr [r12+0x08]
-						;; size=10 bbWeight=2 PerfScore 5.00
-G_M28512_IG36:
+       jmp      SHORT G_M28512_IG36
+						;; size=17 bbWeight=2 PerfScore 11.50
+G_M28512_IG35:
+       xor      rax, rax
        mov      bword ptr [rbp-0xE0], rax
+       xor      ecx, ecx
        mov      dword ptr [rbp-0xB4], ecx
+       mov      rax, bword ptr [rbp-0xE0]
+       mov      ecx, dword ptr [rbp-0xB4]
+						;; size=30 bbWeight=2 PerfScore 9.00
+G_M28512_IG36:
        mov      rdx, gword ptr [r13+0x18]
        test     rdx, rdx
-       mov      rax, bword ptr [rbp-0xE0]
-       jne      SHORT G_M28512_IG39
+       jne      G_M28512_IG39
        mov      rdi, gword ptr [r13+0x10]
        test     rdi, rdi
        jne      SHORT G_M28512_IG37
        xor      rdx, rdx
+       mov      bword ptr [rbp-0xE0], rax
+       mov      dword ptr [rbp-0xB4], ecx
        jmp      SHORT G_M28512_IG38
-						;; size=42 bbWeight=2 PerfScore 23.50
+						;; size=39 bbWeight=2 PerfScore 21.50
 G_M28512_IG37:
+       mov      bword ptr [rbp-0xE0], rax
+       mov      dword ptr [rbp-0xB4], ecx
        mov      gword ptr [rbp-0xB0], rdi
        xor      esi, esi
        mov      dword ptr [rbp-0xA8], esi
        mov      edi, dword ptr [rdi+0x08]
        mov      dword ptr [rbp-0xA4], edi
        mov      rdi, gword ptr [rbp-0xB0]
        mov      rsi, qword ptr [rbp-0xA8]
        mov      rdx, 0xD1FFAB1E      ; code for Internal.Cryptography.PkcsHelpers:DecodeOctetString(System.ReadOnlyMemory`1[ubyte]):ubyte[]
        call     [rdx]Internal.Cryptography.PkcsHelpers:DecodeOctetString(System.ReadOnlyMemory`1[ubyte]):ubyte[]
        mov      rdx, rax
-						;; size=53 bbWeight=2 PerfScore 21.50
+						;; size=66 bbWeight=2 PerfScore 25.50
 G_M28512_IG38:
        lea      rdi, bword ptr [r13+0x18]
        mov      gword ptr [rbp-0xD0], rdx
        mov      rsi, rdx
        call     CORINFO_HELP_ASSIGN_REF
        mov      r13, gword ptr [rbp-0xD0]
        mov      rdx, r13
        mov      rax, bword ptr [rbp-0xE0]
-						;; size=36 bbWeight=2 PerfScore 10.00
+       mov      ecx, dword ptr [rbp-0xB4]
+						;; size=42 bbWeight=2 PerfScore 12.00
 G_M28512_IG39:
        test     rdx, rdx
        jne      SHORT G_M28512_IG40
        xor      rsi, rsi
        xor      edi, edi
        jmp      SHORT G_M28512_IG41
 						;; size=11 bbWeight=2 PerfScore 7.50
 G_M28512_IG40:
        lea      rsi, bword ptr [rdx+0x10]
        mov      edi, dword ptr [rdx+0x08]
 						;; size=7 bbWeight=2 PerfScore 5.00
 G_M28512_IG41:
-       cmp      dword ptr [rbp-0xB4], edi
+       cmp      ecx, edi
        jne      G_M28512_IG48
        mov      edx, edi
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        test     eax, eax
        je       G_M28512_IG48
        xor      r13d, r13d
-						;; size=40 bbWeight=2 PerfScore 16.50
+						;; size=36 bbWeight=2 PerfScore 13.00
 G_M28512_IG42:
        mov      rsi, qword ptr [rbp-0xC0]
        inc      esi
        mov      edx, dword ptr [rbp-0xB8]
        cmp      edx, esi
        mov      rax, rsi
        jg       G_M28512_IG28
 						;; size=26 bbWeight=4 PerfScore 15.00
 G_M28512_IG43:
        test     r15b, r15b
        je       SHORT G_M28512_IG44
        xor      esi, esi
        xor      edx, edx
        mov      rdi, gword ptr [rbp-0xC8]
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Asn1.AsnWriter:PopSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
        call     [rax]System.Formats.Asn1.AsnWriter:PopSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
        mov      rdi, gword ptr [rbp-0xC8]
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
        call     [rax]System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
        cmp      dword ptr [rax+0x08], 0
        jbe      G_M28512_IG54
        mov      byte  ptr [rax+0x10], 49
        mov      rdi, r14
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.IncrementalHash:AppendData(ubyte[]):this
        call     [rax]System.Security.Cryptography.IncrementalHash:AppendData(ubyte[]):this
        jmp      SHORT G_M28512_IG45
 						;; size=81 bbWeight=0.50 PerfScore 10.50
 G_M28512_IG44:
        xor      esi, esi
        xor      edx, edx
        mov      rdi, gword ptr [rbp-0xC8]
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Asn1.AsnWriter:PopSetOf(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
        call     [rax]System.Formats.Asn1.AsnWriter:PopSetOf(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
        mov      rdi, gword ptr [rbp-0xC8]
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
        call     [rax]System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
        mov      rsi, rax
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.IncrementalHash:AppendData(ubyte[]):this
        call     [rax]System.Security.Cryptography.IncrementalHash:AppendData(ubyte[]):this
 						;; size=60 bbWeight=0.50 PerfScore 6.38
 G_M28512_IG45:
        test     r13d, r13d
        jne      SHORT G_M28512_IG47
        mov      rax, r14
 						;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M28512_IG46:
        vzeroupper 
        add      rsp, 200
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=21 bbWeight=0.50 PerfScore 2.62
 G_M28512_IG47:
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.CryptographicException
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Cryptography_Cms_MissingAuthenticatedAttribute():System.String
        call     [rax]System.SR:get_Cryptography_Cms_MissingAuthenticatedAttribute():System.String
        mov      rsi, rax
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String):this
        call     [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String):this
        mov      rdi, r14
        call     CORINFO_HELP_THROW
        int3     
 						;; size=57 bbWeight=0 PerfScore 0.00
 G_M28512_IG48:
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.CryptographicException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Cryptography_BadHashValue():System.String
        call     [rax]System.SR:get_Cryptography_BadHashValue():System.String
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String):this
        call     [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=57 bbWeight=0 PerfScore 0.00
 G_M28512_IG49:
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS
        call     [rax]CORINFO_HELP_CHKCASTCLASS
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M28512_IG50:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M28512_IG51:
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.CryptographicException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Cryptography_BadHashValue():System.String
        call     [rax]System.SR:get_Cryptography_BadHashValue():System.String
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String):this
        call     [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=57 bbWeight=0 PerfScore 0.00
 G_M28512_IG52:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
        call     [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object)
        int3     
 						;; size=16 bbWeight=0 PerfScore 0.00
 G_M28512_IG53:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M28512_IG54:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M28512_IG55:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
        lea      rbp, [rbp+0xF0]
 						;; size=25 bbWeight=0 PerfScore 0.00
 G_M28512_IG56:
        mov      rbx, rsi
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.HashAlgorithmName
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Cryptography_UnknownHashAlgorithm():System.String
        call     [rax]System.SR:get_Cryptography_UnknownHashAlgorithm():System.String
        mov      r14, rax
        lea      rdi, bword ptr [r15+0x08]
        mov      rsi, gword ptr [rbp-0xD8]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.CryptographicException
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rsi, r15
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.SR:Format(System.String,System.Object):System.String
        call     [rax]System.SR:Format(System.String,System.Object):System.String
        mov      rsi, rax
        mov      rdi, r13
        mov      rdx, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String,System.Exception):this
        call     [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String,System.Exception):this
        mov      rdi, r13
        call     CORINFO_HELP_THROW
        int3     
 						;; size=118 bbWeight=0 PerfScore 0.00
 RWD00  	dq	002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E00390034h
 RWD32  	dq	002E003000340038h, 0035003300310031h, 0031002E00390034h, 0034002E0039002Eh
 
 
-; Total bytes of code 1801, prolog size 69, PerfScore 434.08, instruction count 434, allocated bytes for code 1801 (MethodHash=5b9d909f) for method System.Security.Cryptography.Pkcs.SignerInfo:PrepareDigest(ubyte):System.Security.Cryptography.IncrementalHash:this (FullOpts)
+; Total bytes of code 1839, prolog size 69, PerfScore 442.58, instruction count 440, allocated bytes for code 1839 (MethodHash=5b9d909f) for method System.Security.Cryptography.Pkcs.SignerInfo:PrepareDigest(ubyte):System.Security.Cryptography.IncrementalHash:this (FullOpts)

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

@MihuBot
Copy link
Owner Author

MihuBot commented Jul 12, 2024

Top method improvements

-33 (-2.79 % of base) - System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
 ; Assembly listing for method System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 20 single block inlinees; 18 inlinees without PGO data
+; 0 inlinees with PGO data; 18 single block inlinees; 20 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.String]>
-;  V01 arg1         [V01,T09] (  9, 26.50)     ref  ->  r14         class-hnd single-def <ubyte[]>
-;  V02 arg2         [V02,T13] ( 11, 17   )     ref  ->  [rbp-0x80]  class-hnd single-def <System.Text.Encoding>
+;  V01 arg1         [V01,T31] (  5,  6.50)     ref  ->  [rbp-0x80]  class-hnd single-def <ubyte[]>
+;  V02 arg2         [V02,T12] ( 11, 17   )     ref  ->  r12         class-hnd single-def <System.Text.Encoding>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
-;  V04 arg4         [V04,T59] (  4,  2   )   byref  ->  [rbp+0x10]  single-def
-;  V05 loc0         [V05,T14] (  8, 18   )     int  ->  [rbp-0x2C] 
+;  V04 arg4         [V04,T64] (  4,  2   )   byref  ->  [rbp+0x10]  single-def
+;  V05 loc0         [V05,T13] (  8, 18   )     int  ->  [rbp-0x2C] 
 ;  V06 loc1         [V06    ] (  3,  1.50)     int  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V07 loc2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[System.String]>
 ;  V08 loc3         [V08,T03] ( 10, 33   )     int  ->  [rbp-0x3C] 
 ;* V09 loc4         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
 ;* V10 loc5         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
-;  V11 loc6         [V11,T16] (  8, 17.50)     ref  ->  [rbp-0x88]  class-hnd <System.String>
-;* V12 loc7         [V12,T78] (  0,  0   )     int  ->  zero-ref   
-;  V13 loc8         [V13,T15] (  8, 18   )     int  ->  rax        
-;* V14 loc9         [V14,T79] (  0,  0   )     int  ->  zero-ref   
+;  V11 loc6         [V11,T15] (  8, 17.50)     ref  ->  [rbp-0x88]  class-hnd <System.String>
+;* V12 loc7         [V12,T83] (  0,  0   )     int  ->  zero-ref   
+;  V13 loc8         [V13,T14] (  8, 18   )     int  ->  rax        
+;* V14 loc9         [V14,T84] (  0,  0   )     int  ->  zero-ref   
 ;# V15 OutArgs      [V15    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V16 tmp1         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V17 tmp2         [V17    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V18 tmp3         [V18,T52] (  4,  4   )     int  ->  rsi         "Inlining Arg"
+;  V18 tmp3         [V18,T55] (  4,  4   )     int  ->  rsi         "Inlining Arg"
 ;* V19 tmp4         [V19    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V20 tmp5         [V20,T48] (  5,  5   )   byref  ->  r15         single-def "Inlining Arg"
-;  V21 tmp6         [V21,T33] (  8,  8   )     int  ->  rbx         "Inlining Arg"
-;  V22 tmp7         [V22,T53] (  4,  4   )     int  ->   r9         "Inlining Arg"
+;  V20 tmp5         [V20,T47] (  5,  5   )   byref  ->  r15         single-def "Inlining Arg"
+;  V21 tmp6         [V21,T32] (  8,  8   )     int  ->  rbx         "Inlining Arg"
+;  V22 tmp7         [V22,T56] (  4,  4   )     int  ->  r12         "Inlining Arg"
 ;* V23 tmp8         [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V24 tmp9         [V24,T60] (  2,  2   )   byref  ->  rdx         single-def "Inlining Arg"
-;  V25 tmp10        [V25,T63] (  2,  2   )     int  ->  rbx         "Inlining Arg"
+;  V24 tmp9         [V24,T65] (  2,  2   )   byref  ->  rdx         single-def "Inlining Arg"
+;  V25 tmp10        [V25,T68] (  2,  2   )     int  ->  rbx         "Inlining Arg"
 ;* V26 tmp11        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V27 tmp12        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V28 tmp13        [V28    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V29 tmp14        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V30 tmp15        [V30    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp16        [V31    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp17        [V32    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V33 tmp18        [V33,T05] (  4, 32   )     int  ->  rdi         "Inlining Arg"
 ;* V34 tmp19        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;  V35 tmp20        [V35,T04] (  4, 32   )   byref  ->  r15         "Inlining Arg"
 ;  V36 tmp21        [V36,T02] (  5, 36   )     int  ->  rbx         "Inlining Arg"
 ;* V37 tmp22        [V37    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V38 tmp23        [V38    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V39 tmp24        [V39    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V40 tmp25        [V40,T80] (  4,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Net.Http.QPack.QPackEncodingException>
+;  V40 tmp25        [V40,T85] (  4,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.Net.Http.QPack.QPackEncodingException>
 ;* V41 tmp26        [V41    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V42 tmp27        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V43 tmp28        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V44 tmp29        [V44,T37] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
-;  V45 tmp30        [V45,T44] (  2,  8   )     int  ->  rsi         "Inlining Arg"
-;  V46 tmp31        [V46,T35] (  3,  8   )     int  ->  rax         "Inline return value spill temp"
+;  V44 tmp29        [V44,T38] (  2,  8   )   byref  ->  rdi         "Inlining Arg"
+;  V45 tmp30        [V45,T43] (  2,  8   )     int  ->  rsi         "Inlining Arg"
+;  V46 tmp31        [V46,T34] (  3,  8   )     int  ->  rax         "Inline return value spill temp"
 ;* V47 tmp32        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp33        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V49 tmp34        [V49,T29] (  4, 12   )    long  ->  [rbp-0x48]  "Inline stloc first use temp"
-;  V50 tmp35        [V50,T49] (  3,  6   )     int  ->  [rbp-0x4C]  "Inline stloc first use temp"
+;  V50 tmp35        [V50,T48] (  3,  6   )     int  ->  [rbp-0x4C]  "Inline stloc first use temp"
 ;  V51 tmp36        [V51    ] (  2,  8   )   byref  ->  [rbp-0x58]  must-init pinned "Inline stloc first use temp"
 ;  V52 tmp37        [V52    ] (  2,  8   )   byref  ->  [rbp-0x60]  must-init pinned "Inline stloc first use temp"
 ;* V53 tmp38        [V53    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V54 tmp39        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V55 tmp40        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V56 tmp41        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V57 tmp42        [V57,T81] (  2,  0   )     ref  ->  r15         class-hnd exact "Inlining Arg" <System.String>
+;  V57 tmp42        [V57,T86] (  2,  0   )     ref  ->  r15         class-hnd exact "Inlining Arg" <System.String>
 ;  V58 tmp43        [V58,T06] (  4, 32   )     int  ->  rax         "Inlining Arg"
 ;* V59 tmp44        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V60 tmp45        [V60,T19] (  2, 16   )   byref  ->  r15         "Inlining Arg"
-;  V61 tmp46        [V61,T22] (  2, 16   )     int  ->  rbx         "Inlining Arg"
+;  V60 tmp45        [V60,T18] (  2, 16   )   byref  ->  r15         "Inlining Arg"
+;  V61 tmp46        [V61,T21] (  2, 16   )     int  ->  rbx         "Inlining Arg"
 ;* V62 tmp47        [V62    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V63 tmp48        [V63,T51] (  4,  4   )     ref  ->   r8         class-hnd single-def "Inlining Arg" <System.String>
+;  V63 tmp48        [V63,T54] (  4,  4   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.String>
 ;* V64 tmp49        [V64    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V65 tmp50        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V66 tmp51        [V66,T61] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V67 tmp52        [V67,T64] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;  V66 tmp51        [V66,T66] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V67 tmp52        [V67,T69] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V68 tmp53        [V68    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V69 tmp54        [V69,T62] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
-;  V70 tmp55        [V70,T65] (  2,  2   )     int  ->  rbx         "Inlining Arg"
+;  V69 tmp54        [V69,T67] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
+;  V70 tmp55        [V70,T70] (  2,  2   )     int  ->  rbx         "Inlining Arg"
 ;* V71 tmp56        [V71    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V72 tmp57        [V72    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V73 tmp58        [V73    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V74 tmp59        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V75 tmp60        [V75    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V76 tmp61        [V76    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V77 tmp62        [V77    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V78 tmp63        [V78,T07] (  4, 32   )     int  ->  rcx         "Inlining Arg"
 ;* V79 tmp64        [V79    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V80 tmp65        [V80,T20] (  2, 16   )   byref  ->   r8         "Inlining Arg"
+;  V80 tmp65        [V80,T19] (  2, 16   )   byref  ->   r8         "Inlining Arg"
 ;  V81 tmp66        [V81,T08] (  3, 24   )     int  ->  rsi         "Inlining Arg"
 ;* V82 tmp67        [V82    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V83 tmp68        [V83,T11] (  4, 24   )     ref  ->  rcx         class-hnd "Inlining Arg" <System.String>
+;  V83 tmp68        [V83,T10] (  4, 24   )     ref  ->  rcx         class-hnd "Inlining Arg" <System.String>
 ;* V84 tmp69        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp70        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V86 tmp71        [V86,T38] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
-;  V87 tmp72        [V87,T45] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V86 tmp71        [V86,T39] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
+;  V87 tmp72        [V87,T44] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V88 tmp73        [V88    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V89 tmp74        [V89,T21] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
-;  V90 tmp75        [V90,T23] (  2, 16   )     int  ->  rbx         "Inlining Arg"
-;  V91 tmp76        [V91,T12] (  8, 18.50)   byref  ->  r12         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V92 tmp77        [V92,T10] ( 12, 21   )     int  ->  r13         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V93 tmp78        [V93,T01] ( 17, 40.50)   byref  ->  r15         "field V03._reference (fldOffset=0x0)" P-INDEP
-;  V94 tmp79        [V94,T00] ( 20, 49   )     int  ->  rbx         "field V03._length (fldOffset=0x8)" P-INDEP
-;* V95 tmp80        [V95,T68] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V96 tmp81        [V96,T72] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;  V89 tmp74        [V89,T20] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
+;  V90 tmp75        [V90,T22] (  2, 16   )     int  ->  rbx         "Inlining Arg"
+;  V91 tmp76        [V91,T11] (  8, 18.50)   byref  ->  r13         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V92 tmp77        [V92,T09] ( 12, 21   )     int  ->  r14         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V93 tmp78        [V93,T01] ( 17, 36.50)   byref  ->  r15         "field V03._reference (fldOffset=0x0)" P-INDEP
+;  V94 tmp79        [V94,T00] ( 20, 45   )     int  ->  rbx         "field V03._length (fldOffset=0x8)" P-INDEP
+;* V95 tmp80        [V95,T73] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V96 tmp81        [V96,T77] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V97 tmp82        [V97    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V98 tmp83        [V98    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
 ;* V99 tmp84        [V99    ] (  0,  0   )   byref  ->  zero-ref    "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V100 tmp85       [V100    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
-;* V101 tmp86       [V101,T77] (  0,  0   )   byref  ->  zero-ref    single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;  V102 tmp87       [V102,T73] (  2,  1   )     int  ->  rsi         "field V19._length (fldOffset=0x8)" P-INDEP
-;  V103 tmp88       [V103,T69] (  2,  1   )   byref  ->  r15         single-def "field V23._reference (fldOffset=0x0)" P-INDEP
-;  V104 tmp89       [V104,T74] (  2,  1   )     int  ->  rbx         "field V23._length (fldOffset=0x8)" P-INDEP
-;  V105 tmp90       [V105,T39] (  2,  8   )   byref  ->  rsi         "field V26._reference (fldOffset=0x0)" P-INDEP
-;  V106 tmp91       [V106,T30] (  3, 12   )     int  ->  rdx         "field V26._length (fldOffset=0x8)" P-INDEP
+;* V101 tmp86       [V101,T82] (  0,  0   )   byref  ->  zero-ref    single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V102 tmp87       [V102,T78] (  2,  1   )     int  ->  rsi         "field V19._length (fldOffset=0x8)" P-INDEP
+;  V103 tmp88       [V103,T74] (  2,  1   )   byref  ->  r15         single-def "field V23._reference (fldOffset=0x0)" P-INDEP
+;  V104 tmp89       [V104,T79] (  2,  1   )     int  ->  rbx         "field V23._length (fldOffset=0x8)" P-INDEP
+;  V105 tmp90       [V105,T49] (  2,  6   )   byref  ->  rsi         "field V26._reference (fldOffset=0x0)" P-INDEP
+;  V106 tmp91       [V106,T35] (  3,  8   )     int  ->   r8         "field V26._length (fldOffset=0x8)" P-INDEP
 ;* V107 tmp92       [V107    ] (  0,  0   )   byref  ->  zero-ref    "field V27._reference (fldOffset=0x0)" P-INDEP
 ;* V108 tmp93       [V108    ] (  0,  0   )     int  ->  zero-ref    "field V27._length (fldOffset=0x8)" P-INDEP
-;* V109 tmp94       [V109    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
-;* V110 tmp95       [V110    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
+;  V109 tmp94       [V109,T50] (  2,  6   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
+;  V110 tmp95       [V110,T59] (  2,  4   )     int  ->  rdx         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V111 tmp96       [V111    ] (  0,  0   )   byref  ->  zero-ref    "field V29._reference (fldOffset=0x0)" P-INDEP
 ;* V112 tmp97       [V112    ] (  0,  0   )     int  ->  zero-ref    "field V29._length (fldOffset=0x8)" P-INDEP
 ;* V113 tmp98       [V113    ] (  0,  0   )   byref  ->  zero-ref    "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V114 tmp99       [V114    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V115 tmp100      [V115    ] (  0,  0   )   byref  ->  zero-ref    "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V116 tmp101      [V116    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp102      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V39._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp103      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
 ;  V119 tmp104      [V119,T28] (  4, 12   )   byref  ->  rdi         "field V41._reference (fldOffset=0x0)" P-INDEP
-;  V120 tmp105      [V120,T32] (  4, 10   )     int  ->  rsi         "field V41._length (fldOffset=0x8)" P-INDEP
-;  V121 tmp106      [V121,T54] (  2,  4   )   byref  ->  rdi         "field V42._reference (fldOffset=0x0)" P-INDEP
-;  V122 tmp107      [V122,T56] (  2,  4   )     int  ->  rsi         "field V42._length (fldOffset=0x8)" P-INDEP
+;  V120 tmp105      [V120,T30] (  4, 10   )     int  ->  rsi         "field V41._length (fldOffset=0x8)" P-INDEP
+;  V121 tmp106      [V121,T57] (  2,  4   )   byref  ->  rdi         "field V42._reference (fldOffset=0x0)" P-INDEP
+;  V122 tmp107      [V122,T60] (  2,  4   )     int  ->  rsi         "field V42._length (fldOffset=0x8)" P-INDEP
 ;* V123 tmp108      [V123    ] (  0,  0   )   byref  ->  zero-ref    "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V124 tmp109      [V124    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V125 tmp110      [V125    ] (  0,  0   )   byref  ->  zero-ref    "field V47._reference (fldOffset=0x0)" P-INDEP
 ;* V126 tmp111      [V126    ] (  0,  0   )     int  ->  zero-ref    "field V47._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp112      [V127    ] (  0,  0   )   byref  ->  zero-ref    "field V48._reference (fldOffset=0x0)" P-INDEP
 ;* V128 tmp113      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V129 tmp114      [V129    ] (  0,  0   )   byref  ->  zero-ref    "field V55._reference (fldOffset=0x0)" P-INDEP
 ;* V130 tmp115      [V130    ] (  0,  0   )     int  ->  zero-ref    "field V55._length (fldOffset=0x8)" P-INDEP
 ;* V131 tmp116      [V131    ] (  0,  0   )   byref  ->  zero-ref    "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V132 tmp117      [V132    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
 ;  V133 tmp118      [V133,T40] (  2,  8   )   byref  ->  r15         "field V59._reference (fldOffset=0x0)" P-INDEP
-;  V134 tmp119      [V134,T46] (  2,  8   )     int  ->  rbx         "field V59._length (fldOffset=0x8)" P-INDEP
-;  V135 tmp120      [V135,T66] (  3,  1.50)   byref  ->  rsi         "field V62._reference (fldOffset=0x0)" P-INDEP
-;  V136 tmp121      [V136,T67] (  3,  1.50)     int  ->  rdx         "field V62._length (fldOffset=0x8)" P-INDEP
-;  V137 tmp122      [V137,T70] (  2,  1   )   byref  ->  rsi         single-def "field V64._reference (fldOffset=0x0)" P-INDEP
-;  V138 tmp123      [V138,T75] (  2,  1   )     int  ->  rdx         "field V64._length (fldOffset=0x8)" P-INDEP
+;  V134 tmp119      [V134,T45] (  2,  8   )     int  ->  rbx         "field V59._length (fldOffset=0x8)" P-INDEP
+;  V135 tmp120      [V135,T71] (  3,  1.50)   byref  ->  rsi         "field V62._reference (fldOffset=0x0)" P-INDEP
+;  V136 tmp121      [V136,T72] (  3,  1.50)     int  ->  rdx         "field V62._length (fldOffset=0x8)" P-INDEP
+;  V137 tmp122      [V137,T75] (  2,  1   )   byref  ->  rsi         single-def "field V64._reference (fldOffset=0x0)" P-INDEP
+;  V138 tmp123      [V138,T80] (  2,  1   )     int  ->  rdx         "field V64._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp124      [V139    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp125      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
-;  V141 tmp126      [V141,T71] (  2,  1   )   byref  ->  r15         single-def "field V68._reference (fldOffset=0x0)" P-INDEP
-;  V142 tmp127      [V142,T76] (  2,  1   )     int  ->  rbx         "field V68._length (fldOffset=0x8)" P-INDEP
-;  V143 tmp128      [V143,T41] (  2,  8   )   byref  ->  rsi         "field V71._reference (fldOffset=0x0)" P-INDEP
-;  V144 tmp129      [V144,T31] (  3, 12   )     int  ->  rdx         "field V71._length (fldOffset=0x8)" P-INDEP
+;  V141 tmp126      [V141,T76] (  2,  1   )   byref  ->  r15         single-def "field V68._reference (fldOffset=0x0)" P-INDEP
+;  V142 tmp127      [V142,T81] (  2,  1   )     int  ->  rbx         "field V68._length (fldOffset=0x8)" P-INDEP
+;  V143 tmp128      [V143,T51] (  2,  6   )   byref  ->  rsi         "field V71._reference (fldOffset=0x0)" P-INDEP
+;  V144 tmp129      [V144,T36] (  3,  8   )     int  ->  rax         "field V71._length (fldOffset=0x8)" P-INDEP
 ;* V145 tmp130      [V145    ] (  0,  0   )   byref  ->  zero-ref    "field V72._reference (fldOffset=0x0)" P-INDEP
 ;* V146 tmp131      [V146    ] (  0,  0   )     int  ->  zero-ref    "field V72._length (fldOffset=0x8)" P-INDEP
-;* V147 tmp132      [V147    ] (  0,  0   )   byref  ->  zero-ref    "field V73._reference (fldOffset=0x0)" P-INDEP
-;* V148 tmp133      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
+;  V147 tmp132      [V147,T52] (  2,  6   )   byref  ->  rdi         "field V73._reference (fldOffset=0x0)" P-INDEP
+;  V148 tmp133      [V148,T61] (  2,  4   )     int  ->  rdx         "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp134      [V149    ] (  0,  0   )   byref  ->  zero-ref    "field V74._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp135      [V150    ] (  0,  0   )     int  ->  zero-ref    "field V74._length (fldOffset=0x8)" P-INDEP
-;  V151 tmp136      [V151,T42] (  2,  8   )   byref  ->  r15         "field V79._reference (fldOffset=0x0)" P-INDEP
-;* V152 tmp137      [V152,T58] (  0,  0   )     int  ->  zero-ref    "field V79._length (fldOffset=0x8)" P-INDEP
-;  V153 tmp138      [V153,T34] (  3,  8   )   byref  ->  rdx         "field V82._reference (fldOffset=0x0)" P-INDEP
-;  V154 tmp139      [V154,T36] (  3,  8   )     int  ->  rdi         "field V82._length (fldOffset=0x8)" P-INDEP
-;  V155 tmp140      [V155,T55] (  2,  4   )   byref  ->  rdx         "field V84._reference (fldOffset=0x0)" P-INDEP
-;  V156 tmp141      [V156,T57] (  2,  4   )     int  ->  rdi         "field V84._length (fldOffset=0x8)" P-INDEP
+;  V151 tmp136      [V151,T41] (  2,  8   )   byref  ->  r15         "field V79._reference (fldOffset=0x0)" P-INDEP
+;* V152 tmp137      [V152,T63] (  0,  0   )     int  ->  zero-ref    "field V79._length (fldOffset=0x8)" P-INDEP
+;  V153 tmp138      [V153,T33] (  3,  8   )   byref  ->  rdx         "field V82._reference (fldOffset=0x0)" P-INDEP
+;  V154 tmp139      [V154,T37] (  3,  8   )     int  ->  rdi         "field V82._length (fldOffset=0x8)" P-INDEP
+;  V155 tmp140      [V155,T58] (  2,  4   )   byref  ->  rdx         "field V84._reference (fldOffset=0x0)" P-INDEP
+;  V156 tmp141      [V156,T62] (  2,  4   )     int  ->  rdi         "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V157 tmp142      [V157    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp143      [V158    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
-;  V159 tmp144      [V159,T43] (  2,  8   )   byref  ->  r15         "field V88._reference (fldOffset=0x0)" P-INDEP
-;  V160 tmp145      [V160,T47] (  2,  8   )     int  ->  rbx         "field V88._length (fldOffset=0x8)" P-INDEP
-;  V161 tmp146      [V161,T24] (  2, 16   )    long  ->  rdi         "Cast away GC"
-;  V162 tmp147      [V162,T25] (  2, 16   )    long  ->  rsi         "Cast away GC"
-;  V163 tmp148      [V163,T26] (  2, 16   )    long  ->  rdi         "argument with side effect"
-;  V164 tmp149      [V164,T27] (  2, 16   )    long  ->  rsi         "argument with side effect"
-;  V165 cse0        [V165,T50] (  3,  5   )    long  ->  [rbp-0x68]  spill-single-def "CSE #08: conservative"
-;  V166 rat0        [V166,T17] (  5, 16.50)    long  ->  [rbp-0x70]  "Widened IV V14"
-;  V167 rat1        [V167,T18] (  5, 16.50)    long  ->  [rbp-0x78]  "Widened IV V12"
+;  V159 tmp144      [V159,T42] (  2,  8   )   byref  ->  r15         "field V88._reference (fldOffset=0x0)" P-INDEP
+;  V160 tmp145      [V160,T46] (  2,  8   )     int  ->  rbx         "field V88._length (fldOffset=0x8)" P-INDEP
+;  V161 tmp146      [V161,T23] (  2, 16   )    long  ->  rdi         "Cast away GC"
+;  V162 tmp147      [V162,T24] (  2, 16   )    long  ->  rsi         "Cast away GC"
+;  V163 tmp148      [V163,T25] (  2, 16   )    long  ->  rdi         "argument with side effect"
+;  V164 tmp149      [V164,T26] (  2, 16   )    long  ->  rsi         "argument with side effect"
+;  V165 cse0        [V165,T53] (  3,  5   )    long  ->  [rbp-0x68]  spill-single-def "CSE #08: conservative"
+;  V166 cse1        [V166,T27] (  6, 13   )     int  ->  [rbp-0x6C]  spill-single-def "CSE #01: moderate"
+;  V167 rat0        [V167,T16] (  5, 16.50)    long  ->  [rbp-0x78]  "Widened IV V14"
+;  V168 rat1        [V168,T17] (  5, 16.50)    long  ->  r12         "Widened IV V12"
 ;
 ; Lcl frame size = 104
 
 G_M6373_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 104
        lea      rbp, [rsp+0x90]
        xor      eax, eax
        mov      qword ptr [rbp-0x58], rax
        mov      qword ptr [rbp-0x60], rax
-       mov      r12, rdi
-       mov      r13d, esi
-       mov      r14, rdx
-       mov      rax, rcx
+       mov      r13, rdi
+       mov      r14d, esi
+       mov      rax, rdx
+       mov      r12, rcx
        mov      r15, r8
        mov      ebx, r9d
        mov      r9, bword ptr [rbp+0x10]
 						;; size=54 bbWeight=1 PerfScore 11.50
 G_M6373_IG02:
-       cmp      r13d, 1
+       cmp      r14d, 1
        jne      SHORT G_M6373_IG05
 						;; size=6 bbWeight=1 PerfScore 1.25
 G_M6373_IG03:
        mov      rdx, r15
        mov      ecx, ebx
-       mov      rdi, gword ptr [r12]
-       mov      rsi, rax
+       mov      rdi, gword ptr [r13]
+       mov      rsi, r12
        mov      r8, r9
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
        call     [rax]System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
        nop      
 						;; size=28 bbWeight=0.50 PerfScore 3.25
 G_M6373_IG04:
        add      rsp, 104
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M6373_IG05:
-       test     r13d, r13d
+       test     r14d, r14d
        jne      SHORT G_M6373_IG07
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r9
        mov      rdi, 0xD1FFAB1E      ; ''
        xor      rsi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
        call     [rax]System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
        nop      
 						;; size=38 bbWeight=0.50 PerfScore 3.00
 G_M6373_IG06:
        add      rsp, 104
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M6373_IG07:
        test     ebx, ebx
-       jle      G_M6373_IG23
-       lea      esi, [r13-0x01]
-       imul     esi, dword ptr [r14+0x08]
-       test     rax, rax
+       jle      G_M6373_IG22
+       mov      gword ptr [rbp-0x80], rax
+       mov      ecx, dword ptr [rax+0x08]
+       mov      dword ptr [rbp-0x6C], ecx
+       lea      esi, [r14-0x01]
+       imul     esi, ecx
+       test     r12, r12
        je       SHORT G_M6373_IG09
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       G_M6373_IG46
-						;; size=41 bbWeight=0.50 PerfScore 6.12
+       je       G_M6373_IG47
+						;; size=49 bbWeight=0.50 PerfScore 6.62
 G_M6373_IG08:
        mov      rdi, 0xD1FFAB1E      ; data for System.Text.Latin1Encoding:s_default
-       cmp      rax, gword ptr [rdi]
+       cmp      r12, gword ptr [rdi]
        jne      SHORT G_M6373_IG13
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M6373_IG09:
        xor      edi, edi
-       test     r13d, r13d
+       test     r14d, r14d
        jle      SHORT G_M6373_IG12
-       align    [5 bytes for IG10]
-						;; size=12 bbWeight=0.50 PerfScore 0.88
+       align    [0 bytes for IG10]
+						;; size=7 bbWeight=0.50 PerfScore 0.75
 G_M6373_IG10:
-       mov      ecx, edi
-       mov      rcx, gword ptr [r12+8*rcx]
-       add      esi, dword ptr [rcx+0x08]
+       mov      edx, edi
+       mov      rdx, gword ptr [r13+8*rdx]
+       add      esi, dword ptr [rdx+0x08]
        mov      dword ptr [rbp-0x2C], esi
        inc      edi
-       cmp      edi, r13d
+       cmp      edi, r14d
        mov      esi, dword ptr [rbp-0x2C]
        jl       SHORT G_M6373_IG10
-						;; size=22 bbWeight=4 PerfScore 35.00
+						;; size=23 bbWeight=4 PerfScore 35.00
 G_M6373_IG11:
-       mov      gword ptr [rbp-0x80], rax
        mov      bword ptr [rbp+0x10], r9
        jmp      SHORT G_M6373_IG17
-						;; size=10 bbWeight=2 PerfScore 8.00
+						;; size=6 bbWeight=2 PerfScore 6.00
 G_M6373_IG12:
-       mov      gword ptr [rbp-0x80], rax
        mov      bword ptr [rbp+0x10], r9
        jmp      SHORT G_M6373_IG17
-						;; size=10 bbWeight=0.25 PerfScore 1.00
+						;; size=6 bbWeight=0.25 PerfScore 0.75
 G_M6373_IG13:
        xor      edi, edi
-       xor      ecx, ecx
-       test     r13d, r13d
+       xor      edx, edx
+       test     r14d, r14d
        mov      bword ptr [rbp+0x10], r9
-       jle      SHORT G_M6373_IG20
+       jle      SHORT G_M6373_IG17
 						;; size=13 bbWeight=0.50 PerfScore 1.38
 G_M6373_IG14:
        mov      dword ptr [rbp-0x2C], esi
 						;; size=3 bbWeight=0.25 PerfScore 0.25
 G_M6373_IG15:
-       mov      dword ptr [rbp-0x3C], ecx
-       mov      edi, ecx
-       mov      rsi, gword ptr [r12+8*rdi]
-       mov      rdi, rax
-       mov      gword ptr [rbp-0x80], rax
-       mov      rdx, qword ptr [rax]
-       mov      rdx, qword ptr [rdx+0x50]
-       call     [rdx+0x18]System.Text.Encoding:GetByteCount(System.String):int:this
+       mov      dword ptr [rbp-0x3C], edx
+       mov      edi, edx
+       mov      rsi, gword ptr [r13+8*rdi]
+       mov      rdi, r12
+       mov      r8, qword ptr [r12]
+       mov      r8, qword ptr [r8+0x50]
+       call     [r8+0x18]System.Text.Encoding:GetByteCount(System.String):int:this
        mov      esi, eax
        add      esi, dword ptr [rbp-0x2C]
        mov      eax, esi
        mov      edx, dword ptr [rbp-0x3C]
        inc      edx
-       cmp      edx, r13d
-       mov      ecx, edx
+       cmp      edx, r14d
        jl       SHORT G_M6373_IG19
-						;; size=45 bbWeight=4 PerfScore 67.00
+						;; size=42 bbWeight=4 PerfScore 62.00
 G_M6373_IG16:
        mov      esi, eax
 						;; size=2 bbWeight=2 PerfScore 0.50
 G_M6373_IG17:
        mov      byte  ptr [r15], 0
        mov      rdx, r15
        mov      ecx, ebx
        lea      r8, [rbp-0x38]
        mov      dword ptr [rbp-0x2C], esi
        mov      edi, esi
        mov      esi, 7
        mov      r10, 0xD1FFAB1E      ; code for System.Net.Http.HPack.IntegerEncoder:Encode(int,int,System.Span`1[ubyte],byref):ubyte
        call     [r10]System.Net.Http.HPack.IntegerEncoder:Encode(int,int,System.Span`1[ubyte],byref):ubyte
        test     eax, eax
        je       SHORT G_M6373_IG18
        mov      esi, dword ptr [rbp-0x38]
        cmp      esi, ebx
-       jbe      SHORT G_M6373_IG21
-       jmp      G_M6373_IG49
+       jbe      SHORT G_M6373_IG20
+       jmp      G_M6373_IG50
 						;; size=52 bbWeight=0.50 PerfScore 6.12
 G_M6373_IG18:
        mov      r9, bword ptr [rbp+0x10]
-       jmp      SHORT G_M6373_IG23
+       jmp      SHORT G_M6373_IG22
 						;; size=6 bbWeight=0.25 PerfScore 0.75
 G_M6373_IG19:
        mov      dword ptr [rbp-0x2C], eax
-       mov      rax, gword ptr [rbp-0x80]
        jmp      SHORT G_M6373_IG15
-						;; size=9 bbWeight=2 PerfScore 8.00
+						;; size=5 bbWeight=2 PerfScore 6.00
 G_M6373_IG20:
-       mov      gword ptr [rbp-0x80], rax
-       jmp      SHORT G_M6373_IG17
-						;; size=6 bbWeight=0.25 PerfScore 0.75
-G_M6373_IG21:
        mov      eax, esi
        add      r15, rax
        sub      ebx, esi
        mov      esi, ebx
        mov      eax, dword ptr [rbp-0x2C]
        cmp      esi, eax
-       jl       SHORT G_M6373_IG22
-       cmp      gword ptr [rbp-0x80], 0
-       jne      SHORT G_M6373_IG25
-       mov      r8, gword ptr [r12]
+       jl       SHORT G_M6373_IG21
+       test     r12, r12
+       jne      SHORT G_M6373_IG24
+       mov      r12, gword ptr [r13]
        mov      rsi, r15
        mov      edx, ebx
-       mov      gword ptr [rbp-0x88], r8
-       mov      rdi, r8
+       mov      rdi, r12
        mov      rcx, 0xD1FFAB1E      ; code for System.Net.Http.QPack.QPackEncoder:EncodeValueStringPart(System.String,System.Span`1[ubyte])
        call     [rcx]System.Net.Http.QPack.QPackEncoder:EncodeValueStringPart(System.String,System.Span`1[ubyte])
-       mov      r9, gword ptr [rbp-0x88]
-       mov      r9d, dword ptr [r9+0x08]
-       cmp      r9d, ebx
+       mov      r12d, dword ptr [r12+0x08]
+       cmp      r12d, ebx
        jbe      G_M6373_IG32
-       jmp      G_M6373_IG49
-						;; size=79 bbWeight=0.50 PerfScore 9.75
-G_M6373_IG22:
+       jmp      G_M6373_IG50
+						;; size=64 bbWeight=0.50 PerfScore 7.88
+G_M6373_IG21:
        mov      r9, bword ptr [rbp+0x10]
 						;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M6373_IG23:
+G_M6373_IG22:
        xor      eax, eax
        mov      dword ptr [r9], eax
 						;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M6373_IG24:
+G_M6373_IG23:
        add      rsp, 104
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M6373_IG25:
-       mov      r8, gword ptr [r12]
-       test     r8, r8
-       jne      SHORT G_M6373_IG26
+G_M6373_IG24:
+       mov      rcx, gword ptr [r13]
+       test     rcx, rcx
+       jne      SHORT G_M6373_IG25
        xor      rsi, rsi
        xor      edx, edx
-       jmp      SHORT G_M6373_IG27
+       jmp      SHORT G_M6373_IG26
 						;; size=15 bbWeight=0.50 PerfScore 2.88
+G_M6373_IG25:
+       lea      rsi, bword ptr [rcx+0x0C]
+       mov      edx, dword ptr [rcx+0x08]
+						;; size=7 bbWeight=0.50 PerfScore 1.25
 G_M6373_IG26:
-       lea      rsi, bword ptr [r8+0x0C]
-       mov      edx, dword ptr [r8+0x08]
-						;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M6373_IG27:
        mov      rcx, r15
        mov      r8d, ebx
-       mov      rdi, gword ptr [rbp-0x80]
-       mov      gword ptr [rbp-0x80], rdi
-       mov      r10, qword ptr [rdi]
+       mov      rdi, r12
+       mov      r10, qword ptr [r12]
        mov      r10, qword ptr [r10+0x58]
        mov      qword ptr [rbp-0x68], r10
        call     [r10+0x28]System.Text.Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
        cmp      eax, ebx
-       ja       G_M6373_IG49
+       ja       G_M6373_IG50
        mov      edx, eax
        add      r15, rdx
        sub      ebx, eax
-       mov      qword ptr [rbp-0x70], 1
-       cmp      r13d, 1
-       jle      G_M6373_IG44
-						;; size=62 bbWeight=0.50 PerfScore 7.38
-G_M6373_IG28:
-       lea      rsi, bword ptr [r14+0x10]
-       mov      edx, dword ptr [r14+0x08]
-       cmp      edx, ebx
-       ja       G_M6373_IG47
+       mov      qword ptr [rbp-0x78], 1
+       cmp      r14d, 1
+       jle      G_M6373_IG45
+						;; size=58 bbWeight=0.50 PerfScore 6.50
+G_M6373_IG27:
        mov      rdi, r15
+       mov      edx, ebx
+       mov      r8, gword ptr [rbp-0x80]
+       lea      rsi, bword ptr [r8+0x10]
+       mov      r9d, dword ptr [rbp-0x6C]
+       mov      eax, r9d
+       cmp      eax, edx
+       ja       G_M6373_IG48
+						;; size=28 bbWeight=2 PerfScore 9.00
+G_M6373_IG28:
+       mov      edx, eax
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       mov      ecx, dword ptr [r14+0x08]
+       mov      eax, dword ptr [rbp-0x6C]
+       mov      ecx, eax
        cmp      ecx, ebx
-       ja       G_M6373_IG49
+       ja       G_M6373_IG50
        mov      r8d, ecx
        add      r8, r15
        mov      esi, ebx
        sub      esi, ecx
        mov      r15, r8
        mov      ebx, esi
-       mov      rax, qword ptr [rbp-0x70]
-       mov      rcx, gword ptr [r12+8*rax]
+       mov      r9, qword ptr [rbp-0x78]
+       mov      rcx, gword ptr [r13+8*r9]
        test     rcx, rcx
        jne      SHORT G_M6373_IG30
-						;; size=71 bbWeight=4 PerfScore 65.00
+						;; size=56 bbWeight=4 PerfScore 47.00
 G_M6373_IG29:
        xor      rdx, rdx
        xor      edi, edi
        jmp      SHORT G_M6373_IG31
 						;; size=6 bbWeight=2 PerfScore 5.00
 G_M6373_IG30:
        lea      rdx, bword ptr [rcx+0x0C]
        mov      edi, dword ptr [rcx+0x08]
 						;; size=7 bbWeight=2 PerfScore 5.00
 G_M6373_IG31:
        mov      rcx, r15
        mov      r8d, esi
        mov      rsi, rdx
        mov      edx, edi
-       mov      rdi, gword ptr [rbp-0x80]
-       mov      r9, qword ptr [rbp-0x68]
-       call     [r9+0x28]System.Text.Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
+       mov      rdi, r12
+       mov      r10, qword ptr [rbp-0x68]
+       call     [r10+0x28]System.Text.Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
        cmp      eax, ebx
-       ja       G_M6373_IG49
+       ja       G_M6373_IG50
        mov      edx, eax
        add      rdx, r15
        sub      ebx, eax
        mov      r15, rdx
-       mov      rdx, qword ptr [rbp-0x70]
+       mov      rdx, qword ptr [rbp-0x78]
        inc      edx
-       cmp      edx, r13d
-       mov      qword ptr [rbp-0x70], rdx
-       jl       G_M6373_IG28
-       jmp      G_M6373_IG44
-						;; size=65 bbWeight=4 PerfScore 55.00
+       cmp      edx, r14d
+       mov      qword ptr [rbp-0x78], rdx
+       jl       G_M6373_IG27
+       jmp      G_M6373_IG45
+						;; size=64 bbWeight=4 PerfScore 52.00
 G_M6373_IG32:
-       mov      edx, r9d
+       mov      edx, r12d
        add      rdx, r15
-       sub      ebx, r9d
+       sub      ebx, r12d
        mov      r15, rdx
-       mov      qword ptr [rbp-0x78], 1
-       cmp      r13d, 1
-       jle      G_M6373_IG44
-						;; size=30 bbWeight=0.50 PerfScore 1.62
+       mov      r12d, 1
+       cmp      r14d, 1
+       jle      G_M6373_IG45
+						;; size=28 bbWeight=0.50 PerfScore 1.25
 G_M6373_IG33:
-       lea      rsi, bword ptr [r14+0x10]
-       mov      edx, dword ptr [r14+0x08]
-       cmp      edx, ebx
-       ja       G_M6373_IG47
        mov      rdi, r15
-       mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
-       call     [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
-       mov      edi, dword ptr [r14+0x08]
+       mov      edx, ebx
+       mov      rax, gword ptr [rbp-0x80]
+       lea      rsi, bword ptr [rax+0x10]
+       mov      ecx, dword ptr [rbp-0x6C]
+       mov      r8d, ecx
+       cmp      r8d, edx
+       ja       G_M6373_IG48
+						;; size=28 bbWeight=2 PerfScore 9.00
+G_M6373_IG34:
+       mov      edx, r8d
+       mov      r8, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [r8]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      eax, dword ptr [rbp-0x6C]
+       mov      edi, eax
        cmp      edi, ebx
-       ja       G_M6373_IG49
-       mov      eax, edi
-       add      r15, rax
+       ja       G_M6373_IG50
+       mov      ecx, edi
+       add      r15, rcx
        sub      ebx, edi
-       mov      rax, qword ptr [rbp-0x78]
-       mov      r9, gword ptr [r12+8*rax]
-       mov      rcx, r9
+       mov      rdi, gword ptr [r13+8*r12]
+       mov      rcx, rdi
        test     rcx, rcx
-       jne      SHORT G_M6373_IG35
-						;; size=66 bbWeight=4 PerfScore 63.00
-G_M6373_IG34:
+       jne      SHORT G_M6373_IG36
+						;; size=49 bbWeight=4 PerfScore 41.00
+G_M6373_IG35:
        xor      rdi, rdi
        xor      esi, esi
-       jmp      SHORT G_M6373_IG36
+       jmp      SHORT G_M6373_IG37
 						;; size=6 bbWeight=2 PerfScore 5.00
-G_M6373_IG35:
+G_M6373_IG36:
        lea      rdi, bword ptr [rcx+0x0C]
        mov      gword ptr [rbp-0x88], rcx
        mov      esi, dword ptr [rcx+0x08]
        mov      rcx, gword ptr [rbp-0x88]
 						;; size=21 bbWeight=2 PerfScore 9.00
-G_M6373_IG36:
+G_M6373_IG37:
        cmp      esi, ebx
-       jg       SHORT G_M6373_IG38
+       jg       SHORT G_M6373_IG39
 						;; size=4 bbWeight=4 PerfScore 5.00
-G_M6373_IG37:
+G_M6373_IG38:
        mov      r8d, esi
        xor      r9d, r9d
        mov      gword ptr [rbp-0x88], rcx
        mov      dword ptr [rbp-0x4C], r9d
-       jmp      SHORT G_M6373_IG39
+       jmp      SHORT G_M6373_IG40
 						;; size=19 bbWeight=2 PerfScore 9.00
-G_M6373_IG38:
+G_M6373_IG39:
        mov      r8d, ebx
        mov      dword ptr [rbp-0x4C], 1
        mov      gword ptr [rbp-0x88], rcx
 						;; size=17 bbWeight=2 PerfScore 4.50
-G_M6373_IG39:
+G_M6373_IG40:
        mov      bword ptr [rbp-0x58], rdi
        mov      bword ptr [rbp-0x60], r15
        mov      rsi, r15
        mov      qword ptr [rbp-0x48], r8
        mov      rdx, r8
        mov      r10, 0xD1FFAB1E      ; code for System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong
        call     [r10]System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong
        cmp      rax, qword ptr [rbp-0x48]
-       je       SHORT G_M6373_IG41
+       je       SHORT G_M6373_IG42
 						;; size=37 bbWeight=4 PerfScore 39.00
-G_M6373_IG40:
+G_M6373_IG41:
        mov      eax, 3
-       jmp      SHORT G_M6373_IG42
+       jmp      SHORT G_M6373_IG43
 						;; size=7 bbWeight=2 PerfScore 4.50
-G_M6373_IG41:
+G_M6373_IG42:
        mov      eax, dword ptr [rbp-0x4C]
 						;; size=3 bbWeight=2 PerfScore 2.00
-G_M6373_IG42:
+G_M6373_IG43:
        xor      rdi, rdi
        mov      bword ptr [rbp-0x58], rdi
 						;; size=6 bbWeight=4 PerfScore 5.00
-G_M6373_IG43:
+G_M6373_IG44:
        mov      bword ptr [rbp-0x60], rdi
        cmp      eax, 3
-       je       G_M6373_IG48
+       je       SHORT G_M6373_IG49
        mov      rax, gword ptr [rbp-0x88]
        mov      eax, dword ptr [rax+0x08]
        cmp      eax, ebx
-       ja       G_M6373_IG49
+       ja       G_M6373_IG50
        mov      edi, eax
        add      r15, rdi
        sub      ebx, eax
-       mov      rax, qword ptr [rbp-0x78]
-       inc      eax
-       cmp      eax, r13d
-       mov      qword ptr [rbp-0x78], rax
+       inc      r12d
+       cmp      r12d, r14d
        jl       G_M6373_IG33
-						;; size=57 bbWeight=4 PerfScore 43.00
-G_M6373_IG44:
-       mov      ebx, dword ptr [rbp-0x2C]
-       mov      eax, ebx
+						;; size=46 bbWeight=4 PerfScore 35.00
+G_M6373_IG45:
+       mov      r12d, dword ptr [rbp-0x2C]
+       mov      eax, r12d
        add      eax, dword ptr [rbp-0x38]
        mov      rbx, bword ptr [rbp+0x10]
        mov      dword ptr [rbx], eax
        mov      eax, 1
-						;; size=19 bbWeight=0.50 PerfScore 2.75
-G_M6373_IG45:
+						;; size=21 bbWeight=0.50 PerfScore 2.75
+G_M6373_IG46:
        add      rsp, 104
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M6373_IG46:
-       mov      gword ptr [rbp-0x80], rax
+G_M6373_IG47:
        mov      dword ptr [rbp-0x2C], esi
        mov      bword ptr [rbp+0x10], r9
        mov      rdi, 0xD1FFAB1E      ; System.Text.Latin1Encoding
        call     CORINFO_HELP_GET_GCSTATIC_BASE
-       mov      rax, gword ptr [rbp-0x80]
        mov      esi, dword ptr [rbp-0x2C]
        mov      r9, bword ptr [rbp+0x10]
        jmp      G_M6373_IG08
-						;; size=42 bbWeight=0 PerfScore 0.00
-G_M6373_IG47:
+						;; size=34 bbWeight=0 PerfScore 0.00
+G_M6373_IG48:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M6373_IG48:
+G_M6373_IG49:
        mov      rdi, 0xD1FFAB1E      ; System.Net.Http.QPack.QPackEncodingException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_net_http_request_invalid_char_encoding():System.String
        call     [rax]System.SR:get_net_http_request_invalid_char_encoding():System.String
        mov      r15, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Exception:.ctor():this
        call     [rax]System.Exception:.ctor():this
        lea      rdi, bword ptr [rbx+0x10]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=69 bbWeight=0 PerfScore 0.00
-G_M6373_IG49:
+G_M6373_IG50:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1183, prolog size 54, PerfScore 510.88, instruction count 344, allocated bytes for code 1183 (MethodHash=9010e71a) for method System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts)
+; Total bytes of code 1150, prolog size 54, PerfScore 465.12, instruction count 342, allocated bytes for code 1150 (MethodHash=9010e71a) for method System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts)

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

@MihuBot
Copy link
Owner Author

MihuBot commented Jul 12, 2024

@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