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] [EgorBo] JIT: Relax unrolling for structs with gc refs #986

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

Comments

@MihuBot
Copy link
Owner

MihuBot commented Feb 6, 2025

Job completed in 14 minutes 11 seconds (remote runner delay: 1 minute 24 seconds).
dotnet/runtime#112227

Diffs

Diffs
Found 94 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 43622070
Total bytes of diff: 43648013
Total bytes of delta: 25943 (0.06 % of base)
Total relative delta: 37.07
    diff is a regression.
    relative diff is a regression.


Top file regressions (bytes):
       19902 : System.Numerics.Tensors.dasm (1.11 % of base)
        4173 : System.Text.Json.dasm (0.32 % of base)
         751 : System.Collections.Immutable.dasm (0.04 % of base)
         336 : System.Security.Cryptography.dasm (0.03 % of base)
         255 : System.Security.Cryptography.Pkcs.dasm (0.07 % of base)
         178 : System.Private.CoreLib.dasm (0.00 % of base)
         150 : System.Memory.dasm (0.05 % of base)
         114 : System.Net.Quic.dasm (0.08 % of base)
          68 : System.Diagnostics.DiagnosticSource.dasm (0.03 % of base)
          12 : ILCompiler.Reflection.ReadyToRun.dasm (0.01 % of base)
           4 : System.Private.Xml.dasm (0.00 % of base)

11 total files with Code Size differences (0 improved, 11 regressed), 252 unchanged.

Top method regressions (bytes):
         202 (2.24 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         185 (12.51 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadToAnyInternal(byref,System.ReadOnlySpan`1[ubyte],ubyte,int):ubyte:this (FullOpts)
         184 (2.03 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Nullable`1[int]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         168 (10.25 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[double](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[double] (FullOpts)
         168 (10.25 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[int](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[int] (FullOpts)
         168 (10.25 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[long](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[long] (FullOpts)
         168 (10.25 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[short](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[short] (FullOpts)
         168 (10.25 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[System.Nullable`1[int]](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]] (FullOpts)
         168 (10.25 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[System.Numerics.Vector`1[float]](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]] (FullOpts)
         168 (10.25 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[ubyte](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte] (FullOpts)
         157 (1.79 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[double]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         157 (1.79 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[int]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         157 (1.79 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[long]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         157 (1.79 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[short]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         157 (1.78 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Numerics.Vector`1[float]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         157 (1.79 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[ubyte]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         142 (8.34 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[System.__Canon](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon] (FullOpts)
         140 (6.40 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:Reshape[System.__Canon](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[System.__Canon] (FullOpts)
         131 (6.10 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:Reshape[double](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[double] (FullOpts)
         131 (6.10 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:Reshape[int](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[int] (FullOpts)
         131 (6.10 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:Reshape[long](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[long] (FullOpts)
         131 (6.10 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:Reshape[short](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[short] (FullOpts)
         131 (6.10 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:Reshape[System.Nullable`1[int]](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]] (FullOpts)
         131 (6.10 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:Reshape[System.Numerics.Vector`1[float]](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]] (FullOpts)
         131 (6.10 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:Reshape[ubyte](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[ubyte] (FullOpts)
         129 (9.91 % of base) : System.Private.CoreLib.dasm - System.Buffers.StringSearchValues:CreateFromNormalizedValues(System.ReadOnlySpan`1[System.String],System.Collections.Generic.HashSet`1[System.String],ubyte,byref):System.Buffers.SearchValues`1[System.String] (FullOpts)
         108 (2.26 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (FullOpts)
          93 (2.09 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Nullable`1[int]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
          90 (1.95 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
          86 (2.51 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:TryParseValue(byref,byref,ubyte,ubyte):ubyte (FullOpts)
          85 (4.19 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadToSlow(byref,int,int,int,ubyte):ubyte:this (FullOpts) (2 methods)
          85 (4.19 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadToSlow(byref,long,long,int,ubyte):ubyte:this (FullOpts) (2 methods)
          84 (7.29 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[double](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[double] (FullOpts)
          84 (7.29 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[int](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[int] (FullOpts)
          84 (7.29 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[long](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[long] (FullOpts)
          84 (7.29 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[short](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[short] (FullOpts)
          84 (7.29 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[System.Nullable`1[int]](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]] (FullOpts)
          84 (7.29 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[System.Numerics.Vector`1[float]](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]] (FullOpts)
          84 (7.29 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[ubyte](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[ubyte] (FullOpts)
          81 (1.85 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[double]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
          81 (1.86 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[int]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
          81 (1.86 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[long]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
          81 (1.85 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[short]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
          81 (1.86 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[ubyte]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
          77 (8.56 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TryBroadcastTo[double](byref,byref):ubyte (FullOpts) (2 methods)
          77 (8.56 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TryBroadcastTo[int](byref,byref):ubyte (FullOpts) (2 methods)
          77 (8.56 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TryBroadcastTo[long](byref,byref):ubyte (FullOpts) (2 methods)
          77 (8.56 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TryBroadcastTo[short](byref,byref):ubyte (FullOpts) (2 methods)
          77 (8.56 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TryBroadcastTo[System.Nullable`1[int]](byref,byref):ubyte (FullOpts) (2 methods)
          77 (8.56 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TryBroadcastTo[System.Numerics.Vector`1[float]](byref,byref):ubyte (FullOpts) (2 methods)
          77 (8.56 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TryBroadcastTo[ubyte](byref,byref):ubyte (FullOpts) (2 methods)
          75 (6.32 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:LazyBroadcast[System.__Canon](byref,System.ReadOnlySpan`1[long]):System.Numerics.Tensors.TensorSpan`1[System.__Canon] (FullOpts)
          71 (1.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperTwoSpanInSpanOut[double](byref,byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationTwoSpanInSpanOut`1[double]):byref (FullOpts)
          71 (3.07 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[double]:CopyTo(System.Numerics.Tensors.TensorSpan`1[double]):this (FullOpts)
          71 (3.06 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[double]:TryCopyTo(System.Numerics.Tensors.TensorSpan`1[double]):ubyte:this (FullOpts)
          71 (3.07 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[int]:CopyTo(System.Numerics.Tensors.TensorSpan`1[int]):this (FullOpts)
          71 (3.06 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[int]:TryCopyTo(System.Numerics.Tensors.TensorSpan`1[int]):ubyte:this (FullOpts)
          71 (3.07 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[long]:CopyTo(System.Numerics.Tensors.TensorSpan`1[long]):this (FullOpts)
          71 (3.06 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[long]:TryCopyTo(System.Numerics.Tensors.TensorSpan`1[long]):ubyte:this (FullOpts)
          71 (3.07 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[short]:CopyTo(System.Numerics.Tensors.TensorSpan`1[short]):this (FullOpts)
          71 (3.06 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[short]:TryCopyTo(System.Numerics.Tensors.TensorSpan`1[short]):ubyte:this (FullOpts)
          71 (3.07 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:CopyTo(System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]):this (FullOpts)
          71 (3.06 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:TryCopyTo(System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]):ubyte:this (FullOpts)
          71 (3.06 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:CopyTo(System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]):this (FullOpts)
          71 (3.05 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]):ubyte:this (FullOpts)
          71 (3.07 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[ubyte]:CopyTo(System.Numerics.Tensors.TensorSpan`1[ubyte]):this (FullOpts)
          71 (3.06 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[ubyte]:TryCopyTo(System.Numerics.Tensors.TensorSpan`1[ubyte]):ubyte:this (FullOpts)
          70 (2.89 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[long](byref,long,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[long]):byref (FullOpts)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[double](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[int](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[long](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[short](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[System.Nullable`1[int]](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[System.Numerics.Vector`1[float]](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[ubyte](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          68 (8.19 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SetSlice[double](byref,byref,System.ReadOnlySpan`1[System.Buffers.NRange]):byref (FullOpts)
          68 (8.19 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SetSlice[int](byref,byref,System.ReadOnlySpan`1[System.Buffers.NRange]):byref (FullOpts)
          68 (8.19 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SetSlice[long](byref,byref,System.ReadOnlySpan`1[System.Buffers.NRange]):byref (FullOpts)
          68 (8.19 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SetSlice[short](byref,byref,System.ReadOnlySpan`1[System.Buffers.NRange]):byref (FullOpts)
          68 (8.19 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SetSlice[System.Nullable`1[int]](byref,byref,System.ReadOnlySpan`1[System.Buffers.NRange]):byref (FullOpts)
          68 (8.19 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SetSlice[System.Numerics.Vector`1[float]](byref,byref,System.ReadOnlySpan`1[System.Buffers.NRange]):byref (FullOpts)
          68 (8.19 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SetSlice[ubyte](byref,byref,System.ReadOnlySpan`1[System.Buffers.NRange]):byref (FullOpts)
          67 (4.31 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:BroadcastTo[System.__Canon](byref,byref) (FullOpts) (2 methods)
          67 (2.76 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInSpanOut[System.__Canon,System.Nullable`1[int]](byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInSpanOut`2[System.__Canon,System.Nullable`1[int]]):byref (FullOpts)
          67 (2.84 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[double](byref,double,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[double]):byref (FullOpts)
          67 (2.56 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[System.__Canon](byref,System.__Canon,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[System.__Canon]):byref (FullOpts)
          67 (2.84 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[System.Nullable`1[int]](byref,System.Nullable`1[int],byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[System.Nullable`1[int]]):byref (FullOpts)
          67 (2.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.__Canon]:CopyTo(System.Numerics.Tensors.TensorSpan`1[System.__Canon]):this (FullOpts)
          67 (2.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.__Canon]:TryCopyTo(System.Numerics.Tensors.TensorSpan`1[System.__Canon]):ubyte:this (FullOpts)
          66 (7.20 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[double]:ToString(System.ReadOnlySpan`1[long]):System.String:this (FullOpts)
          66 (7.20 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[int]:ToString(System.ReadOnlySpan`1[long]):System.String:this (FullOpts)
          66 (7.20 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[long]:ToString(System.ReadOnlySpan`1[long]):System.String:this (FullOpts)
          66 (7.20 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[short]:ToString(System.ReadOnlySpan`1[long]):System.String:this (FullOpts)
          66 (7.20 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]:ToString(System.ReadOnlySpan`1[long]):System.String:this (FullOpts)
          66 (7.20 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]:ToString(System.ReadOnlySpan`1[long]):System.String:this (FullOpts)
          66 (7.20 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[ubyte]:ToString(System.ReadOnlySpan`1[long]):System.String:this (FullOpts)
          65 (8.59 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[System.__Canon](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          65 (23.05 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:TryAdvanceToNextRootLevelValueWithOptionalReadAhead(byref,ubyte,byref):ubyte (FullOpts)
          64 (3.87 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[double]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts)
          64 (3.87 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[int]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts)

Top method improvements (bytes):
        -104 (-7.61 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest:CreateFromHash(System.ReadOnlyMemory`1[ubyte],System.Security.Cryptography.Oid,System.Security.Cryptography.Oid,System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],ubyte,System.Security.Cryptography.X509Certificates.X509ExtensionCollection):System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest (FullOpts)
         -52 (-4.09 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadToInternal(byref,int,ubyte,int):ubyte:this (FullOpts)
         -52 (-4.09 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadToInternal(byref,long,ubyte,int):ubyte:this (FullOpts)
         -52 (-3.97 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadToInternal(byref,short,ubyte,int):ubyte:this (FullOpts)
         -52 (-4.09 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadToInternal(byref,ubyte,ubyte,int):ubyte:this (FullOpts)
         -45 (-2.16 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadTo(byref,short,short,ubyte):ubyte:this (FullOpts) (2 methods)
         -45 (-2.24 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadTo(byref,ubyte,ubyte,ubyte):ubyte:this (FullOpts) (2 methods)
         -39 (-3.13 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadToInternal(byref,double,ubyte,int):ubyte:this (FullOpts)
         -39 (-3.13 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[System.Numerics.Vector`1[float]]:TryReadToInternal(byref,System.Numerics.Vector`1[float],ubyte,int):ubyte:this (FullOpts)
         -34 (-1.46 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadToSlow(byref,double,double,int,ubyte):ubyte:this (FullOpts) (2 methods)
         -29 (-1.47 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadTo(byref,int,int,ubyte):ubyte:this (FullOpts) (2 methods)
         -29 (-1.47 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadTo(byref,long,long,ubyte):ubyte:this (FullOpts) (2 methods)
         -26 (-1.21 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts)
         -20 (-2.42 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:Push():this (FullOpts)
         -19 (-1.40 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[System.Numerics.Vector`1[float]]:TryReadTo(byref,System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],ubyte):ubyte:this (FullOpts) (2 methods)
         -14 (-0.80 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:TryDecode(System.ReadOnlyMemory`1[ubyte],byref,byref):ubyte (FullOpts)
         -11 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadTo(byref,double,double,ubyte):ubyte:this (FullOpts) (2 methods)
         -10 (-0.40 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[System.Numerics.Vector`1[float]]:TryReadTo(byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],ubyte):ubyte:this (FullOpts) (2 methods)
          -8 (-0.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Intersect(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[int] (FullOpts)
          -7 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadTo(byref,System.ReadOnlySpan`1[double],ubyte):ubyte:this (FullOpts) (2 methods)
          -7 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadTo(byref,System.ReadOnlySpan`1[int],ubyte):ubyte:this (FullOpts) (2 methods)
          -7 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadTo(byref,System.ReadOnlySpan`1[long],ubyte):ubyte:this (FullOpts) (2 methods)
          -7 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadTo(byref,System.ReadOnlySpan`1[short],ubyte):ubyte:this (FullOpts) (2 methods)
          -7 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadTo(byref,System.ReadOnlySpan`1[ubyte],ubyte):ubyte:this (FullOpts) (2 methods)
          -7 (-0.34 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:Intersect(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[short] (FullOpts)
          -6 (-0.29 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:Intersect(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[long] (FullOpts)
          -6 (-0.29 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:Intersect(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[ubyte] (FullOpts)
          -5 (-0.90 % of base) : System.Text.Json.dasm - System.Text.Json.WriteStack:Push():this (FullOpts)
          -4 (-0.26 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CertMatchesIds(System.Security.Cryptography.X509Certificates.X509Certificate2,byref,byref):ubyte (FullOpts)
          -3 (-2.91 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:Split[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float]):System.MemoryExtensions+SpanSplitEnumerator`1[System.Numerics.Vector`1[float]] (FullOpts)
          -3 (-2.86 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:SplitAny[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.Buffers.SearchValues`1[System.Numerics.Vector`1[float]]):System.MemoryExtensions+SpanSplitEnumerator`1[System.Numerics.Vector`1[float]] (FullOpts)
          -3 (-0.13 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.GeneralNameAsn:Encode(System.Formats.Asn1.AsnWriter):this (FullOpts)
          -3 (-0.13 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.GeneralNameAsn:Encode(System.Formats.Asn1.AsnWriter):this (FullOpts)
          -1 (-0.06 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal:Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection,System.Security.Cryptography.Pkcs.ContentInfo,System.Security.Cryptography.Pkcs.AlgorithmIdentifier,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.CryptographicAttributeObjectCollection,ubyte[],ubyte[],ubyte[]):ubyte[]:this (FullOpts)
          -1 (-0.05 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:Intersect(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[double] (FullOpts)
          -1 (-0.04 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:Union(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[double] (FullOpts)
          -1 (-0.08 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:TryGetCertIds(System.Security.Cryptography.Pkcs.SignerInfo,byref,byref):ubyte (FullOpts)

Top method regressions (percentages):
           8 (38.10 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions+SpanSplitEnumerator`1[System.Numerics.Vector`1[float]]:GetEnumerator():System.MemoryExtensions+SpanSplitEnumerator`1[System.Numerics.Vector`1[float]]:this (FullOpts)
          65 (23.05 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:TryAdvanceToNextRootLevelValueWithOptionalReadAhead(byref,ubyte,byref):ubyte (FullOpts)
          49 (20.42 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:TryAdvanceWithReadAhead(byref):ubyte (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:GetEnumerator():System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[double]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:GetEnumerator():System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[int]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:GetEnumerator():System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[long]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:GetEnumerator():System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[short]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:GetEnumerator():System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[System.__Canon]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]:GetEnumerator():System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[System.Nullable`1[int]]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]:GetEnumerator():System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[System.Numerics.Vector`1[float]]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]:GetEnumerator():System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[ubyte]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[double]:GetEnumerator():System.Numerics.Tensors.TensorSpan`1+Enumerator[double]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[int]:GetEnumerator():System.Numerics.Tensors.TensorSpan`1+Enumerator[int]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[long]:GetEnumerator():System.Numerics.Tensors.TensorSpan`1+Enumerator[long]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[short]:GetEnumerator():System.Numerics.Tensors.TensorSpan`1+Enumerator[short]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.__Canon]:GetEnumerator():System.Numerics.Tensors.TensorSpan`1+Enumerator[System.__Canon]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:GetEnumerator():System.Numerics.Tensors.TensorSpan`1+Enumerator[System.Nullable`1[int]]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:GetEnumerator():System.Numerics.Tensors.TensorSpan`1+Enumerator[System.Numerics.Vector`1[float]]:this (FullOpts)
          45 (19.15 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[ubyte]:GetEnumerator():System.Numerics.Tensors.TensorSpan`1+Enumerator[ubyte]:this (FullOpts)
          15 (18.99 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:SplitAny[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]):System.MemoryExtensions+SpanSplitEnumerator`1[System.Numerics.Vector`1[float]] (FullOpts)
          27 (18.24 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts)
          27 (18.24 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[double]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[int]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[long]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[short]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (17.88 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[ubyte]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          47 (16.97 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[double]:AsTensorSpan():System.Numerics.Tensors.TensorSpan`1[double]:this (FullOpts)
          47 (16.97 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[int]:AsTensorSpan():System.Numerics.Tensors.TensorSpan`1[int]:this (FullOpts)
          47 (16.97 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[long]:AsTensorSpan():System.Numerics.Tensors.TensorSpan`1[long]:this (FullOpts)
          47 (16.97 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[short]:AsTensorSpan():System.Numerics.Tensors.TensorSpan`1[short]:this (FullOpts)
          47 (16.97 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.__Canon]:AsTensorSpan():System.Numerics.Tensors.TensorSpan`1[System.__Canon]:this (FullOpts)
          47 (16.97 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]:AsTensorSpan():System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:this (FullOpts)
          47 (16.97 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]:AsTensorSpan():System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:this (FullOpts)
          47 (16.97 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[ubyte]:AsTensorSpan():System.Numerics.Tensors.TensorSpan`1[ubyte]:this (FullOpts)
          47 (16.79 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.__Canon]:op_Implicit(System.Numerics.Tensors.Tensor`1[System.__Canon]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon] (FullOpts)
          47 (16.79 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.__Canon]:op_Implicit(System.Numerics.Tensors.Tensor`1[System.__Canon]):System.Numerics.Tensors.TensorSpan`1[System.__Canon] (FullOpts)
          38 (15.90 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicConfiguration+<>c:<GetCachedCredentialOrCreate>b__9_0(System.ValueTuple`6[Microsoft.Quic.QUIC_SETTINGS,int,System.Security.Cryptography.X509Certificates.X509Certificate,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Collections.Generic.List`1[System.Net.Security.SslApplicationProtocol],int]):System.Net.Quic.MsQuicConfigurationSafeHandle:this (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[double]:op_Implicit(System.Numerics.Tensors.Tensor`1[double]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[double] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[double]:op_Implicit(System.Numerics.Tensors.Tensor`1[double]):System.Numerics.Tensors.TensorSpan`1[double] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[int]:op_Implicit(System.Numerics.Tensors.Tensor`1[int]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[int] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[int]:op_Implicit(System.Numerics.Tensors.Tensor`1[int]):System.Numerics.Tensors.TensorSpan`1[int] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[long]:op_Implicit(System.Numerics.Tensors.Tensor`1[long]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[long] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[long]:op_Implicit(System.Numerics.Tensors.Tensor`1[long]):System.Numerics.Tensors.TensorSpan`1[long] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[short]:op_Implicit(System.Numerics.Tensors.Tensor`1[short]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[short] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[short]:op_Implicit(System.Numerics.Tensors.Tensor`1[short]):System.Numerics.Tensors.TensorSpan`1[short] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]:op_Implicit(System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]:op_Implicit(System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]):System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]:op_Implicit(System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]:op_Implicit(System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]):System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[ubyte]:op_Implicit(System.Numerics.Tensors.Tensor`1[ubyte]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte] (FullOpts)
          43 (15.69 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor`1[ubyte]:op_Implicit(System.Numerics.Tensors.Tensor`1[ubyte]):System.Numerics.Tensors.TensorSpan`1[ubyte] (FullOpts)
          27 (15.08 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          27 (15.08 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.__Canon]:.ctor(byref,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],long):this (FullOpts)
          42 (14.14 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TrySkip():ubyte:this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[double]:.ctor(System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[int]:.ctor(System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[long]:.ctor(System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[short]:.ctor(System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[System.__Canon]:.ctor(System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[System.Nullable`1[int]]:.ctor(System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[System.Numerics.Vector`1[float]]:.ctor(System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1+Enumerator[ubyte]:.ctor(System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1+Enumerator[double]:.ctor(System.Numerics.Tensors.TensorSpan`1[double]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1+Enumerator[int]:.ctor(System.Numerics.Tensors.TensorSpan`1[int]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1+Enumerator[long]:.ctor(System.Numerics.Tensors.TensorSpan`1[long]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1+Enumerator[short]:.ctor(System.Numerics.Tensors.TensorSpan`1[short]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1+Enumerator[System.__Canon]:.ctor(System.Numerics.Tensors.TensorSpan`1[System.__Canon]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1+Enumerator[System.Nullable`1[int]]:.ctor(System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1+Enumerator[System.Numerics.Vector`1[float]]:.ctor(System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]):this (FullOpts)
          24 (13.87 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1+Enumerator[ubyte]:.ctor(System.Numerics.Tensors.TensorSpan`1[ubyte]):this (FullOpts)
          43 (13.74 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:CastUp[System.__Canon](System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon] (FullOpts)
          43 (13.74 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[double]:op_Implicit(System.Numerics.Tensors.TensorSpan`1[double]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[double] (FullOpts)
          43 (13.74 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[int]:op_Implicit(System.Numerics.Tensors.TensorSpan`1[int]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[int] (FullOpts)
          43 (13.74 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[long]:op_Implicit(System.Numerics.Tensors.TensorSpan`1[long]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[long] (FullOpts)
          43 (13.74 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[short]:op_Implicit(System.Numerics.Tensors.TensorSpan`1[short]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[short] (FullOpts)
          43 (13.74 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.__Canon]:op_Implicit(System.Numerics.Tensors.TensorSpan`1[System.__Canon]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon] (FullOpts)
          43 (13.74 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:op_Implicit(System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]] (FullOpts)
          43 (13.74 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:op_Implicit(System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]] (FullOpts)
          43 (13.74 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[ubyte]:op_Implicit(System.Numerics.Tensors.TensorSpan`1[ubyte]):System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte] (FullOpts)
         185 (12.51 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadToAnyInternal(byref,System.ReadOnlySpan`1[ubyte],ubyte,int):ubyte:this (FullOpts)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[double](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[int](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[long](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[short](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[System.Nullable`1[int]](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[System.Numerics.Vector`1[float]](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          69 (11.54 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[ubyte](byref,System.ReadOnlySpan`1[long]):System.String (FullOpts) (2 methods)
          42 (10.85 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:Encode(System.Formats.Asn1.AsnWriter):this (FullOpts)
          44 (10.28 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[double]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts)
          44 (10.28 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[int]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts)

Top method improvements (percentages):
        -104 (-7.61 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest:CreateFromHash(System.ReadOnlyMemory`1[ubyte],System.Security.Cryptography.Oid,System.Security.Cryptography.Oid,System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],ubyte,System.Security.Cryptography.X509Certificates.X509ExtensionCollection):System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest (FullOpts)
         -52 (-4.09 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadToInternal(byref,int,ubyte,int):ubyte:this (FullOpts)
         -52 (-4.09 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadToInternal(byref,long,ubyte,int):ubyte:this (FullOpts)
         -52 (-4.09 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadToInternal(byref,ubyte,ubyte,int):ubyte:this (FullOpts)
         -52 (-3.97 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadToInternal(byref,short,ubyte,int):ubyte:this (FullOpts)
         -39 (-3.13 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadToInternal(byref,double,ubyte,int):ubyte:this (FullOpts)
         -39 (-3.13 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[System.Numerics.Vector`1[float]]:TryReadToInternal(byref,System.Numerics.Vector`1[float],ubyte,int):ubyte:this (FullOpts)
          -3 (-2.91 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:Split[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float]):System.MemoryExtensions+SpanSplitEnumerator`1[System.Numerics.Vector`1[float]] (FullOpts)
          -3 (-2.86 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:SplitAny[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.Buffers.SearchValues`1[System.Numerics.Vector`1[float]]):System.MemoryExtensions+SpanSplitEnumerator`1[System.Numerics.Vector`1[float]] (FullOpts)
         -20 (-2.42 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:Push():this (FullOpts)
         -45 (-2.24 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadTo(byref,ubyte,ubyte,ubyte):ubyte:this (FullOpts) (2 methods)
         -45 (-2.16 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadTo(byref,short,short,ubyte):ubyte:this (FullOpts) (2 methods)
         -29 (-1.47 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadTo(byref,int,int,ubyte):ubyte:this (FullOpts) (2 methods)
         -29 (-1.47 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadTo(byref,long,long,ubyte):ubyte:this (FullOpts) (2 methods)
         -34 (-1.46 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadToSlow(byref,double,double,int,ubyte):ubyte:this (FullOpts) (2 methods)
         -19 (-1.40 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[System.Numerics.Vector`1[float]]:TryReadTo(byref,System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],ubyte):ubyte:this (FullOpts) (2 methods)
         -26 (-1.21 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts)
          -5 (-0.90 % of base) : System.Text.Json.dasm - System.Text.Json.WriteStack:Push():this (FullOpts)
         -14 (-0.80 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:TryDecode(System.ReadOnlyMemory`1[ubyte],byref,byref):ubyte (FullOpts)
         -11 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadTo(byref,double,double,ubyte):ubyte:this (FullOpts) (2 methods)
          -7 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadTo(byref,System.ReadOnlySpan`1[double],ubyte):ubyte:this (FullOpts) (2 methods)
          -7 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadTo(byref,System.ReadOnlySpan`1[ubyte],ubyte):ubyte:this (FullOpts) (2 methods)
          -7 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadTo(byref,System.ReadOnlySpan`1[int],ubyte):ubyte:this (FullOpts) (2 methods)
          -7 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadTo(byref,System.ReadOnlySpan`1[long],ubyte):ubyte:this (FullOpts) (2 methods)
          -7 (-0.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadTo(byref,System.ReadOnlySpan`1[short],ubyte):ubyte:this (FullOpts) (2 methods)
         -10 (-0.40 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[System.Numerics.Vector`1[float]]:TryReadTo(byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],ubyte):ubyte:this (FullOpts) (2 methods)
          -8 (-0.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Intersect(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[int] (FullOpts)
          -7 (-0.34 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:Intersect(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[short] (FullOpts)
          -6 (-0.29 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:Intersect(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[ubyte] (FullOpts)
          -6 (-0.29 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:Intersect(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[long] (FullOpts)
          -4 (-0.26 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CertMatchesIds(System.Security.Cryptography.X509Certificates.X509Certificate2,byref,byref):ubyte (FullOpts)
          -3 (-0.13 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.GeneralNameAsn:Encode(System.Formats.Asn1.AsnWriter):this (FullOpts)
          -3 (-0.13 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.GeneralNameAsn:Encode(System.Formats.Asn1.AsnWriter):this (FullOpts)
          -1 (-0.08 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:TryGetCertIds(System.Security.Cryptography.Pkcs.SignerInfo,byref,byref):ubyte (FullOpts)
          -1 (-0.06 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal:Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection,System.Security.Cryptography.Pkcs.ContentInfo,System.Security.Cryptography.Pkcs.AlgorithmIdentifier,System.Security.Cryptography.X509Certificates.X509Certificate2Collection,System.Security.Cryptography.CryptographicAttributeObjectCollection,ubyte[],ubyte[],ubyte[]):ubyte[]:this (FullOpts)
          -1 (-0.05 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:Intersect(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[double] (FullOpts)
          -1 (-0.04 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:Union(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[double] (FullOpts)

699 total methods with Code Size differences (37 improved, 662 regressed), 246745 unchanged.

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

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Feb 6, 2025

Top method regressions

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

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

@MihuBot
Copy link
Owner Author

MihuBot commented Feb 6, 2025

Top method improvements

-104 (-7.61 % of base) - System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest:CreateFromHash(System.ReadOnlyMemory`1[ubyte],System.Security.Cryptography.Oid,System.Security.Cryptography.Oid,System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],ubyte,System.Security.Cryptography.X509Certificates.X509ExtensionCollection):System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest
 ; Assembly listing for method System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest:CreateFromHash(System.ReadOnlyMemory`1[ubyte],System.Security.Cryptography.Oid,System.Security.Cryptography.Oid,System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],ubyte,System.Security.Cryptography.X509Certificates.X509ExtensionCollection):System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest (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; 27 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T24] (  3,  3   )  struct (16) [rbp-0x38]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[ubyte]>
 ;  V01 arg1         [V01,T23] (  3,  3   )     ref  ->  r14         class-hnd single-def <System.Security.Cryptography.Oid>
 ;  V02 arg2         [V02,T16] (  4,  3.50)     ref  ->  r15         class-hnd single-def <System.Security.Cryptography.Oid>
 ;  V03 arg3         [V03,T28] (  4,  4   )  struct (24) [rbp+0x10]  do-not-enreg[SF] ld-addr-op single-def <System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]>
 ;  V04 arg4         [V04,T25] (  3,  3   )   ubyte  ->  r13         single-def
 ;  V05 arg5         [V05,T05] (  6, 11.50)     ref  ->  rbx         class-hnd single-def <System.Security.Cryptography.X509Certificates.X509ExtensionCollection>
 ;  V06 loc0         [V06    ] ( 15, 17.50)  struct (96) [rbp-0x98]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg ld-addr-op <System.Security.Cryptography.Pkcs.Asn1.Rfc3161TimeStampReq>
 ;* V07 loc1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Formats.Asn1.AsnWriter>
 ;* V08 loc2         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlyMemory`1[ubyte]>
 ;* V09 loc3         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;  V10 loc4         [V10,T35] (  6,  3   )     ref  ->  r12         class-hnd exact single-def <ubyte[]>
 ;  V11 loc5         [V11,T18] (  9,  4.50)     int  ->  rax        
 ;  V12 loc6         [V12,T36] (  3,  3   )  struct (96) [rbp-0xF8]  do-not-enreg[SF] must-init ld-addr-op <System.Security.Cryptography.Pkcs.Asn1.Rfc3161TimeStampReq>
 ;  V13 loc7         [V13,T29] (  4,  4   )  struct (48) [rbp-0x128]  do-not-enreg[SF] must-init ld-addr-op <System.Security.Cryptography.Pkcs.Asn1.MessageImprint>
 ;* V14 loc8         [V14,T53] (  0,  0   )     int  ->  zero-ref   
 ;# V15 OutArgs      [V15    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;  V16 tmp1         [V16,T30] (  2,  4   )  struct (24) [rbp-0x140]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]>
 ;* V17 tmp2         [V17    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V18 tmp3         [V18    ] (  0,  0   )   byref  ->  zero-ref   
-;  V19 tmp4         [V19,T38] (  3,  2   )     ref  ->  r15        
+;  V19 tmp4         [V19,T38] (  3,  2   )     ref  ->  rdi        
 ;  V20 tmp5         [V20,T07] (  5, 10   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnWriter>
 ;* V21 tmp6         [V21    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
 ;  V22 tmp7         [V22,T09] (  4,  8   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest>
 ;* V23 tmp8         [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <System.Security.Cryptography.Asn1.X509ExtensionAsn[]>
 ;  V24 tmp9         [V24,T03] (  3, 24   )     ref  ->  r15         class-hnd exact "impAppendStmt" <System.Security.Cryptography.Asn1.X509ExtensionAsn[]>
 ;* V25 tmp10        [V25    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Security.Cryptography.Asn1.X509ExtensionAsn>
 ;* V26 tmp11        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <ubyte[]>
 ;* V27 tmp12        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V28 tmp13        [V28    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
 ;* V29 tmp14        [V29    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
 ;* V30 tmp15        [V30    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-;  V31 tmp16        [V31,T26] (  7,  3.50)   byref  ->  [rbp-0x178]  "Inline stloc first use temp"
+;  V31 tmp16        [V31,T26] (  7,  3.50)   byref  ->  [rbp-0x170]  "Inline stloc first use temp"
 ;  V32 tmp17        [V32,T19] (  9,  4.50)     int  ->  [rbp-0x144]  "Inline stloc first use temp"
 ;* V33 tmp18        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V34 tmp19        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V35 tmp20        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
 ;* V36 tmp21        [V36    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V37 tmp22        [V37    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op single-def "Inline stloc first use temp" <System.Span`1[ubyte]>
 ;  V38 tmp23        [V38,T46] (  3,  1.50)    long  ->  rsi         single-def "Inline stloc first use temp"
 ;* V39 tmp24        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V40 tmp25        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
 ;* V41 tmp26        [V41    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
 ;  V42 tmp27        [V42,T39] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V43 tmp28        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V44 tmp29        [V44    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;* V45 tmp30        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V46 tmp31        [V46    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V47 tmp32        [V47,T40] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
 ;  V48 tmp33        [V48,T42] (  2,  2   )     int  ->  rax         "Inlining Arg"
 ;* V49 tmp34        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V50 tmp35        [V50    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V51 tmp36        [V51    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V52 tmp37        [V52    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp38        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
 ;* V54 tmp39        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
 ;* V55 tmp40        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Object>
 ;  V56 tmp41        [V56,T43] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;  V57 tmp42        [V57,T44] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V58 tmp43        [V58    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlyMemory`1[ubyte]>
 ;* V59 tmp44        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509Extension]>
 ;  V60 tmp45        [V60,T01] (  5, 40   )     ref  ->  rax         class-hnd "Inlining Arg" <System.Security.Cryptography.X509Certificates.X509Extension>
 ;* V61 tmp46        [V61    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Security.Cryptography.Oid>
 ;  V62 tmp47        [V62,T04] (  3, 20   )     ref  ->  r12         class-hnd "Inlining Arg" <ubyte[]>
 ;* V63 tmp48        [V63    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
 ;* V64 tmp49        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509Extension]>
 ;  V65 tmp50        [V65,T14] (  4,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;  V66 tmp51        [V66    ] (  8, 10   )  struct (16) [rbp-0x158]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
 ;  V67 tmp52        [V67,T27] (  8,  4   )     ref  ->  r12         single-def "field V08._object (fldOffset=0x0)" P-INDEP
 ;  V68 tmp53        [V68,T47] (  3,  1.50)     int  ->  [rbp-0x15C]  spill-single-def "field V08._index (fldOffset=0x8)" P-INDEP
 ;  V69 tmp54        [V69,T37] (  5,  2.50)     int  ->  [rbp-0x160]  spill-single-def "field V08._length (fldOffset=0xc)" P-INDEP
 ;  V70 tmp55        [V70,T17] (  4,  5.50)   byref  ->  rdi         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;  V71 tmp56        [V71,T13] (  5,  6   )     int  ->   r8         single-def "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V72 tmp57        [V72    ] (  0,  0   )     ref  ->  zero-ref    "field V21._object (fldOffset=0x0)" P-INDEP
 ;* V73 tmp58        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V21._index (fldOffset=0x8)" P-INDEP
 ;* V74 tmp59        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0xc)" P-INDEP
 ;* V75 tmp60        [V75    ] (  0,  0   )   byref  ->  zero-ref    "field V27._reference (fldOffset=0x0)" P-INDEP
 ;* V76 tmp61        [V76    ] (  0,  0   )     int  ->  zero-ref    "field V27._length (fldOffset=0x8)" P-INDEP
 ;* V77 tmp62        [V77    ] (  0,  0   )     ref  ->  zero-ref    "field V28._object (fldOffset=0x0)" P-INDEP
 ;* V78 tmp63        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V28._index (fldOffset=0x8)" P-INDEP
 ;* V79 tmp64        [V79    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0xc)" P-INDEP
 ;* V80 tmp65        [V80    ] (  0,  0   )     ref  ->  zero-ref    "field V29._object (fldOffset=0x0)" P-INDEP
 ;* V81 tmp66        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V29._index (fldOffset=0x8)" P-INDEP
 ;* V82 tmp67        [V82    ] (  0,  0   )     int  ->  zero-ref    "field V29._length (fldOffset=0xc)" P-INDEP
 ;* V83 tmp68        [V83    ] (  0,  0   )   byref  ->  zero-ref    "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V84 tmp69        [V84    ] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;* V85 tmp70        [V85,T52] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V86 tmp71        [V86,T54] (  0,  0   )     int  ->  zero-ref    single-def "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V87 tmp72        [V87    ] (  0,  0   )   byref  ->  zero-ref    "field V36._reference (fldOffset=0x0)" P-DEP
 ;* V88 tmp73        [V88    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-DEP
 ;  V89 tmp74        [V89,T49] (  2,  1   )   byref  ->  rax         "field V37._reference (fldOffset=0x0)" P-INDEP
 ;  V90 tmp75        [V90,T50] (  2,  1   )     int  ->  rsi         "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V91 tmp76        [V91    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V92 tmp77        [V92    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V93 tmp78        [V93    ] (  0,  0   )   byref  ->  zero-ref    "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V94 tmp79        [V94    ] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0x8)" P-INDEP
 ;* V95 tmp80        [V95    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp81        [V96    ] (  0,  0   )     int  ->  zero-ref    single-def "field V45._length (fldOffset=0x8)" P-INDEP
 ;* V97 tmp82        [V97    ] (  0,  0   )   byref  ->  zero-ref    "field V46._reference (fldOffset=0x0)" P-INDEP
 ;* V98 tmp83        [V98    ] (  0,  0   )     int  ->  zero-ref    "field V46._length (fldOffset=0x8)" P-INDEP
 ;* V99 tmp84        [V99    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V100 tmp85       [V100    ] (  0,  0   )     int  ->  zero-ref    single-def "field V49._length (fldOffset=0x8)" P-INDEP
 ;* V101 tmp86       [V101    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V53._object (fldOffset=0x0)" P-INDEP
 ;* V102 tmp87       [V102    ] (  0,  0   )     int  ->  zero-ref    single-def "field V53._index (fldOffset=0x8)" P-INDEP
 ;  V103 tmp88       [V103,T51] (  2,  1   )     int  ->  rcx         single-def "field V53._length (fldOffset=0xc)" P-INDEP
 ;* V104 tmp89       [V104    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V54._object (fldOffset=0x0)" P-INDEP
 ;* V105 tmp90       [V105    ] (  0,  0   )     int  ->  zero-ref    single-def "field V54._index (fldOffset=0x8)" P-INDEP
 ;* V106 tmp91       [V106    ] (  0,  0   )     int  ->  zero-ref    single-def "field V54._length (fldOffset=0xc)" P-INDEP
 ;* V107 tmp92       [V107    ] (  0,  0   )     ref  ->  zero-ref    "field V58._object (fldOffset=0x0)" P-INDEP
 ;* V108 tmp93       [V108    ] (  0,  0   )     int  ->  zero-ref    "field V58._index (fldOffset=0x8)" P-INDEP
 ;* V109 tmp94       [V109    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0xc)" P-INDEP
 ;  V110 tmp95       [V110,T08] (  4, 10   )     ref  ->  r12         "field V63._object (fldOffset=0x0)" P-INDEP
 ;* V111 tmp96       [V111    ] (  0,  0   )     int  ->  zero-ref    "field V63._index (fldOffset=0x8)" P-INDEP
 ;  V112 tmp97       [V112,T10] (  3,  8   )     int  ->  [rbp-0x164]  "field V63._length (fldOffset=0xc)" P-INDEP
 ;  V113 tmp98       [V113,T20] (  4,  5   )     ref  ->  [rbp-0x158]  do-not-enreg[] "field V66._object (fldOffset=0x0)" P-DEP
 ;  V114 tmp99       [V114,T21] (  4,  5   )     int  ->  [rbp-0x150]  do-not-enreg[] "field V66._index (fldOffset=0x8)" P-DEP
 ;  V115 tmp100      [V115,T22] (  4,  5   )     int  ->  [rbp-0x14C]  do-not-enreg[] "field V66._length (fldOffset=0xc)" P-DEP
 ;  V116 tmp101      [V116,T34] (  4,  3.50)   ubyte  ->  registers   "V03.[000..001)"
-;  V117 tmp102      [V117,T31] (  5,  3.50)     ref  ->  [rbp-0x180]  "V03.[008..016)"
-;  V118 tmp103      [V118,T32] (  5,  3.50)     int  ->  [rbp-0x168]  "V03.[016..020)"
-;  V119 tmp104      [V119,T33] (  5,  3.50)     int  ->  [rbp-0x16C]  "V03.[020..024)"
+;  V117 tmp102      [V117,T31] (  5,  3.50)     ref  ->  registers   "V03.[008..016)"
+;  V118 tmp103      [V118,T32] (  5,  3.50)     int  ->  registers   "V03.[016..020)"
+;  V119 tmp104      [V119,T33] (  5,  3.50)     int  ->  registers   "V03.[020..024)"
 ;* V120 tmp105      [V120    ] (  0,  0   )     ref  ->  zero-ref    single-def "V12.[000..008)"
 ;* V121 tmp106      [V121    ] (  0,  0   )     int  ->  zero-ref    single-def "V12.[016..020)"
-;  V122 tmp107      [V122,T45] (  2,  2   )   ubyte  ->  r13         single-def "V12.[020..021)"
+;  V122 tmp107      [V122,T45] (  2,  2   )   ubyte  ->   r8         single-def "V12.[020..021)"
 ;* V123 tmp108      [V123    ] (  0,  0   )     ref  ->  zero-ref    single-def "V12.[024..032)"
 ;* V124 tmp109      [V124    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V12.[032..033)"
 ;* V125 tmp110      [V125    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V12.[072..073)"
 ;* V126 tmp111      [V126    ] (  0,  0   )     ref  ->  zero-ref    single-def "V12.[080..088)"
 ;* V127 tmp112      [V127    ] (  0,  0   )     int  ->  zero-ref    single-def "V12.[088..092)"
 ;* V128 tmp113      [V128    ] (  0,  0   )     int  ->  zero-ref    single-def "V12.[092..096)"
-;  V129 tmp114      [V129,T41] (  2,  2   )     ref  ->  r14         single-def "V13.[000..008)"
+;  V129 tmp114      [V129,T41] (  2,  2   )     ref  ->  rsi         single-def "V13.[000..008)"
 ;* V130 tmp115      [V130    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V13.[008..009)"
 ;* V131 tmp116      [V131    ] (  0,  0   )   ubyte  ->  zero-ref    "V16.[000..001)"
 ;  V132 tmp117      [V132,T11] (  2,  8   )     ref  ->  rsi         "V25.[000..008)"
 ;  V133 tmp118      [V133,T12] (  2,  8   )   ubyte  ->  r13         "V25.[008..009)"
 ;* V134 tmp119      [V134    ] (  0,  0   )     ref  ->  zero-ref    "V25.[016..024)"
 ;* V135 tmp120      [V135    ] (  0,  0   )     int  ->  zero-ref    "V25.[024..028)"
 ;* V136 tmp121      [V136    ] (  0,  0   )     int  ->  zero-ref    "V25.[028..032)"
 ;  V137 tmp122      [V137,T00] (  6, 48   )   byref  ->  r15         "Spilling address for field-by-field copy"
 ;  V138 cse0        [V138,T48] (  3,  1.50)     int  ->  r15         "CSE #07: conservative"
 ;  V139 rat0        [V139,T06] (  6, 13   )    long  ->  rax         "Widened IV V11"
 ;  V140 rat1        [V140,T02] (  7, 24.50)    long  ->  r14         "Widened IV V14"
 ;  V141 rat2        [V141,T15] (  3,  6   )   byref  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 344
+; Lcl frame size = 328
 
 G_M29481_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 344
-       lea      rbp, [rsp+0x180]
+       sub      rsp, 328
+       lea      rbp, [rsp+0x170]
        xor      eax, eax
        mov      qword ptr [rbp-0x158], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x150], zmm8
        vmovdqu32 zmmword ptr [rbp-0x110], zmm8
        vmovdqu32 zmmword ptr [rbp-0xD0], zmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        mov      qword ptr [rbp-0x40], rax
        mov      gword ptr [rbp-0x38], rdi
        mov      qword ptr [rbp-0x30], rsi
        mov      r14, rdx
        mov      r15, rcx
        mov      r13d, r8d
        mov      rbx, r9
 						;; size=108 bbWeight=1 PerfScore 22.33
 G_M29481_IG02:
        movzx    r12, byte  ptr [rbp+0x10]
        mov      rax, gword ptr [rbp+0x18]
        mov      ecx, dword ptr [rbp+0x20]
        mov      edx, dword ptr [rbp+0x24]
        test     r12d, r12d
        je       G_M29481_IG16
 						;; size=24 bbWeight=1 PerfScore 5.25
 G_M29481_IG03:
        mov      r12, rax
        mov      dword ptr [rbp-0x15C], ecx
        mov      dword ptr [rbp-0x160], edx
        xor      rax, rax
        xor      esi, esi
        test     r12, r12
        je       SHORT G_M29481_IG06
        mov      rdi, qword ptr [r12]
        test     dword ptr [rdi], 0xD1FFAB1E
        jne      SHORT G_M29481_IG04
        mov      rdi, r12
        mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
        mov      esi, edx
        mov      ecx, esi
        mov      rdi, rax
        mov      eax, ecx
        jmp      SHORT G_M29481_IG05
 						;; size=61 bbWeight=0.50 PerfScore 10.12
 G_M29481_IG04:
        lea      rax, bword ptr [r12+0x10]
        mov      rdi, rax
        mov      eax, dword ptr [r12+0x08]
 						;; size=13 bbWeight=0.50 PerfScore 1.38
 G_M29481_IG05:
        mov      ecx, dword ptr [rbp-0x15C]
        mov      esi, ecx
        and      esi, 0xD1FFAB1E
        mov      edx, dword ptr [rbp-0x160]
        mov      r8d, edx
        add      r8, rsi
        mov      eax, eax
        cmp      r8, rax
-       ja       G_M29481_IG38
+       ja       G_M29481_IG40
        add      rdi, rsi
        mov      eax, edx
        mov      esi, eax
        mov      rax, rdi
 						;; size=47 bbWeight=0.50 PerfScore 2.75
 G_M29481_IG06:
-       mov      bword ptr [rbp-0x178], rax
+       mov      bword ptr [rbp-0x170], rax
        mov      rdi, rax
        mov      r8d, esi
        test     r8d, r8d
        je       SHORT G_M29481_IG13
        cmp      byte  ptr [rdi], 128
        jae      SHORT G_M29481_IG13
        xor      eax, eax
        jmp      SHORT G_M29481_IG08
 						;; size=27 bbWeight=0.50 PerfScore 4.50
 G_M29481_IG07:
        inc      eax
 						;; size=2 bbWeight=2 PerfScore 0.50
 G_M29481_IG08:
        cmp      eax, r8d
        jge      SHORT G_M29481_IG09
        cmp      byte  ptr [rdi+rax], 0
        je       SHORT G_M29481_IG07
 						;; size=11 bbWeight=4 PerfScore 21.00
 G_M29481_IG09:
        cmp      eax, r8d
        je       SHORT G_M29481_IG10
        cmp      eax, r8d
-       jae      G_M29481_IG39
+       jae      G_M29481_IG41
        mov      esi, eax
        cmp      byte  ptr [rdi+rsi], 128
        jb       SHORT G_M29481_IG11
 						;; size=22 bbWeight=0.50 PerfScore 3.38
 G_M29481_IG10:
        dec      eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M29481_IG11:
        mov      edx, dword ptr [rbp-0x160]
        cmp      eax, edx
        ja       SHORT G_M29481_IG12
        mov      ecx, eax
        add      ecx, dword ptr [rbp-0x15C]
        sub      edx, eax
        mov      eax, ecx
        mov      ecx, edx
-       mov      gword ptr [rbp-0x180], r12
-       mov      dword ptr [rbp-0x168], eax
-       mov      dword ptr [rbp-0x16C], ecx
+       mov      esi, eax
+       mov      edi, ecx
        jmp      G_M29481_IG15
-						;; size=48 bbWeight=0.50 PerfScore 5.12
+						;; size=33 bbWeight=0.50 PerfScore 3.88
 G_M29481_IG12:
        mov      edi, 33
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0.50 PerfScore 1.88
 G_M29481_IG13:
        mov      dword ptr [rbp-0x144], esi
        lea      edi, [rsi+0x01]
        movsxd   rsi, edi
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      r12, rax
        cmp      dword ptr [r12+0x08], 0
-       je       G_M29481_IG38
+       je       G_M29481_IG40
        lea      rdi, bword ptr [r12+0x11]
        mov      eax, dword ptr [r12+0x08]
        dec      eax
        mov      ecx, dword ptr [rbp-0x144]
        cmp      ecx, eax
        jbe      SHORT G_M29481_IG14
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=77 bbWeight=0.50 PerfScore 7.88
 G_M29481_IG14:
        mov      edx, ecx
-       mov      rsi, bword ptr [rbp-0x178]
+       mov      rsi, bword ptr [rbp-0x170]
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      ecx, dword ptr [r12+0x08]
-       mov      gword ptr [rbp-0x180], r12
        xor      eax, eax
-       mov      dword ptr [rbp-0x168], eax
-       mov      dword ptr [rbp-0x16C], ecx
-						;; size=47 bbWeight=0.50 PerfScore 4.88
+       xor      esi, esi
+       mov      edi, ecx
+						;; size=32 bbWeight=0.50 PerfScore 3.62
 G_M29481_IG15:
-       mov      r8d, 1
+       mov      eax, 1
+       mov      ecx, esi
+       mov      edx, edi
+       mov      r8d, eax
+       mov      rax, r12
        mov      r12d, r8d
-       mov      rax, gword ptr [rbp-0x180]
-       mov      ecx, dword ptr [rbp-0x168]
-       mov      edx, dword ptr [rbp-0x16C]
-						;; size=28 bbWeight=0.50 PerfScore 1.75
+						;; size=18 bbWeight=0.50 PerfScore 0.75
 G_M29481_IG16:
        vxorps   ymm0, ymm0, ymm0
        vmovdqu32 zmmword ptr [rbp-0xF8], zmm0
        vmovdqu  ymmword ptr [rbp-0xB8], ymm0
        vxorps   ymm0, ymm0, ymm0
        vmovdqu  ymmword ptr [rbp-0x128], ymm0
        vmovdqu  xmmword ptr [rbp-0x108], xmm0
-       mov      r14, gword ptr [r14+0x08]
+       mov      rsi, gword ptr [r14+0x08]
        mov      rdi, 0xD1FFAB1E      ; box for System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn:ExplicitDerNull
        mov      rdi, gword ptr [rdi]
 						;; size=59 bbWeight=1 PerfScore 8.92
 G_M29481_IG17:
        vmovdqu  xmm0, xmmword ptr [rdi+0x08]
        vmovdqu  xmmword ptr [rbp-0x138], xmm0
 						;; size=13 bbWeight=1 PerfScore 5.00
 G_M29481_IG18:
        vmovdqu  xmm0, xmmword ptr [rbp-0x140]
        vmovdqu  xmmword ptr [rbp-0x120], xmm0
        mov      rdi, qword ptr [rbp-0x130]
        mov      qword ptr [rbp-0x110], rdi
 						;; size=30 bbWeight=1 PerfScore 6.00
 G_M29481_IG19:
        vmovdqu  xmm0, xmmword ptr [rbp-0x38]
        vmovdqu  xmmword ptr [rbp-0x108], xmm0
 						;; size=13 bbWeight=1 PerfScore 4.00
 G_M29481_IG20:
        vmovdqu  ymm0, ymmword ptr [rbp-0x128]
        vmovdqu  ymmword ptr [rbp-0xE0], ymm0
        vmovdqu  xmm0, xmmword ptr [rbp-0x108]
        vmovdqu  xmmword ptr [rbp-0xC0], xmm0
 						;; size=32 bbWeight=1 PerfScore 9.00
 G_M29481_IG21:
        test     r15, r15
        je       SHORT G_M29481_IG23
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M29481_IG22:
-       mov      r15, gword ptr [r15+0x08]
-       mov      gword ptr [rbp-0x180], rax
-       mov      dword ptr [rbp-0x168], ecx
-       mov      dword ptr [rbp-0x16C], edx
+       mov      rdi, gword ptr [r15+0x08]
        jmp      SHORT G_M29481_IG24
-						;; size=25 bbWeight=0.50 PerfScore 3.50
+						;; size=6 bbWeight=0.50 PerfScore 2.00
 G_M29481_IG23:
-       xor      r15, r15
-       mov      gword ptr [rbp-0x180], rax
-       mov      dword ptr [rbp-0x168], ecx
-       mov      dword ptr [rbp-0x16C], edx
-						;; size=22 bbWeight=0.50 PerfScore 1.62
+       xor      rdi, rdi
+						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M29481_IG24:
-       movzx    r13, r13b
-       mov      r8, 0xD1FFAB1E      ; code for CORINFO_HELP_BULK_WRITEBARRIER
-       lea      rdi, bword ptr [rbp-0x98]
-       lea      rsi, [rbp-0xF8]
-       mov      edx, 96
-       vzeroupper 
-       call     [r8]CORINFO_HELP_BULK_WRITEBARRIER
-       mov      gword ptr [rbp-0x98], r15
+       movzx    r8, r13b
+						;; size=4 bbWeight=1 PerfScore 0.25
+G_M29481_IG25:
+       vmovdqu32 zmm0, zmmword ptr [rbp-0xF8]
+       vmovdqu32 zmmword ptr [rbp-0x98], zmm0
+       vmovdqu  ymm0, ymmword ptr [rbp-0xB8]
+       vmovdqu  ymmword ptr [rbp-0x58], ymm0
+						;; size=33 bbWeight=1 PerfScore 9.00
+G_M29481_IG26:
+       mov      gword ptr [rbp-0x98], rdi
        mov      dword ptr [rbp-0x88], 1
-       mov      byte  ptr [rbp-0x84], r13b
-       mov      gword ptr [rbp-0x80], r14
+       mov      byte  ptr [rbp-0x84], r8b
+       mov      gword ptr [rbp-0x80], rsi
        mov      byte  ptr [rbp-0x78], 1
        mov      byte  ptr [rbp-0x50], r12b
-       mov      r12, gword ptr [rbp-0x180]
-       mov      gword ptr [rbp-0x48], r12
-       mov      r15d, dword ptr [rbp-0x168]
-       mov      dword ptr [rbp-0x40], r15d
-       mov      r15d, dword ptr [rbp-0x16C]
-       mov      dword ptr [rbp-0x3C], r15d
+       mov      gword ptr [rbp-0x48], rax
+       mov      dword ptr [rbp-0x40], ecx
+       mov      dword ptr [rbp-0x3C], edx
        test     rbx, rbx
-       je       G_M29481_IG30
-						;; size=117 bbWeight=1 PerfScore 19.00
-G_M29481_IG25:
+       je       G_M29481_IG32
+						;; size=55 bbWeight=1 PerfScore 10.25
+G_M29481_IG27:
        mov      rsi, gword ptr [rbx+0x08]
        mov      r15d, dword ptr [rsi+0x10]
        movsxd   rsi, r15d
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.Asn1.X509ExtensionAsn[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      gword ptr [rbp-0x90], rax
        xor      r14d, r14d
        test     r15d, r15d
-       jle      G_M29481_IG30
+       jle      G_M29481_IG32
 						;; size=45 bbWeight=0.50 PerfScore 4.00
-G_M29481_IG26:
+G_M29481_IG28:
        mov      r15, gword ptr [rbp-0x90]
        mov      rdi, rbx
        mov      esi, r14d
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.X509Certificates.X509ExtensionCollection:get_Item(int):System.Security.Cryptography.X509Certificates.X509Extension:this
        call     [rax]System.Security.Cryptography.X509Certificates.X509ExtensionCollection:get_Item(int):System.Security.Cryptography.X509Certificates.X509Extension:this
        test     rax, rax
-       je       G_M29481_IG37
+       je       G_M29481_IG39
        mov      rdi, gword ptr [rax+0x08]
        mov      rsi, gword ptr [rdi+0x08]
        movzx    r13, byte  ptr [rax+0x18]
        mov      r12, gword ptr [rax+0x10]
        test     r12, r12
-       je       SHORT G_M29481_IG28
+       je       SHORT G_M29481_IG30
 						;; size=56 bbWeight=4 PerfScore 61.00
-G_M29481_IG27:
+G_M29481_IG29:
        mov      eax, dword ptr [r12+0x08]
        mov      dword ptr [rbp-0x164], eax
-       jmp      SHORT G_M29481_IG29
+       jmp      SHORT G_M29481_IG31
 						;; size=13 bbWeight=2 PerfScore 10.00
-G_M29481_IG28:
+G_M29481_IG30:
        xor      r12, r12
        xor      eax, eax
        mov      dword ptr [rbp-0x164], eax
 						;; size=11 bbWeight=2 PerfScore 3.00
-G_M29481_IG29:
+G_M29481_IG31:
        cmp      r14d, dword ptr [r15+0x08]
-       jae      G_M29481_IG39
+       jae      G_M29481_IG41
        mov      rdi, r14
        shl      rdi, 5
        lea      r15, bword ptr [r15+rdi+0x10]
        mov      rdi, r15
        call     CORINFO_HELP_ASSIGN_REF
        mov      byte  ptr [r15+0x08], r13b
        lea      rdi, bword ptr [r15+0x10]
        mov      rsi, r12
        call     CORINFO_HELP_ASSIGN_REF
        xor      edi, edi
        mov      dword ptr [r15+0x18], edi
        mov      r13d, dword ptr [rbp-0x164]
        mov      dword ptr [r15+0x1C], r13d
        inc      r14d
        mov      rdi, gword ptr [rbx+0x08]
        cmp      r14d, dword ptr [rdi+0x10]
-       jl       G_M29481_IG26
+       jl       G_M29481_IG28
 						;; size=80 bbWeight=4 PerfScore 77.00
-G_M29481_IG30:
+G_M29481_IG32:
        mov      rdi, 0xD1FFAB1E      ; System.Formats.Asn1.AsnWriter
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      dword ptr [rbx+0x20], 2
        lea      rdi, [rbp-0x98]
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Pkcs.Asn1.Rfc3161TimeStampReq:Encode(System.Formats.Asn1.AsnWriter):this
        call     [rax]System.Security.Cryptography.Pkcs.Asn1.Rfc3161TimeStampReq:Encode(System.Formats.Asn1.AsnWriter):this
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
        call     [rax]System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
        test     rax, rax
-       je       SHORT G_M29481_IG32
+       je       SHORT G_M29481_IG34
 						;; size=67 bbWeight=1 PerfScore 11.25
-G_M29481_IG31:
+G_M29481_IG33:
        mov      gword ptr [rbp-0x158], rax
        xor      esi, esi
        mov      dword ptr [rbp-0x150], esi
        mov      esi, dword ptr [rax+0x08]
        mov      dword ptr [rbp-0x14C], esi
-       jmp      SHORT G_M29481_IG35
+       jmp      SHORT G_M29481_IG37
 						;; size=26 bbWeight=0.50 PerfScore 3.62
-G_M29481_IG32:
+G_M29481_IG34:
        xor      rsi, rsi
        mov      gword ptr [rbp-0x158], rsi
 						;; size=9 bbWeight=0.50 PerfScore 0.62
-G_M29481_IG33:
+G_M29481_IG35:
        mov      dword ptr [rbp-0x150], esi
 						;; size=6 bbWeight=0.50 PerfScore 0.50
-G_M29481_IG34:
+G_M29481_IG36:
        mov      dword ptr [rbp-0x14C], esi
 						;; size=6 bbWeight=0.50 PerfScore 0.50
-G_M29481_IG35:
+G_M29481_IG37:
        mov      rsi, gword ptr [rbp-0x158]
        mov      rdx, qword ptr [rbp-0x150]
        lea      rdi, [rbp-0x98]
        mov      ecx, 2
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Pkcs.Asn1.Rfc3161TimeStampReq:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.Rfc3161TimeStampReq
        call     [rax]System.Security.Cryptography.Pkcs.Asn1.Rfc3161TimeStampReq:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.Rfc3161TimeStampReq
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
        call     [rax]System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
        lea      rdi, bword ptr [r15+0x08]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r15+0x20]
        cmp      byte  ptr [rdi], dil
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_BULK_WRITEBARRIER
        lea      rsi, [rbp-0x98]
        mov      edx, 96
        vzeroupper 
        call     [rax]CORINFO_HELP_BULK_WRITEBARRIER
        mov      rax, r15
 						;; size=120 bbWeight=1 PerfScore 21.50
-G_M29481_IG36:
+G_M29481_IG38:
        vzeroupper 
-       add      rsp, 344
+       add      rsp, 328
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=21 bbWeight=1 PerfScore 5.25
-G_M29481_IG37:
+G_M29481_IG39:
        mov      edi, 0x2308
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
        call     [rax]System.ArgumentNullException:Throw(System.String)
        int3     
 						;; size=36 bbWeight=0.50 PerfScore 2.62
-G_M29481_IG38:
+G_M29481_IG40:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M29481_IG39:
+G_M29481_IG41:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1366, prolog size 108, PerfScore 353.75, instruction count 300, allocated bytes for code 1366 (MethodHash=62718cd6) for method System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest:CreateFromHash(System.ReadOnlyMemory`1[ubyte],System.Security.Cryptography.Oid,System.Security.Cryptography.Oid,System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],ubyte,System.Security.Cryptography.X509Certificates.X509ExtensionCollection):System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest (FullOpts)
+; Total bytes of code 1262, prolog size 108, PerfScore 347.75, instruction count 288, allocated bytes for code 1262 (MethodHash=62718cd6) for method System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest:CreateFromHash(System.ReadOnlyMemory`1[ubyte],System.Security.Cryptography.Oid,System.Security.Cryptography.Oid,System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],ubyte,System.Security.Cryptography.X509Certificates.X509ExtensionCollection):System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest (FullOpts)
 ; ============================================================
-20 (-2.42 % of base) - System.Text.Json.ReadStack:Push():this
 ; Assembly listing for method System.Text.Json.ReadStack:Push():this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 14 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 34, 19   )   byref  ->  rbx         this single-def
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct ( 8) zero-ref    <System.Nullable`1[int]>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
-;  V04 loc3         [V04,T29] (  3,  1.50)     int  ->  rdi        
+;  V04 loc3         [V04,T27] (  3,  1.50)     int  ->  rdi        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V06 tmp1         [V06,T05] (  3,  3   )     ref  ->  r15         class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.Text.Json.ReadStackFrame[]>
-;  V07 tmp2         [V07,T18] (  3,  3   )     int  ->  r14         "Strict ordering of exceptions for Array store"
-;  V08 tmp3         [V08,T25] (  2,  2   )  struct (112) [rbp-0x98]  do-not-enreg[S] must-init "Strict ordering of exceptions for Array store" <System.Text.Json.ReadStackFrame>
+;  V06 tmp1         [V06,T05] (  3,  3   )     ref  ->  rdi         class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.Text.Json.ReadStackFrame[]>
+;  V07 tmp2         [V07,T16] (  3,  3   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V08 tmp3         [V08,T23] (  2,  2   )  struct (112) [rbp-0x98]  do-not-enreg[S] must-init "Strict ordering of exceptions for Array store" <System.Text.Json.ReadStackFrame>
 ;  V09 tmp4         [V09,T06] (  3,  3   )     ref  ->  rdi         class-hnd single-def "dup spill" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
 ;* V10 tmp5         [V10    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V11 tmp6         [V11,T27] (  3,  1.50)     ref  ->  r15        
-;  V12 tmp7         [V12,T04] (  6,  3   )     ref  ->  r15        
-;  V13 tmp8         [V13,T07] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.Text.Json.ReadStackFrame[]>
-;  V14 tmp9         [V14,T19] (  3,  3   )     int  ->  [rbp-0x9C]  spill-single-def "Strict ordering of exceptions for Array store"
-;  V15 tmp10        [V15,T26] (  2,  2   )  struct (112) [rbp-0x110]  do-not-enreg[S] must-init "Strict ordering of exceptions for Array store" <System.Text.Json.ReadStackFrame>
+;  V11 tmp6         [V11,T25] (  3,  1.50)     ref  ->  r14        
+;  V12 tmp7         [V12,T04] (  6,  3   )     ref  ->  r14        
+;  V13 tmp8         [V13,T07] (  3,  3   )     ref  ->  rdi         class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.Text.Json.ReadStackFrame[]>
+;  V14 tmp9         [V14,T17] (  3,  3   )     int  ->  rsi         "Strict ordering of exceptions for Array store"
+;  V15 tmp10        [V15,T24] (  2,  2   )  struct (112) [rbp-0x108]  do-not-enreg[S] must-init "Strict ordering of exceptions for Array store" <System.Text.Json.ReadStackFrame>
 ;* V16 tmp11        [V16    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;  V17 tmp12        [V17,T08] (  3,  3   )   byref  ->  rdi         single-def "impAppendStmt"
 ;* V18 tmp13        [V18    ] (  0,  0   )   byref  ->  zero-ref    single-def
 ;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V20 tmp15        [V20    ] (  0,  0   )  struct ( 8) zero-ref    <System.Nullable`1[int]>
 ;* V21 tmp16        [V21    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V22 tmp17        [V22,T33] (  2,  1   )   byref  ->  rdi         single-def
+;  V22 tmp17        [V22,T31] (  2,  1   )   byref  ->  rdi         single-def
 ;* V23 tmp18        [V23    ] (  0,  0   )   byref  ->  zero-ref   
-;  V24 tmp19        [V24,T22] (  4,  2   )     int  ->  rax        
+;  V24 tmp19        [V24,T20] (  4,  2   )     int  ->  rax        
 ;  V25 tmp20        [V25,T09] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver>
 ;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref    single-def
 ;* V27 tmp22        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V28 tmp23        [V28,T02] (  4,  4   )     ref  ->  r15         class-hnd single-def "dup spill" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;  V29 tmp24        [V29,T23] (  2,  2   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonParameterInfo>
+;  V28 tmp23        [V28,T02] (  4,  4   )     ref  ->  r14         class-hnd single-def "dup spill" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;  V29 tmp24        [V29,T21] (  2,  2   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonParameterInfo>
 ;* V30 tmp25        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-;  V31 tmp26        [V31,T03] (  4,  4   )     ref  ->  r15         class-hnd single-def "dup spill" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;  V32 tmp27        [V32,T24] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <System.Text.Json.ReadStackFrame[]>
+;  V31 tmp26        [V31,T03] (  4,  4   )     ref  ->  r14         class-hnd single-def "dup spill" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
+;  V32 tmp27        [V32,T22] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <System.Text.Json.ReadStackFrame[]>
 ;  V33 tmp28        [V33,T10] (  3,  3   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-;  V34 tmp29        [V34,T28] (  3,  1.50)   byref  ->  rbx         single-def "Inline stloc first use temp"
+;  V34 tmp29        [V34,T26] (  3,  1.50)   byref  ->  rbx         single-def "Inline stloc first use temp"
 ;* V35 tmp30        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Text.Json.ArgumentState>
 ;* V36 tmp31        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;  V37 tmp32        [V37,T30] (  3,  1.50)   ubyte  ->  r14         "field V02.hasValue (fldOffset=0x0)" P-INDEP
-;  V38 tmp33        [V38,T34] (  2,  1   )     int  ->  r12         "field V02.value (fldOffset=0x4)" P-INDEP
+;  V37 tmp32        [V37,T28] (  3,  1.50)   ubyte  ->  r13         "field V02.hasValue (fldOffset=0x0)" P-INDEP
+;  V38 tmp33        [V38,T32] (  2,  1   )     int  ->  r12         "field V02.value (fldOffset=0x4)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "field V03.hasValue (fldOffset=0x0)" P-INDEP
 ;* V40 tmp35        [V40    ] (  0,  0   )     int  ->  zero-ref    "field V03.value (fldOffset=0x4)" P-INDEP
-;  V41 tmp36        [V41,T31] (  3,  1.50)   ubyte  ->  r14         "field V20.hasValue (fldOffset=0x0)" P-INDEP
-;  V42 tmp37        [V42,T32] (  3,  1.50)     int  ->  r12         "field V20.value (fldOffset=0x4)" P-INDEP
+;  V41 tmp36        [V41,T29] (  3,  1.50)   ubyte  ->  r13         "field V20.hasValue (fldOffset=0x0)" P-INDEP
+;  V42 tmp37        [V42,T30] (  3,  1.50)     int  ->  r12         "field V20.value (fldOffset=0x4)" P-INDEP
 ;  V43 tmp38        [V43,T11] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V44 tmp39        [V44,T20] (  3,  3   )     int  ->  rsi         "index expr"
-;  V45 cse0         [V45,T01] (  8,  4   )   byref  ->  [rbp-0x118]  multi-def "CSE #02: aggressive"
-;  V46 cse1         [V46,T21] (  4,  2   )     ref  ->  rsi         "CSE #01: moderate"
-;  V47 rat0         [V47,T12] (  3,  3   )   byref  ->  rsi         "ReplaceWithLclVar is creating a new local variable"
+;  V44 tmp39        [V44,T18] (  3,  3   )     int  ->  rsi         "index expr"
+;  V45 cse0         [V45,T01] (  8,  4   )   byref  ->  r15         multi-def "CSE #02: aggressive"
+;  V46 cse1         [V46,T19] (  4,  2   )     ref  ->  rsi         "CSE #01: moderate"
+;  V47 rat0         [V47,T12] (  3,  3   )   byref  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
 ;  V48 rat1         [V48,T13] (  3,  3   )   byref  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
-;  V49 rat2         [V49,T14] (  3,  3   )   byref  ->  rsi         "ReplaceWithLclVar is creating a new local variable"
-;  V50 rat3         [V50,T15] (  3,  3   )   byref  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
-;  V51 rat4         [V51,T16] (  3,  3   )   byref  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
-;  V52 rat5         [V52,T17] (  3,  3   )   byref  ->  rsi         "ReplaceWithLclVar is creating a new local variable"
+;  V49 rat2         [V49,T14] (  3,  3   )   byref  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
+;  V50 rat3         [V50,T15] (  3,  3   )   byref  ->  rsi         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 248
+; Lcl frame size = 232
 
 G_M50865_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 248
-       vzeroupper 
-       lea      rbp, [rsp+0x120]
-       vxorps   xmm8, xmm8, xmm8
-       vmovdqu32 zmmword ptr [rbp-0x110], zmm8
-       vmovdqu32 zmmword ptr [rbp-0xD0], zmm8
-       vmovdqu32 zmmword ptr [rbp-0x90], zmm8
-       vmovdqa  xmmword ptr [rbp-0x50], xmm8
-       vmovdqa  xmmword ptr [rbp-0x40], xmm8
+       sub      rsp, 232
+       lea      rbp, [rsp+0x110]
        xor      eax, eax
+       mov      qword ptr [rbp-0x108], rax
+       vxorps   xmm8, xmm8, xmm8
+       vmovdqu32 zmmword ptr [rbp-0x100], zmm8
+       vmovdqu32 zmmword ptr [rbp-0xC0], zmm8
+       vmovdqu32 zmmword ptr [rbp-0x80], zmm8
+       vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
-						;; size=82 bbWeight=1 PerfScore 19.58
+						;; size=72 bbWeight=1 PerfScore 17.58
 G_M50865_IG02:
        cmp      dword ptr [rbx+0x24], 0
-       je       G_M50865_IG05
+       je       G_M50865_IG07
 						;; size=10 bbWeight=1 PerfScore 4.00
 G_M50865_IG03:
        mov      edi, dword ptr [rbx+0x20]
        lea      esi, [rdi+0x01]
        mov      dword ptr [rbx+0x20], esi
        test     edi, edi
-       jle      G_M50865_IG04
-       mov      r15, gword ptr [rbx]
-       mov      r14d, dword ptr [rbx+0x20]
-       add      r14d, -2
-       lea      r13, bword ptr [rbx+0x30]
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_BULK_WRITEBARRIER
-       lea      rdi, bword ptr [rbp-0x98]
-       mov      rsi, r13
-       cmp      byte  ptr [rsi], sil
-       mov      edx, 112
-       call     [rax]CORINFO_HELP_BULK_WRITEBARRIER
-       cmp      r14d, dword ptr [r15+0x08]
-       jae      G_M50865_IG22
-       mov      edi, r14d
-       imul     rdi, rdi, 112
-       lea      rdi, bword ptr [r15+rdi+0x10]
+       jle      G_M50865_IG06
+       mov      rdi, gword ptr [rbx]
+       mov      esi, dword ptr [rbx+0x20]
+       add      esi, -2
+       lea      r15, bword ptr [rbx+0x30]
+						;; size=30 bbWeight=0.50 PerfScore 4.75
+G_M50865_IG04:
+       vmovdqu32 zmm0, zmmword ptr [r15]
+       vmovdqu32 zmmword ptr [rbp-0x98], zmm0
+       vmovdqu32 zmm0, zmmword ptr [r15+0x30]
+       vmovdqu32 zmmword ptr [rbp-0x68], zmm0
+						;; size=36 bbWeight=0.50 PerfScore 5.00
+G_M50865_IG05:
+       cmp      esi, dword ptr [rdi+0x08]
+       jae      G_M50865_IG26
+       mov      esi, esi
+       imul     rsi, rsi, 112
+       lea      rdi, bword ptr [rdi+rsi+0x10]
        cmp      byte  ptr [rdi], dil
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_BULK_WRITEBARRIER
        lea      rsi, [rbp-0x98]
        mov      edx, 112
+       vzeroupper 
        call     [rax]CORINFO_HELP_BULK_WRITEBARRIER
        mov      rdi, gword ptr [rbx]
        mov      esi, dword ptr [rbx+0x20]
        dec      esi
        cmp      esi, dword ptr [rdi+0x08]
-       jae      G_M50865_IG22
+       jae      G_M50865_IG26
        imul     rsi, rsi, 112
        lea      rsi, bword ptr [rdi+rsi+0x10]
        cmp      byte  ptr [rsi], sil
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_BULK_WRITEBARRIER
-       mov      rdi, r13
+       mov      rdi, r15
        cmp      byte  ptr [rdi], dil
        mov      edx, 112
+       vzeroupper 
        call     [rax]CORINFO_HELP_BULK_WRITEBARRIER
-						;; size=163 bbWeight=0.50 PerfScore 26.00
-G_M50865_IG04:
+						;; size=105 bbWeight=0.50 PerfScore 18.62
+G_M50865_IG06:
        mov      edi, dword ptr [rbx+0x24]
        cmp      edi, dword ptr [rbx+0x20]
-       jne      G_M50865_IG18
+       jne      G_M50865_IG22
        xor      edi, edi
        mov      dword ptr [rbx+0x24], edi
-       jmp      G_M50865_IG18
+       jmp      G_M50865_IG22
 						;; size=22 bbWeight=0.50 PerfScore 4.62
-G_M50865_IG05:
+G_M50865_IG07:
        cmp      dword ptr [rbx+0x20], 0
-       je       G_M50865_IG17
+       je       G_M50865_IG21
        mov      rdi, gword ptr [rbx+0x30]
        test     rdi, rdi
-       je       SHORT G_M50865_IG07
-       mov      r15, gword ptr [rdi+0x88]
-       cmp      byte  ptr [r15+0x115], 2
-       je       SHORT G_M50865_IG06
-       mov      rdi, r15
+       je       SHORT G_M50865_IG09
+       mov      r14, gword ptr [rdi+0x88]
+       cmp      byte  ptr [r14+0x115], 2
+       je       SHORT G_M50865_IG08
+       mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonTypeInfo:<EnsureConfigured>g__ConfigureSynchronized|172_0():this
        call     [rax]System.Text.Json.Serialization.Metadata.JsonTypeInfo:<EnsureConfigured>g__ConfigureSynchronized|172_0():this
 						;; size=51 bbWeight=0.50 PerfScore 8.38
-G_M50865_IG06:
-       jmp      SHORT G_M50865_IG08
-						;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M50865_IG07:
-       xor      r15, r15
-						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M50865_IG08:
-       test     r15, r15
-       jne      SHORT G_M50865_IG09
+       jmp      SHORT G_M50865_IG10
+						;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M50865_IG09:
+       xor      r14, r14
+						;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M50865_IG10:
+       test     r14, r14
+       jne      SHORT G_M50865_IG11
        mov      rdi, gword ptr [rbx+0x70]
        mov      rdi, gword ptr [rdi+0x20]
        mov      rdi, gword ptr [rdi+0x28]
-       mov      r15, gword ptr [rdi+0x88]
-       cmp      byte  ptr [r15+0x115], 2
-       je       SHORT G_M50865_IG09
-       mov      rdi, r15
+       mov      r14, gword ptr [rdi+0x88]
+       cmp      byte  ptr [r14+0x115], 2
+       je       SHORT G_M50865_IG11
+       mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonTypeInfo:<EnsureConfigured>g__ConfigureSynchronized|172_0():this
        call     [rax]System.Text.Json.Serialization.Metadata.JsonTypeInfo:<EnsureConfigured>g__ConfigureSynchronized|172_0():this
 						;; size=49 bbWeight=0.50 PerfScore 8.38
-G_M50865_IG09:
-       movzx    r14, byte  ptr [rbx+0x94]
+G_M50865_IG11:
+       movzx    r13, byte  ptr [rbx+0x94]
        mov      r12d, dword ptr [rbx+0x98]
        mov      rsi, gword ptr [rbx]
        test     rsi, rsi
-       je       SHORT G_M50865_IG10
+       je       SHORT G_M50865_IG12
        mov      edi, dword ptr [rbx+0x20]
        dec      edi
        cmp      edi, dword ptr [rsi+0x08]
-       jne      SHORT G_M50865_IG11
+       jne      SHORT G_M50865_IG13
        mov      esi, dword ptr [rsi+0x08]
        add      esi, esi
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Array:Resize[System.Text.Json.ReadStackFrame](byref,int)
        call     [rax]System.Array:Resize[System.Text.Json.ReadStackFrame](byref,int)
-       jmp      SHORT G_M50865_IG11
+       jmp      SHORT G_M50865_IG13
 						;; size=55 bbWeight=0.50 PerfScore 10.62
-G_M50865_IG10:
+G_M50865_IG12:
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.ReadStackFrame[]
        mov      esi, 4
        call     CORINFO_HELP_NEWARR_1_VC
        mov      rdi, rbx
        mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=31 bbWeight=0.50 PerfScore 1.50
-G_M50865_IG11:
-       mov      r13, gword ptr [rbx]
-       mov      eax, dword ptr [rbx+0x20]
-       dec      eax
-       mov      dword ptr [rbp-0x9C], eax
-       lea      rdi, bword ptr [rbx+0x30]
-       mov      rcx, rdi
-       mov      r8, 0xD1FFAB1E      ; code for CORINFO_HELP_BULK_WRITEBARRIER
-       lea      rdi, bword ptr [rbp-0x110]
-       mov      bword ptr [rbp-0x118], rcx
-       mov      rsi, rcx
-       cmp      byte  ptr [rsi], sil
-       mov      edx, 112
-       call     [r8]CORINFO_HELP_BULK_WRITEBARRIER
-       mov      edi, dword ptr [rbp-0x9C]
-       cmp      edi, dword ptr [r13+0x08]
-       jae      G_M50865_IG22
-       imul     rdi, rdi, 112
-       lea      rdi, bword ptr [r13+rdi+0x10]
+G_M50865_IG13:
+       mov      rdi, gword ptr [rbx]
+       mov      esi, dword ptr [rbx+0x20]
+       dec      esi
+       lea      r15, bword ptr [rbx+0x30]
+						;; size=12 bbWeight=0.50 PerfScore 2.38
+G_M50865_IG14:
+       vmovdqu32 zmm0, zmmword ptr [r15]
+       vmovdqu32 zmmword ptr [rbp-0x108], zmm0
+       vmovdqu32 zmm0, zmmword ptr [r15+0x30]
+       vmovdqu32 zmmword ptr [rbp-0xD8], zmm0
+						;; size=36 bbWeight=0.50 PerfScore 5.00
+G_M50865_IG15:
+       cmp      esi, dword ptr [rdi+0x08]
+       jae      G_M50865_IG26
+       mov      esi, esi
+       imul     rsi, rsi, 112
+       lea      rdi, bword ptr [rdi+rsi+0x10]
        cmp      byte  ptr [rdi], dil
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_BULK_WRITEBARRIER
-       lea      rsi, [rbp-0x110]
+       lea      rsi, [rbp-0x108]
        mov      edx, 112
+       vzeroupper 
        call     [rax]CORINFO_HELP_BULK_WRITEBARRIER
        xor      edi, edi
-       mov      r13, bword ptr [rbp-0x118]
-       mov      qword ptr [r13], rdi
-       mov      qword ptr [r13+0x08], rdi
-       mov      qword ptr [r13+0x10], rdi
-       mov      qword ptr [r13+0x18], rdi
-       mov      qword ptr [r13+0x20], rdi
-       mov      qword ptr [r13+0x28], rdi
-       mov      qword ptr [r13+0x30], rdi
-       mov      qword ptr [r13+0x38], rdi
-       mov      qword ptr [r13+0x40], rdi
-       mov      qword ptr [r13+0x48], rdi
+       mov      qword ptr [r15], rdi
+       mov      qword ptr [r15+0x08], rdi
+       mov      qword ptr [r15+0x10], rdi
+       mov      qword ptr [r15+0x18], rdi
+       mov      qword ptr [r15+0x20], rdi
+       mov      qword ptr [r15+0x28], rdi
+       mov      qword ptr [r15+0x30], rdi
+       mov      qword ptr [r15+0x38], rdi
+       mov      qword ptr [r15+0x40], rdi
+       mov      qword ptr [r15+0x48], rdi
        vxorps   xmm0, xmm0, xmm0
-       vmovdqu  ymmword ptr [r13+0x50], ymm0
+       vmovdqu  ymmword ptr [r15+0x50], ymm0
        inc      dword ptr [rbx+0x20]
        lea      rdi, bword ptr [rbx+0x58]
-       mov      rsi, r15
+       mov      rsi, r14
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      rsi, gword ptr [r15+0xC8]
+       mov      rsi, gword ptr [r14+0xC8]
        lea      rdi, bword ptr [rbx+0x30]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      rdi, r13
-       test     r14d, r14d
-       je       SHORT G_M50865_IG12
-       jmp      SHORT G_M50865_IG13
-						;; size=211 bbWeight=0.50 PerfScore 27.79
-G_M50865_IG12:
+       mov      rdi, r15
+       test     r13d, r13d
+       je       SHORT G_M50865_IG16
+       jmp      SHORT G_M50865_IG17
+						;; size=142 bbWeight=0.50 PerfScore 19.79
+G_M50865_IG16:
        mov      rax, gword ptr [rbx+0x30]
-       movzx    r14, byte  ptr [rax+0xC8]
+       movzx    r13, byte  ptr [rax+0xC8]
        mov      r12d, dword ptr [rax+0xCC]
 						;; size=19 bbWeight=0.50 PerfScore 3.00
-G_M50865_IG13:
-       mov      byte  ptr [rdi+0x64], r14b
+G_M50865_IG17:
+       mov      byte  ptr [rdi+0x64], r13b
        mov      dword ptr [rdi+0x68], r12d
-       mov      rdi, r13
+       mov      rdi, r15
        cmp      byte  ptr [rbx+0x29], 0
-       je       SHORT G_M50865_IG14
+       je       SHORT G_M50865_IG18
        mov      eax, 1
-       jmp      SHORT G_M50865_IG16
+       jmp      SHORT G_M50865_IG20
 						;; size=24 bbWeight=0.50 PerfScore 4.25
-G_M50865_IG14:
-       mov      rax, gword ptr [r15+0x98]
+G_M50865_IG18:
+       mov      rax, gword ptr [r14+0x98]
        test     rax, rax
-       je       SHORT G_M50865_IG15
+       je       SHORT G_M50865_IG19
        movzx    rax, byte  ptr [rax+0x34]
-       jmp      SHORT G_M50865_IG16
+       jmp      SHORT G_M50865_IG20
 						;; size=18 bbWeight=0.50 PerfScore 3.62
-G_M50865_IG15:
+G_M50865_IG19:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M50865_IG16:
+G_M50865_IG20:
        mov      byte  ptr [rdi+0x5B], al
-       jmp      SHORT G_M50865_IG18
+       jmp      SHORT G_M50865_IG22
 						;; size=5 bbWeight=0.50 PerfScore 1.50
-G_M50865_IG17:
+G_M50865_IG21:
        mov      dword ptr [rbx+0x20], 1
 						;; size=7 bbWeight=0.50 PerfScore 0.50
-G_M50865_IG18:
+G_M50865_IG22:
        mov      rdi, gword ptr [rbx+0x58]
        cmp      gword ptr [rdi+0x08], 0
-       je       SHORT G_M50865_IG20
+       je       SHORT G_M50865_IG24
 						;; size=11 bbWeight=1 PerfScore 6.00
-G_M50865_IG19:
+G_M50865_IG23:
        add      rbx, 112
        cmp      gword ptr [rbx], 0
-       jne      SHORT G_M50865_IG20
+       jne      SHORT G_M50865_IG24
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.ArgumentState
        call     CORINFO_HELP_NEWSFAST
        mov      rsi, rax
        mov      rdi, rbx
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=36 bbWeight=0.50 PerfScore 3.50
-G_M50865_IG20:
+G_M50865_IG24:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
-G_M50865_IG21:
-       add      rsp, 248
+G_M50865_IG25:
+       vzeroupper 
+       add      rsp, 232
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=1 PerfScore 4.25
-G_M50865_IG22:
+						;; size=21 bbWeight=1 PerfScore 5.25
+G_M50865_IG26:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 826, prolog size 79, PerfScore 139.00, instruction count 198, allocated bytes for code 826 (MethodHash=8233394e) for method System.Text.Json.ReadStack:Push():this (FullOpts)
+; Total bytes of code 806, prolog size 69, PerfScore 139.75, instruction count 193, allocated bytes for code 806 (MethodHash=8233394e) for method System.Text.Json.ReadStack:Push():this (FullOpts)
 ; ============================================================

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

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

@MihuBot
Copy link
Owner Author

MihuBot commented Feb 6, 2025

@EgorBo

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