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] MihaZupan/runtime/trycopyto #877

Open
MihuBot opened this issue Jan 11, 2025 · 3 comments
Open

[JitDiff X64] MihaZupan/runtime/trycopyto #877

MihuBot opened this issue Jan 11, 2025 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Jan 11, 2025

Job completed in 15 minutes 47 seconds.
https://github.com/MihaZupan/runtime/tree/trycopyto

Diffs

Diffs
Found 265 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 40205636
Total bytes of diff: 40206505
Total bytes of delta: 869 (0.00 % of base)
Total relative delta: -0.06
    diff is a regression.
    relative diff is an improvement.


Total byte diff includes 867 bytes from reconciling methods
	Base had    2 unique methods,      128 unique bytes
	Diff had   17 unique methods,      995 unique bytes

Top file regressions (bytes):
        1029 : System.Private.CoreLib.dasm (0.01 % of base)
          20 : System.Private.Uri.dasm (0.02 % of base)

Top file improvements (bytes):
         -88 : System.Security.Cryptography.dasm (-0.01 % of base)
         -64 : System.Security.Cryptography.Pkcs.dasm (-0.02 % of base)
         -28 : System.Net.Primitives.dasm (-0.03 % of base)

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

Top method regressions (bytes):
          75 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          75 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[double]:TryCopyTo(System.Span`1[double],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[int]:TryCopyTo(System.Span`1[int],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[long]:TryCopyTo(System.Span`1[long],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[System.Nullable`1[int]]:TryCopyTo(System.Span`1[System.Nullable`1[int]],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Span`1[System.Numerics.Vector`1[float]],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[double]:TryCopyTo(System.Span`1[double],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[int]:TryCopyTo(System.Span`1[int],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[long]:TryCopyTo(System.Span`1[long],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[System.Nullable`1[int]]:TryCopyTo(System.Span`1[System.Nullable`1[int]],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Span`1[System.Numerics.Vector`1[float]],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.String:TryCopyTo(System.Span`1[ushort],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[short]:TryCopyTo(System.Span`1[short],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[short]:TryCopyTo(System.Span`1[short],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          53 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[ubyte]:TryCopyTo(System.Span`1[ubyte],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          53 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[ubyte]:TryCopyTo(System.Span`1[ubyte],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          40 (6.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(ubyte,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) (2 methods)
          38 (5.43 % of base) : System.Private.Uri.dasm - System.Uri:TryUnescapeDataString(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (FullOpts)
           8 (1.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RSAOpenSsl:TryExportPrivateKey(System.Security.Cryptography.RSAOpenSsl+TryExportPrivateKeySelector,System.Span`1[ubyte],byref):ubyte:this (FullOpts)
           8 (1.79 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RSAOpenSsl:TryExportPublicKey(System.Func`2[System.ReadOnlyMemory`1[ubyte],System.ReadOnlyMemory`1[ubyte]],System.Span`1[ubyte],byref):ubyte:this (FullOpts)
           7 (8.97 % of base) : System.Private.CoreLib.dasm - System.Boolean:TryFormat(System.Span`1[ushort],byref):ubyte:this (FullOpts)

Top method improvements (bytes):
         -64 (-100.00 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Helpers:TryCopyToDestination(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) (1 base, 0 diff methods)
         -64 (-100.00 % of base) : System.Security.Cryptography.dasm - Internal.Cryptography.Helpers:TryCopyToDestination(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) (1 base, 0 diff methods)
         -13 (-4.63 % of base) : System.Private.CoreLib.dasm - System.Globalization.Normalization:TryNormalize(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,int):ubyte (FullOpts)
         -11 (-1.50 % of base) : System.Private.Uri.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (FullOpts)
         -10 (-3.95 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.DSA:TryHashData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,byref):ubyte:this (FullOpts)
         -10 (-1.76 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.DSAOpenSsl:TryCreateSignatureCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          -8 (-3.54 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.DSA:TryCreateSignatureCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          -8 (-3.62 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDsa:TrySignHashCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          -7 (-2.21 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryFormatCore[int](System.Span`1[int],byref):ubyte:this (FullOpts)
          -7 (-2.21 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryFormatCore[long](System.Span`1[long],byref):ubyte:this (FullOpts)
          -7 (-2.22 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryFormatCore[short](System.Span`1[short],byref):ubyte:this (FullOpts)
          -7 (-2.26 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryFormatCore[ubyte](System.Span`1[ubyte],byref):ubyte:this (FullOpts)
          -7 (-1.85 % of base) : System.Private.Uri.dasm - System.Uri:TryRecreateParts(System.Span`1[ushort],byref,int,ushort,int):ubyte:this (FullOpts)
          -4 (-0.74 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDsaOpenSsl:TrySignHashCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)

Top method regressions (percentages):
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[double]:TryCopyTo(System.Span`1[double],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[int]:TryCopyTo(System.Span`1[int],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[long]:TryCopyTo(System.Span`1[long],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[short]:TryCopyTo(System.Span`1[short],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          75 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[System.Nullable`1[int]]:TryCopyTo(System.Span`1[System.Nullable`1[int]],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Span`1[System.Numerics.Vector`1[float]],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          53 (Infinity of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[ubyte]:TryCopyTo(System.Span`1[ubyte],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[double]:TryCopyTo(System.Span`1[double],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[int]:TryCopyTo(System.Span`1[int],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[long]:TryCopyTo(System.Span`1[long],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[short]:TryCopyTo(System.Span`1[short],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          75 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[System.Nullable`1[int]]:TryCopyTo(System.Span`1[System.Nullable`1[int]],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Span`1[System.Numerics.Vector`1[float]],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          53 (Infinity of base) : System.Private.CoreLib.dasm - System.Span`1[ubyte]:TryCopyTo(System.Span`1[ubyte],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
          57 (Infinity of base) : System.Private.CoreLib.dasm - System.String:TryCopyTo(System.Span`1[ushort],byref):ubyte:this (FullOpts) (0 base, 1 diff methods)
           7 (8.97 % of base) : System.Private.CoreLib.dasm - System.Boolean:TryFormat(System.Span`1[ushort],byref):ubyte:this (FullOpts)
          40 (6.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(ubyte,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) (2 methods)
          38 (5.43 % of base) : System.Private.Uri.dasm - System.Uri:TryUnescapeDataString(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (FullOpts)
           8 (1.79 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RSAOpenSsl:TryExportPublicKey(System.Func`2[System.ReadOnlyMemory`1[ubyte],System.ReadOnlyMemory`1[ubyte]],System.Span`1[ubyte],byref):ubyte:this (FullOpts)
           8 (1.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RSAOpenSsl:TryExportPrivateKey(System.Security.Cryptography.RSAOpenSsl+TryExportPrivateKeySelector,System.Span`1[ubyte],byref):ubyte:this (FullOpts)

Top method improvements (percentages):
         -64 (-100.00 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Helpers:TryCopyToDestination(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) (1 base, 0 diff methods)
         -64 (-100.00 % of base) : System.Security.Cryptography.dasm - Internal.Cryptography.Helpers:TryCopyToDestination(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) (1 base, 0 diff methods)
         -13 (-4.63 % of base) : System.Private.CoreLib.dasm - System.Globalization.Normalization:TryNormalize(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,int):ubyte (FullOpts)
         -10 (-3.95 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.DSA:TryHashData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,byref):ubyte:this (FullOpts)
          -8 (-3.62 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDsa:TrySignHashCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          -8 (-3.54 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.DSA:TryCreateSignatureCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          -7 (-2.26 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryFormatCore[ubyte](System.Span`1[ubyte],byref):ubyte:this (FullOpts)
          -7 (-2.22 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryFormatCore[short](System.Span`1[short],byref):ubyte:this (FullOpts)
          -7 (-2.21 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryFormatCore[int](System.Span`1[int],byref):ubyte:this (FullOpts)
          -7 (-2.21 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryFormatCore[long](System.Span`1[long],byref):ubyte:this (FullOpts)
          -7 (-1.85 % of base) : System.Private.Uri.dasm - System.Uri:TryRecreateParts(System.Span`1[ushort],byref,int,ushort,int):ubyte:this (FullOpts)
         -10 (-1.76 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.DSAOpenSsl:TryCreateSignatureCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
         -11 (-1.50 % of base) : System.Private.Uri.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (FullOpts)
          -4 (-0.74 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDsaOpenSsl:TrySignHashCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)

36 total methods with Code Size differences (14 improved, 22 regressed), 233022 unchanged.

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

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Jan 11, 2025

Top method regressions

75 (Infinity of base) - System.ReadOnlySpan`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon],byref):ubyte:this
+; Assembly listing for method System.ReadOnlySpan`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon],byref):ubyte: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; 0 single block inlinees; 2 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 TypeCtx      [V01    ] (  0,  0   )    long  ->  zero-ref    single-def
+;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[System.__Canon]>
+;  V03 arg2         [V03,T01] (  4,  3.50)   byref  ->   r8         single-def
+;  V04 loc0         [V04,T06] (  3,  2.50)   ubyte  ->  rsi        
+;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp2         [V07    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
+;  V08 tmp3         [V08,T05] (  3,  3   )   byref  ->  rsi         single-def "Inlining Arg"
+;* V09 tmp4         [V09    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V10 tmp5         [V10,T02] (  4,  4   )    long  ->  rdx         "Inlining Arg"
+;  V11 tmp6         [V11,T03] (  3,  2   )   byref  ->  rax         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V12 tmp7         [V12,T04] (  2,  2   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;  V13 cse0         [V13,T07] (  3,  2.50)     int  ->  rdx         "CSE #01: aggressive"
+;
+; Lcl frame size = 0
+
+G_M63513_IG01:
+       push     rbp
+       mov      rbp, rsp
+       mov      rax, rdx
+						;; size=7 bbWeight=1 PerfScore 1.50
+G_M63513_IG02:
+       xor      esi, esi
+       mov      dword ptr [r8], esi
+						;; size=5 bbWeight=1 PerfScore 1.25
+G_M63513_IG03:
+       mov      edx, dword ptr [rdi+0x08]
+       cmp      edx, ecx
+       ja       SHORT G_M63513_IG07
+						;; size=7 bbWeight=1 PerfScore 3.25
+G_M63513_IG04:
+       mov      dword ptr [r8], edx
+       mov      rsi, bword ptr [rdi]
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 3
+       cmp      rdx, 0x4000
+       jbe      SHORT G_M63513_IG05
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Buffer:_BulkMoveWithWriteBarrier(byref,byref,ulong)
+       call     [rax]System.Buffer:_BulkMoveWithWriteBarrier(byref,byref,ulong)
+       jmp      SHORT G_M63513_IG06
+						;; size=39 bbWeight=0.50 PerfScore 6.12
+G_M63513_IG05:
+       mov      rdi, rax
+       call     System.Buffer:__BulkMoveWithWriteBarrier(byref,byref,ulong)
+						;; size=8 bbWeight=0.50 PerfScore 0.62
+G_M63513_IG06:
+       mov      esi, 1
+						;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M63513_IG07:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M63513_IG08:
+       pop      rbp
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
+
+; Total bytes of code 75, prolog size 4, PerfScore 14.62, instruction count 24, allocated bytes for code 75 (MethodHash=7c0e07e6) for method System.ReadOnlySpan`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon],byref):ubyte:this (FullOpts)
+; ============================================================
75 (Infinity of base) - System.Span`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon],byref):ubyte:this
+; Assembly listing for method System.Span`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon],byref):ubyte: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; 0 single block inlinees; 2 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 TypeCtx      [V01    ] (  0,  0   )    long  ->  zero-ref    single-def
+;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[System.__Canon]>
+;  V03 arg2         [V03,T01] (  4,  3.50)   byref  ->   r8         single-def
+;  V04 loc0         [V04,T06] (  3,  2.50)   ubyte  ->  rsi        
+;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V06 tmp1         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp2         [V07    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
+;  V08 tmp3         [V08,T05] (  3,  3   )   byref  ->  rsi         single-def "Inlining Arg"
+;* V09 tmp4         [V09    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V10 tmp5         [V10,T02] (  4,  4   )    long  ->  rdx         "Inlining Arg"
+;  V11 tmp6         [V11,T03] (  3,  2   )   byref  ->  rax         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V12 tmp7         [V12,T04] (  2,  2   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;  V13 cse0         [V13,T07] (  3,  2.50)     int  ->  rdx         "CSE #01: aggressive"
+;
+; Lcl frame size = 0
+
+G_M27359_IG01:
+       push     rbp
+       mov      rbp, rsp
+       mov      rax, rdx
+						;; size=7 bbWeight=1 PerfScore 1.50
+G_M27359_IG02:
+       xor      esi, esi
+       mov      dword ptr [r8], esi
+						;; size=5 bbWeight=1 PerfScore 1.25
+G_M27359_IG03:
+       mov      edx, dword ptr [rdi+0x08]
+       cmp      edx, ecx
+       ja       SHORT G_M27359_IG07
+						;; size=7 bbWeight=1 PerfScore 3.25
+G_M27359_IG04:
+       mov      dword ptr [r8], edx
+       mov      rsi, bword ptr [rdi]
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 3
+       cmp      rdx, 0x4000
+       jbe      SHORT G_M27359_IG05
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.Buffer:_BulkMoveWithWriteBarrier(byref,byref,ulong)
+       call     [rax]System.Buffer:_BulkMoveWithWriteBarrier(byref,byref,ulong)
+       jmp      SHORT G_M27359_IG06
+						;; size=39 bbWeight=0.50 PerfScore 6.12
+G_M27359_IG05:
+       mov      rdi, rax
+       call     System.Buffer:__BulkMoveWithWriteBarrier(byref,byref,ulong)
+						;; size=8 bbWeight=0.50 PerfScore 0.62
+G_M27359_IG06:
+       mov      esi, 1
+						;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M27359_IG07:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M27359_IG08:
+       pop      rbp
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
+
+; Total bytes of code 75, prolog size 4, PerfScore 14.62, instruction count 24, allocated bytes for code 75 (MethodHash=a0629520) for method System.Span`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.ReadOnlySpan`1[double]:TryCopyTo(System.Span`1[double],byref):ubyte:this
+; Assembly listing for method System.ReadOnlySpan`1[double]:TryCopyTo(System.Span`1[double],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[double]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M18585_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M18585_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M18585_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M18585_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M18585_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 3
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M18585_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M18585_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 11.88, instruction count 18, allocated bytes for code 57 (MethodHash=6517b766) for method System.ReadOnlySpan`1[double]:TryCopyTo(System.Span`1[double],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.ReadOnlySpan`1[int]:TryCopyTo(System.Span`1[int],byref):ubyte:this
+; Assembly listing for method System.ReadOnlySpan`1[int]:TryCopyTo(System.Span`1[int],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[int]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M64217_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M64217_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M64217_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M64217_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M64217_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 2
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M64217_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M64217_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 11.88, instruction count 18, allocated bytes for code 57 (MethodHash=06100526) for method System.ReadOnlySpan`1[int]:TryCopyTo(System.Span`1[int],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.ReadOnlySpan`1[long]:TryCopyTo(System.Span`1[long],byref):ubyte:this
+; Assembly listing for method System.ReadOnlySpan`1[long]:TryCopyTo(System.Span`1[long],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[long]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M16025_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M16025_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M16025_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M16025_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M16025_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 3
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M16025_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M16025_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 11.88, instruction count 18, allocated bytes for code 57 (MethodHash=a231c166) for method System.ReadOnlySpan`1[long]:TryCopyTo(System.Span`1[long],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.ReadOnlySpan`1[System.Nullable`1[int]]:TryCopyTo(System.Span`1[System.Nullable`1[int]],byref):ubyte:this
+; Assembly listing for method System.ReadOnlySpan`1[System.Nullable`1[int]]:TryCopyTo(System.Span`1[System.Nullable`1[int]],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[System.Nullable`1[int]]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M26649_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M26649_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M26649_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M26649_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M26649_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 3
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M26649_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M26649_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 11.88, instruction count 18, allocated bytes for code 57 (MethodHash=4cc397e6) for method System.ReadOnlySpan`1[System.Nullable`1[int]]:TryCopyTo(System.Span`1[System.Nullable`1[int]],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Span`1[System.Numerics.Vector`1[float]],byref):ubyte:this
+; Assembly listing for method System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Span`1[System.Numerics.Vector`1[float]],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[System.Numerics.Vector`1[float]]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M44057_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M44057_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M44057_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M44057_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M44057_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 5
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M44057_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M44057_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 11.88, instruction count 18, allocated bytes for code 57 (MethodHash=d5e253e6) for method System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Span`1[System.Numerics.Vector`1[float]],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.Span`1[double]:TryCopyTo(System.Span`1[double],byref):ubyte:this
+; Assembly listing for method System.Span`1[double]:TryCopyTo(System.Span`1[double],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[double]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M7519_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M7519_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M7519_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M7519_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M7519_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 3
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M7519_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M7519_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 11.88, instruction count 18, allocated bytes for code 57 (MethodHash=bc8ae2a0) for method System.Span`1[double]:TryCopyTo(System.Span`1[double],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.Span`1[int]:TryCopyTo(System.Span`1[int],byref):ubyte:this
+; Assembly listing for method System.Span`1[int]:TryCopyTo(System.Span`1[int],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[int]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M17055_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M17055_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M17055_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M17055_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M17055_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 2
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M17055_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M17055_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 11.88, instruction count 18, allocated bytes for code 57 (MethodHash=62cdbd60) for method System.Span`1[int]:TryCopyTo(System.Span`1[int],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.Span`1[long]:TryCopyTo(System.Span`1[long],byref):ubyte:this
+; Assembly listing for method System.Span`1[long]:TryCopyTo(System.Span`1[long],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[long]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M6495_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M6495_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M6495_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M6495_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M6495_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 3
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M6495_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M6495_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 11.88, instruction count 18, allocated bytes for code 57 (MethodHash=51bfe6a0) for method System.Span`1[long]:TryCopyTo(System.Span`1[long],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.Span`1[System.Nullable`1[int]]:TryCopyTo(System.Span`1[System.Nullable`1[int]],byref):ubyte:this
+; Assembly listing for method System.Span`1[System.Nullable`1[int]]:TryCopyTo(System.Span`1[System.Nullable`1[int]],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[System.Nullable`1[int]]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M223_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M223_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M223_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M223_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M223_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 3
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M223_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M223_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 11.88, instruction count 18, allocated bytes for code 57 (MethodHash=ddaaff20) for method System.Span`1[System.Nullable`1[int]]:TryCopyTo(System.Span`1[System.Nullable`1[int]],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.Span`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Span`1[System.Numerics.Vector`1[float]],byref):ubyte:this
+; Assembly listing for method System.Span`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Span`1[System.Numerics.Vector`1[float]],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[System.Numerics.Vector`1[float]]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M14943_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M14943_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M14943_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M14943_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M14943_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       shl      rdx, 5
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 4.62
+G_M14943_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M14943_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 11.88, instruction count 18, allocated bytes for code 57 (MethodHash=ec82c5a0) for method System.Span`1[System.Numerics.Vector`1[float]]:TryCopyTo(System.Span`1[System.Numerics.Vector`1[float]],byref):ubyte:this (FullOpts)
+; ============================================================
57 (Infinity of base) - System.String:TryCopyTo(System.Span`1[ushort],byref):ubyte:this
+; Assembly listing for method System.String:TryCopyTo(System.Span`1[ushort],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rdi         this class-hnd single-def <System.String>
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T05] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T04] (  4,  3   )     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M54102_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M54102_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M54102_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       jg       SHORT G_M54102_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M54102_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, r8d
+       add      rdx, rdx
+       lea      rsi, bword ptr [rdi+0x0C]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=33 bbWeight=0.50 PerfScore 2.88
+G_M54102_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M54102_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 57, prolog size 1, PerfScore 10.12, instruction count 18, allocated bytes for code 57 (MethodHash=7b5f2ca9) for method System.String:TryCopyTo(System.Span`1[ushort],byref):ubyte:this (FullOpts)
+; ============================================================
56 (Infinity of base) - System.ReadOnlySpan`1[short]:TryCopyTo(System.Span`1[short],byref):ubyte:this
+; Assembly listing for method System.ReadOnlySpan`1[short]:TryCopyTo(System.Span`1[short],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[short]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M58105_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M58105_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M58105_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M58105_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M58105_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       add      rdx, rdx
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=32 bbWeight=0.50 PerfScore 4.50
+G_M58105_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M58105_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 56, prolog size 1, PerfScore 11.75, instruction count 18, allocated bytes for code 56 (MethodHash=7f4a1d06) for method System.ReadOnlySpan`1[short]:TryCopyTo(System.Span`1[short],byref):ubyte:this (FullOpts)
+; ============================================================
56 (Infinity of base) - System.Span`1[short]:TryCopyTo(System.Span`1[short],byref):ubyte:this
+; Assembly listing for method System.Span`1[short]:TryCopyTo(System.Span`1[short],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[short]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M47295_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M47295_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M47295_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M47295_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M47295_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       add      rdx, rdx
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=32 bbWeight=0.50 PerfScore 4.50
+G_M47295_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M47295_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 56, prolog size 1, PerfScore 11.75, instruction count 18, allocated bytes for code 56 (MethodHash=ef7a4740) for method System.Span`1[short]:TryCopyTo(System.Span`1[short],byref):ubyte:this (FullOpts)
+; ============================================================
53 (Infinity of base) - System.ReadOnlySpan`1[ubyte]:TryCopyTo(System.Span`1[ubyte],byref):ubyte:this
+; Assembly listing for method System.ReadOnlySpan`1[ubyte]:TryCopyTo(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M24409_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M24409_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M24409_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M24409_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M24409_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=29 bbWeight=0.50 PerfScore 4.38
+G_M24409_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M24409_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 53, prolog size 1, PerfScore 11.62, instruction count 17, allocated bytes for code 53 (MethodHash=7eb0a0a6) for method System.ReadOnlySpan`1[ubyte]:TryCopyTo(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
+; ============================================================
53 (Infinity of base) - System.Span`1[ubyte]:TryCopyTo(System.Span`1[ubyte],byref):ubyte:this
+; Assembly listing for method System.Span`1[ubyte]:TryCopyTo(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
+; Emitting BLENDED_CODE for X64 with AVX512 - Unix
+; FullOpts code
+; optimized code
+; rsp based frame
+; partially interruptible
+; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
+; Final local variable assignments
+;
+;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
+;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
+;  V02 arg2         [V02,T01] (  4,  3.50)   byref  ->  rcx         single-def
+;  V03 loc0         [V03,T04] (  3,  2.50)   ubyte  ->  rsi        
+;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V07 tmp3         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V08 tmp4         [V08,T03] (  2,  1.50)   byref  ->  rax         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V10 cse0         [V10,T05] (  3,  2.50)     int  ->   r8         "CSE #01: aggressive"
+;
+; Lcl frame size = 8
+
+G_M6431_IG01:
+       push     rax
+       mov      rax, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M6431_IG02:
+       xor      esi, esi
+       mov      dword ptr [rcx], esi
+						;; size=4 bbWeight=1 PerfScore 1.25
+G_M6431_IG03:
+       mov      r8d, dword ptr [rdi+0x08]
+       cmp      r8d, edx
+       ja       SHORT G_M6431_IG05
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M6431_IG04:
+       mov      dword ptr [rcx], r8d
+       mov      edx, dword ptr [rdi+0x08]
+       mov      rsi, bword ptr [rdi]
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+       mov      esi, 1
+						;; size=29 bbWeight=0.50 PerfScore 4.38
+G_M6431_IG05:
+       mov      eax, esi
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M6431_IG06:
+       add      rsp, 8
+       ret      
+						;; size=5 bbWeight=1 PerfScore 1.25
+
+; Total bytes of code 53, prolog size 1, PerfScore 11.62, instruction count 17, allocated bytes for code 53 (MethodHash=f4f6e6e0) for method System.Span`1[ubyte]:TryCopyTo(System.Span`1[ubyte],byref):ubyte: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/e9f298861df8eb724d747c40268be83c

@MihuBot
Copy link
Owner Author

MihuBot commented Jan 11, 2025

Top method improvements

-64 (-100.00 % of base) - Internal.Cryptography.Helpers:TryCopyToDestination(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
-; Assembly listing for method Internal.Cryptography.Helpers:TryCopyToDestination(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
-; Emitting BLENDED_CODE for X64 with AVX512 - Unix
-; FullOpts code
-; optimized code
-; rsp based frame
-; partially interruptible
-; No PGO data
-; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
-; Final local variable assignments
-;
-;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
-;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T00] (  4,  3   )   byref  ->  rbx         single-def
-;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V06 tmp3         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V09 tmp6         [V09,T03] (  2,  1.50)   byref  ->  rsi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp7         [V10,T01] (  4,  3   )     int  ->  r15         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V11 tmp8         [V11,T04] (  2,  1.50)   byref  ->  rdi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V12 tmp9         [V12,T02] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;* V13 tmp10        [V13    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;
-; Lcl frame size = 8
-
-G_M52817_IG01:
-       push     r15
-       push     rbx
-       push     rax
-       mov      r15d, esi
-       mov      rsi, rdi
-       mov      rdi, rdx
-       mov      rbx, r8
-						;; size=16 bbWeight=1 PerfScore 4.00
-G_M52817_IG02:
-       cmp      r15d, ecx
-       jle      SHORT G_M52817_IG05
-						;; size=5 bbWeight=1 PerfScore 1.25
-G_M52817_IG03:
-       xor      eax, eax
-       mov      dword ptr [rbx], eax
-						;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M52817_IG04:
-       add      rsp, 8
-       pop      rbx
-       pop      r15
-       ret      
-						;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M52817_IG05:
-       mov      edx, r15d
-       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
-       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       mov      dword ptr [rbx], r15d
-       mov      eax, 1
-						;; size=23 bbWeight=0.50 PerfScore 2.38
-G_M52817_IG06:
-       add      rsp, 8
-       pop      rbx
-       pop      r15
-       ret      
-						;; size=8 bbWeight=0.50 PerfScore 1.12
-
-; Total bytes of code 64, prolog size 4, PerfScore 10.50, instruction count 24, allocated bytes for code 64 (MethodHash=18a931ae) for method Internal.Cryptography.Helpers:TryCopyToDestination(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
-; ============================================================
-64 (-100.00 % of base) - Internal.Cryptography.Helpers:TryCopyToDestination(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
-; Assembly listing for method Internal.Cryptography.Helpers:TryCopyToDestination(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
-; Emitting BLENDED_CODE for X64 with AVX512 - Unix
-; FullOpts code
-; optimized code
-; rsp based frame
-; partially interruptible
-; No PGO data
-; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
-; Final local variable assignments
-;
-;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
-;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T00] (  4,  3   )   byref  ->  rbx         single-def
-;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V04 tmp1         [V04,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V06 tmp3         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V09 tmp6         [V09,T03] (  2,  1.50)   byref  ->  rsi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp7         [V10,T01] (  4,  3   )     int  ->  r15         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V11 tmp8         [V11,T04] (  2,  1.50)   byref  ->  rdi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V12 tmp9         [V12,T02] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;* V13 tmp10        [V13    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;
-; Lcl frame size = 8
-
-G_M52817_IG01:
-       push     r15
-       push     rbx
-       push     rax
-       mov      r15d, esi
-       mov      rsi, rdi
-       mov      rdi, rdx
-       mov      rbx, r8
-						;; size=16 bbWeight=1 PerfScore 4.00
-G_M52817_IG02:
-       cmp      r15d, ecx
-       jle      SHORT G_M52817_IG05
-						;; size=5 bbWeight=1 PerfScore 1.25
-G_M52817_IG03:
-       xor      eax, eax
-       mov      dword ptr [rbx], eax
-						;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M52817_IG04:
-       add      rsp, 8
-       pop      rbx
-       pop      r15
-       ret      
-						;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M52817_IG05:
-       mov      edx, r15d
-       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
-       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       mov      dword ptr [rbx], r15d
-       mov      eax, 1
-						;; size=23 bbWeight=0.50 PerfScore 2.38
-G_M52817_IG06:
-       add      rsp, 8
-       pop      rbx
-       pop      r15
-       ret      
-						;; size=8 bbWeight=0.50 PerfScore 1.12
-
-; Total bytes of code 64, prolog size 4, PerfScore 10.50, instruction count 24, allocated bytes for code 64 (MethodHash=18a931ae) for method Internal.Cryptography.Helpers:TryCopyToDestination(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
-; ============================================================
-13 (-4.63 % of base) - System.Globalization.Normalization:TryNormalize(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,int):ubyte
 ; Assembly listing for method System.Globalization.Normalization:TryNormalize(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,int):ubyte (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; 4 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ushort]>
 ;  V02 arg2         [V02,T02] (  5,  3.50)   byref  ->  r14         single-def
 ;  V03 arg3         [V03,T00] (  5,  4.50)     int  ->  rbx         single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T07] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V08 tmp4         [V08,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V08 tmp4         [V08,T06] (  3,  1.50)   ubyte  ->  rax         "Inline stloc first use temp"
 ;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V10 tmp6         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp7         [V11    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp8         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V13 tmp9         [V13,T03] (  4,  3   )   byref  ->  r13         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
 ;  V14 tmp10        [V14,T01] (  6,  4   )     int  ->  r15         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;  V15 tmp11        [V15,T04] (  3,  2   )   byref  ->  r12         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
 ;  V16 tmp12        [V16,T05] (  3,  2   )     int  ->  [rbp-0x2C]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp14        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V19 tmp15        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;  V23 tmp19        [V23,T08] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
 ;  V24 tmp20        [V24,T09] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 8
 
 G_M3440_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
        mov      dword ptr [rbp-0x2C], ecx
        mov      r13, rdi
        mov      r15d, esi
        mov      r12, rdx
        mov      r14, r8
        mov      ebx, r9d
 						;; size=34 bbWeight=1 PerfScore 9.75
 G_M3440_IG02:
        cmp      ebx, 6
-       ja       G_M3440_IG09
+       ja       G_M3440_IG08
        mov      edi, 25
        bt       edi, ebx
-       jb       G_M3440_IG09
+       jb       G_M3440_IG08
        mov      rdi, r13
        mov      esi, r15d
        mov      rcx, 0xD1FFAB1E      ; code for System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte
        call     [rcx]System.Text.Ascii:IsValidCore[ushort](byref,int):ubyte
        test     eax, eax
        jne      SHORT G_M3440_IG05
 						;; size=45 bbWeight=1 PerfScore 8.00
 G_M3440_IG03:
        mov      rdi, r13
        mov      esi, r15d
        mov      rdx, r12
        mov      ecx, dword ptr [rbp-0x2C]
        mov      r8, r14
        mov      r9d, ebx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.Normalization:IcuTryNormalize(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,int):ubyte
        call     [rax]System.Globalization.Normalization:IcuTryNormalize(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,int):ubyte
        nop      
 						;; size=31 bbWeight=0.50 PerfScore 2.88
 G_M3440_IG04:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M3440_IG05:
-       cmp      r15d, dword ptr [rbp-0x2C]
-       jle      SHORT G_M3440_IG07
-       xor      eax, eax
-       mov      dword ptr [r14], eax
-						;; size=11 bbWeight=0.50 PerfScore 2.12
+       xor      edx, edx
+       mov      dword ptr [r14], edx
+						;; size=5 bbWeight=0.50 PerfScore 0.62
 G_M3440_IG06:
-       add      rsp, 8
-       pop      rbx
-       pop      r12
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M3440_IG07:
+       xor      eax, eax
+       cmp      r15d, dword ptr [rbp-0x2C]
+       jg       SHORT G_M3440_IG07
+       mov      dword ptr [r14], r15d
        mov      edx, r15d
        add      rdx, rdx
        mov      rdi, r12
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       mov      dword ptr [r14], r15d
        mov      eax, 1
-						;; size=32 bbWeight=0.50 PerfScore 2.75
-G_M3440_IG08:
+						;; size=40 bbWeight=0.50 PerfScore 4.38
+G_M3440_IG07:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M3440_IG09:
+G_M3440_IG08:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Argument_InvalidNormalizationForm():System.String
        call     [rax]System.SR:get_Argument_InvalidNormalizationForm():System.String
        mov      r15, rax
        mov      edi, 0x16AE0
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 281, prolog size 16, PerfScore 31.88, instruction count 87, allocated bytes for code 281 (MethodHash=d7aaf28f) for method System.Globalization.Normalization:TryNormalize(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,int):ubyte (FullOpts)
+; Total bytes of code 268, prolog size 16, PerfScore 29.88, instruction count 80, allocated bytes for code 268 (MethodHash=d7aaf28f) for method System.Globalization.Normalization:TryNormalize(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,int):ubyte (FullOpts)
 ; ============================================================
-10 (-3.95 % of base) - System.Security.Cryptography.DSA:TryHashData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,byref):ubyte:this
 ; Assembly listing for method System.Security.Cryptography.DSA:TryHashData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,byref):ubyte: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; 2 single block inlinees; 5 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rbx         this class-hnd single-def <System.Security.Cryptography.DSA>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Security.Cryptography.HashAlgorithmName>
 ;  V04 arg4         [V04,T08] (  4,  2   )   byref  ->  [rbp+0x10]  single-def
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V07 tmp2         [V07,T10] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
-;* V08 tmp3         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
-;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V11 tmp6         [V11,T03] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V12 tmp7         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V13 tmp8         [V13,T11] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
-;* V14 tmp9         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V15 tmp10        [V15,T12] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V16 tmp11        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V17 tmp12        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V18 tmp13        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V19 tmp14        [V19    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V20 tmp15        [V20,T04] (  3,  2   )   byref  ->  r13         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V21 tmp16        [V21,T06] (  3,  2   )     int  ->  [rbp-0x2C]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp17        [V22,T05] (  3,  2   )   byref  ->  r12         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V23 tmp18        [V23,T02] (  4,  2.50)     int  ->  r14         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;  V24 tmp19        [V24,T01] (  4,  2.50)     ref  ->  r15         single-def "field V03._name (fldOffset=0x0)" P-INDEP
-;* V25 tmp20        [V25    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V26 tmp21        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;* V27 tmp22        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._name (fldOffset=0x0)" P-INDEP
-;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V29 tmp24        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp25        [V30,T09] (  3,  1.50)   byref  ->  rsi         "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31,T07] (  5,  2.50)     int  ->  r15         "field V12._length (fldOffset=0x8)" P-INDEP
-;* V32 tmp27        [V32    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;* V33 tmp28        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
-;* V34 tmp29        [V34    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;* V35 tmp30        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
+;* V05 loc0         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ubyte]>
+;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V07 tmp1         [V07,T10] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;* V08 tmp2         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Security.Cryptography.HashAlgorithmName>
+;* V09 tmp3         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V10 tmp4         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;  V11 tmp5         [V11,T03] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V12 tmp6         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V13 tmp7         [V13,T11] (  3,  1.50)   ubyte  ->  rax         "Inline stloc first use temp"
+;* V14 tmp8         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V15 tmp9         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V16 tmp10        [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V17 tmp11        [V17    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V18 tmp12        [V18,T04] (  3,  2   )   byref  ->  r13         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp13        [V19,T06] (  3,  2   )     int  ->  [rbp-0x2C]  single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V20 tmp14        [V20,T05] (  3,  2   )   byref  ->  r12         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V21 tmp15        [V21,T02] (  4,  2.50)     int  ->  r14         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;  V22 tmp16        [V22,T01] (  4,  2.50)     ref  ->  r15         single-def "field V03._name (fldOffset=0x0)" P-INDEP
+;* V23 tmp17        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp18        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;* V25 tmp19        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._name (fldOffset=0x0)" P-INDEP
+;* V26 tmp20        [V26    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V27 tmp21        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
+;  V28 tmp22        [V28,T09] (  3,  1.50)   byref  ->  rsi         "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V29 tmp23        [V29,T07] (  5,  2.50)     int  ->  rdx         "field V12._length (fldOffset=0x8)" P-INDEP
+;* V30 tmp24        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V31 tmp25        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 8
 
 G_M43209_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
        mov      dword ptr [rbp-0x2C], edx
        mov      rbx, rdi
        mov      r13, rsi
        mov      r12, rcx
        mov      r14d, r8d
        mov      r15, r9
 						;; size=34 bbWeight=1 PerfScore 9.75
 G_M43209_IG02:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Security.Cryptography.IRuntimeAlgorithm
        mov      rdx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
        call     [rdx]CORINFO_HELP_ISINSTANCEOFINTERFACE
        test     rax, rax
-       jne      SHORT G_M43209_IG09
+       jne      SHORT G_M43209_IG08
 						;; size=30 bbWeight=1 PerfScore 5.00
 G_M43209_IG03:
        mov      rsi, r13
        mov      edx, dword ptr [rbp-0x2C]
        mov      rdi, rbx
        mov      rcx, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.DSA:HashSpanToArray(System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.HashAlgorithmName):ubyte[]:this
        call     [rax]System.Security.Cryptography.DSA:HashSpanToArray(System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.HashAlgorithmName):ubyte[]:this
        test     rax, rax
        je       SHORT G_M43209_IG04
        lea      rsi, bword ptr [rax+0x10]
-       mov      r15d, dword ptr [rax+0x08]
+       mov      edx, dword ptr [rax+0x08]
        jmp      SHORT G_M43209_IG05
-						;; size=39 bbWeight=0.50 PerfScore 5.38
+						;; size=38 bbWeight=0.50 PerfScore 5.38
 G_M43209_IG04:
        xor      rsi, rsi
-       xor      r15d, r15d
-						;; size=5 bbWeight=0.50 PerfScore 0.25
-G_M43209_IG05:
-       cmp      r15d, r14d
-       jle      SHORT G_M43209_IG07
        xor      edx, edx
+						;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M43209_IG05:
+       xor      edi, edi
        mov      rbx, bword ptr [rbp+0x10]
-       mov      dword ptr [rbx], edx
-						;; size=13 bbWeight=0.50 PerfScore 1.75
+       mov      dword ptr [rbx], edi
+						;; size=8 bbWeight=0.50 PerfScore 1.12
 G_M43209_IG06:
        xor      eax, eax
-       jmp      SHORT G_M43209_IG08
-						;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M43209_IG07:
-       mov      edx, r15d
+       cmp      edx, r14d
+       jg       SHORT G_M43209_IG07
+       mov      dword ptr [rbx], edx
+       mov      edx, edx
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       mov      rbx, bword ptr [rbp+0x10]
-       mov      dword ptr [rbx], r15d
        mov      eax, 1
-						;; size=30 bbWeight=0.50 PerfScore 3.00
-G_M43209_IG08:
+						;; size=31 bbWeight=0.50 PerfScore 3.25
+G_M43209_IG07:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M43209_IG09:
+G_M43209_IG08:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.CryptographicOperations:CheckHashAndGetLength(System.Security.Cryptography.HashAlgorithmName):int
        call     [rax]System.Security.Cryptography.CryptographicOperations:CheckHashAndGetLength(System.Security.Cryptography.HashAlgorithmName):int
        cmp      eax, r14d
-       jg       SHORT G_M43209_IG10
+       jg       SHORT G_M43209_IG09
        mov      rcx, r12
        mov      r8d, r14d
        mov      rsi, r13
        mov      edx, dword ptr [rbp-0x2C]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.HashProviderDispenser+OneShotHashProvider:HashData(System.String,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int
        call     [rax]System.Security.Cryptography.HashProviderDispenser+OneShotHashProvider:HashData(System.String,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int
        mov      rbx, bword ptr [rbp+0x10]
        mov      dword ptr [rbx], eax
        mov      eax, 1
-       jmp      SHORT G_M43209_IG11
+       jmp      SHORT G_M43209_IG10
 						;; size=60 bbWeight=0.50 PerfScore 7.12
-G_M43209_IG10:
+G_M43209_IG09:
        xor      eax, eax
        mov      rbx, bword ptr [rbp+0x10]
        mov      dword ptr [rbx], eax
 						;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M43209_IG11:
+G_M43209_IG10:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 
-; Total bytes of code 253, prolog size 16, PerfScore 38.75, instruction count 82, allocated bytes for code 253 (MethodHash=79ec5736) for method System.Security.Cryptography.DSA:TryHashData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,byref):ubyte:this (FullOpts)
+; Total bytes of code 243, prolog size 16, PerfScore 37.25, instruction count 80, allocated bytes for code 243 (MethodHash=79ec5736) for method System.Security.Cryptography.DSA:TryHashData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,byref):ubyte:this (FullOpts)
 ; ============================================================
-8 (-3.54 % of base) - System.Security.Cryptography.DSA:TryCreateSignatureCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this
 ; Assembly listing for method System.Security.Cryptography.DSA:TryCreateSignatureCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte: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; 2 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Security.Cryptography.DSA>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
 ;  V03 arg3         [V03,T01] (  4,  3.50)     int  ->  r15         single-def
-;  V04 arg4         [V04,T12] (  2,  1   )   byref  ->  [rbp+0x10]  single-def
+;  V04 arg4         [V04,T12] (  2,  1.50)   byref  ->  [rbp+0x10]  single-def
 ;  V05 loc0         [V05,T03] (  6,  4   )     ref  ->  rax         class-hnd <ubyte[]>
-;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1         [V07    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V08 tmp2         [V08,T09] (  3,  2   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <ubyte[]>
-;  V09 tmp3         [V09,T08] (  3,  3   )     ref  ->  [rbp-0x30]  class-hnd exact spill-single-def "NewArr temp" <ubyte[]>
-;* V10 tmp4         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V11 tmp5         [V11    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V12 tmp6         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V13 tmp7         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V14 tmp8         [V14,T10] (  3,  2   )   ubyte  ->  rax         "Inline return value spill temp"
-;* V15 tmp9         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V16 tmp10        [V16,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V17 tmp11        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V18 tmp12        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V19 tmp13        [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V20 tmp14        [V20    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V21 tmp15        [V21,T05] (  2,  1.50)   byref  ->  r12         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V22 tmp16        [V22,T02] (  4,  3   )     int  ->  r14         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp17        [V23,T06] (  2,  1.50)   byref  ->  [rbp-0x38]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V24 tmp18        [V24,T04] (  2,  2   )     int  ->  r13         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V25 tmp19        [V25    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V26 tmp20        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
-;  V27 tmp21        [V27,T11] (  3,  1.50)   byref  ->  rsi         "field V13._reference (fldOffset=0x0)" P-INDEP
-;  V28 tmp22        [V28,T07] (  5,  3   )     int  ->  rbx         "field V13._length (fldOffset=0x8)" P-INDEP
-;* V29 tmp23        [V29    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V30 tmp24        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
-;* V31 tmp25        [V31    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp26        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
+;* V06 loc1         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ubyte]>
+;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V08 tmp1         [V08,T10] (  3,  2   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <ubyte[]>
+;  V09 tmp2         [V09,T08] (  3,  3   )     ref  ->  [rbp-0x30]  class-hnd exact spill-single-def "NewArr temp" <ubyte[]>
+;* V10 tmp3         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V11 tmp4         [V11    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V12 tmp5         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp6         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V14 tmp7         [V14,T09] (  3,  2.50)   ubyte  ->  rax         "Inline stloc first use temp"
+;* V15 tmp8         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V16 tmp9         [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V17 tmp10        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V18 tmp11        [V18    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V19 tmp12        [V19,T05] (  2,  1.50)   byref  ->  r12         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V20 tmp13        [V20,T02] (  4,  3   )     int  ->  r14         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V21 tmp14        [V21,T06] (  2,  1.50)   byref  ->  [rbp-0x38]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp15        [V22,T04] (  2,  2   )     int  ->  r13         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp16        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp17        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp18        [V25,T11] (  3,  1.50)   byref  ->  rsi         "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V26 tmp19        [V26,T07] (  5,  3   )     int  ->  rdx         "field V13._length (fldOffset=0x8)" P-INDEP
+;* V27 tmp20        [V27    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V28 tmp21        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 24
 
 G_M34802_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 24
        lea      rbp, [rsp+0x40]
        mov      bword ptr [rbp-0x38], rcx
        mov      rbx, rdi
        mov      r12, rsi
        mov      r14d, edx
        mov      r13d, r8d
        mov      r15d, r9d
 						;; size=38 bbWeight=1 PerfScore 9.00
 G_M34802_IG02:
        test     r14d, r14d
        je       SHORT G_M34802_IG04
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M34802_IG03:
        mov      esi, r14d
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      rsi, rax
        mov      gword ptr [rbp-0x30], rsi
        mov      edx, r14d
        lea      rdi, bword ptr [rsi+0x10]
        mov      rsi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      r14, gword ptr [rbp-0x30]
        mov      rsi, r14
        jmp      SHORT G_M34802_IG05
 						;; size=56 bbWeight=0.50 PerfScore 5.12
 G_M34802_IG04:
        mov      rsi, 0xD1FFAB1E      ; 'System.Byte[]'
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M34802_IG05:
        mov      rdi, rbx
-       mov      rcx, qword ptr [rbx]
-       mov      rcx, qword ptr [rcx+0x58]
-       call     [rcx+0x30]System.Security.Cryptography.DSA:CreateSignature(ubyte[]):ubyte[]:this
+       mov      rdx, qword ptr [rbx]
+       mov      rdx, qword ptr [rdx+0x58]
+       call     [rdx+0x30]System.Security.Cryptography.DSA:CreateSignature(ubyte[]):ubyte[]:this
        test     r15d, r15d
        je       SHORT G_M34802_IG07
 						;; size=18 bbWeight=1 PerfScore 8.50
 G_M34802_IG06:
        mov      rdi, rax
        mov      esi, r15d
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.AsymmetricAlgorithmHelpers:ConvertFromIeeeP1363Signature(ubyte[],int):ubyte[]
        call     [rax]System.Security.Cryptography.AsymmetricAlgorithmHelpers:ConvertFromIeeeP1363Signature(ubyte[],int):ubyte[]
 						;; size=18 bbWeight=0.50 PerfScore 1.88
 G_M34802_IG07:
        test     rax, rax
        je       SHORT G_M34802_IG09
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M34802_IG08:
        lea      rsi, bword ptr [rax+0x10]
-       mov      ebx, dword ptr [rax+0x08]
+       mov      edx, dword ptr [rax+0x08]
        jmp      SHORT G_M34802_IG10
 						;; size=9 bbWeight=0.50 PerfScore 2.25
 G_M34802_IG09:
        xor      rsi, rsi
-       xor      ebx, ebx
+       xor      edx, edx
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M34802_IG10:
-       cmp      ebx, r13d
-       jle      SHORT G_M34802_IG13
-						;; size=5 bbWeight=1 PerfScore 1.25
+       xor      edi, edi
+       mov      rbx, bword ptr [rbp+0x10]
+       mov      dword ptr [rbx], edi
+						;; size=8 bbWeight=1 PerfScore 2.25
 G_M34802_IG11:
-       xor      edx, edx
-       mov      r15, bword ptr [rbp+0x10]
-       mov      dword ptr [r15], edx
-						;; size=9 bbWeight=0.50 PerfScore 1.12
-G_M34802_IG12:
        xor      eax, eax
-       jmp      SHORT G_M34802_IG14
-						;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M34802_IG13:
-       mov      edx, ebx
+       cmp      edx, r13d
+       jg       SHORT G_M34802_IG13
+						;; size=7 bbWeight=1 PerfScore 1.50
+G_M34802_IG12:
+       mov      dword ptr [rbx], edx
+       mov      edx, edx
        mov      rdi, bword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       mov      r15, bword ptr [rbp+0x10]
-       mov      dword ptr [r15], ebx
        mov      eax, 1
-						;; size=30 bbWeight=0.50 PerfScore 3.38
-G_M34802_IG14:
+						;; size=25 bbWeight=0.50 PerfScore 2.88
+G_M34802_IG13:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 226, prolog size 19, PerfScore 40.75, instruction count 69, allocated bytes for code 226 (MethodHash=a27a780d) for method System.Security.Cryptography.DSA:TryCreateSignatureCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
+; Total bytes of code 218, prolog size 19, PerfScore 40.50, instruction count 67, allocated bytes for code 218 (MethodHash=a27a780d) for method System.Security.Cryptography.DSA:TryCreateSignatureCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
 ; ============================================================
-8 (-3.62 % of base) - System.Security.Cryptography.ECDsa:TrySignHashCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this
 ; Assembly listing for method System.Security.Cryptography.ECDsa:TrySignHashCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte: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; 2 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Security.Cryptography.ECDsa>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
 ;  V03 arg3         [V03,T03] (  3,  3   )     int  ->  r14         single-def
-;  V04 arg4         [V04,T13] (  2,  1   )   byref  ->  [rbp+0x10]  single-def
-;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V07 tmp2         [V07,T10] (  3,  2   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <ubyte[]>
-;  V08 tmp3         [V08,T09] (  3,  3   )     ref  ->  [rbp-0x30]  class-hnd exact spill-single-def "NewArr temp" <ubyte[]>
-;* V09 tmp4         [V09    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V10 tmp5         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V11 tmp6         [V11    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V12 tmp7         [V12,T01] (  4,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V13 tmp8         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V14 tmp9         [V14,T11] (  3,  2   )   ubyte  ->  rax         "Inline return value spill temp"
-;* V15 tmp10        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V16 tmp11        [V16,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;* V17 tmp12        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V18 tmp13        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V19 tmp14        [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V20 tmp15        [V20    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V21 tmp16        [V21,T06] (  2,  1.50)   byref  ->  r12         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V22 tmp17        [V22,T02] (  4,  3   )     int  ->  r15         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp18        [V23,T07] (  2,  1.50)   byref  ->  [rbp-0x38]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V24 tmp19        [V24,T05] (  2,  2   )     int  ->  r13         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V25 tmp20        [V25    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V26 tmp21        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;  V27 tmp22        [V27,T12] (  3,  1.50)   byref  ->  rsi         "field V13._reference (fldOffset=0x0)" P-INDEP
-;  V28 tmp23        [V28,T08] (  5,  3   )     int  ->  rbx         "field V13._length (fldOffset=0x8)" P-INDEP
-;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V30 tmp25        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
-;* V31 tmp26        [V31    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;* V32 tmp27        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp28        [V33,T04] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
+;  V04 arg4         [V04,T13] (  2,  1.50)   byref  ->  [rbp+0x10]  single-def
+;* V05 loc0         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ubyte]>
+;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V07 tmp1         [V07,T11] (  3,  2   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <ubyte[]>
+;  V08 tmp2         [V08,T09] (  3,  3   )     ref  ->  [rbp-0x30]  class-hnd exact spill-single-def "NewArr temp" <ubyte[]>
+;* V09 tmp3         [V09    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V10 tmp4         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V11 tmp5         [V11    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V12 tmp6         [V12,T01] (  4,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V13 tmp7         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V14 tmp8         [V14,T10] (  3,  2.50)   ubyte  ->  rax         "Inline stloc first use temp"
+;* V15 tmp9         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V16 tmp10        [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V17 tmp11        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V18 tmp12        [V18    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V19 tmp13        [V19,T06] (  2,  1.50)   byref  ->  r12         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V20 tmp14        [V20,T02] (  4,  3   )     int  ->  r15         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V21 tmp15        [V21,T07] (  2,  1.50)   byref  ->  [rbp-0x38]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp16        [V22,T05] (  2,  2   )     int  ->  r13         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp17        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp18        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp19        [V25,T12] (  3,  1.50)   byref  ->  rsi         "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V26 tmp20        [V26,T08] (  5,  3   )     int  ->  rdx         "field V13._length (fldOffset=0x8)" P-INDEP
+;* V27 tmp21        [V27    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V28 tmp22        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
+;  V29 tmp23        [V29,T04] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
 ;
 ; Lcl frame size = 24
 
 G_M30741_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 24
        lea      rbp, [rsp+0x40]
        mov      bword ptr [rbp-0x38], rcx
        mov      rbx, rdi
        mov      r12, rsi
        mov      r15d, edx
        mov      r13d, r8d
        mov      r14d, r9d
 						;; size=38 bbWeight=1 PerfScore 9.00
 G_M30741_IG02:
        test     r15d, r15d
        je       SHORT G_M30741_IG04
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M30741_IG03:
        mov      esi, r15d
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      rsi, rax
        mov      gword ptr [rbp-0x30], rsi
        mov      edx, r15d
        lea      rdi, bword ptr [rsi+0x10]
        mov      rsi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      r15, gword ptr [rbp-0x30]
        mov      rsi, r15
        jmp      SHORT G_M30741_IG05
 						;; size=56 bbWeight=0.50 PerfScore 5.12
 G_M30741_IG04:
        mov      rsi, 0xD1FFAB1E      ; 'System.Byte[]'
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M30741_IG05:
        mov      rdi, rbx
-       mov      rcx, qword ptr [rbx]
-       mov      rcx, qword ptr [rcx+0x68]
-       call     [rcx+0x38]System.Security.Cryptography.ECDsa:SignHash(ubyte[]):ubyte[]:this
+       mov      rdx, qword ptr [rbx]
+       mov      rdx, qword ptr [rdx+0x68]
+       call     [rdx+0x38]System.Security.Cryptography.ECDsa:SignHash(ubyte[]):ubyte[]:this
        mov      rdi, rax
        mov      esi, r14d
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.AsymmetricAlgorithmHelpers:ConvertFromIeeeP1363Signature(ubyte[],int):ubyte[]
        call     [rax]System.Security.Cryptography.AsymmetricAlgorithmHelpers:ConvertFromIeeeP1363Signature(ubyte[],int):ubyte[]
        test     rax, rax
        je       SHORT G_M30741_IG07
 						;; size=36 bbWeight=1 PerfScore 12.25
 G_M30741_IG06:
        lea      rsi, bword ptr [rax+0x10]
-       mov      ebx, dword ptr [rax+0x08]
+       mov      edx, dword ptr [rax+0x08]
        jmp      SHORT G_M30741_IG08
 						;; size=9 bbWeight=0.50 PerfScore 2.25
 G_M30741_IG07:
        xor      rsi, rsi
-       xor      ebx, ebx
+       xor      edx, edx
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M30741_IG08:
-       cmp      ebx, r13d
-       jle      SHORT G_M30741_IG11
-						;; size=5 bbWeight=1 PerfScore 1.25
+       xor      edi, edi
+       mov      rbx, bword ptr [rbp+0x10]
+       mov      dword ptr [rbx], edi
+						;; size=8 bbWeight=1 PerfScore 2.25
 G_M30741_IG09:
-       xor      edx, edx
-       mov      r15, bword ptr [rbp+0x10]
-       mov      dword ptr [r15], edx
-						;; size=9 bbWeight=0.50 PerfScore 1.12
-G_M30741_IG10:
        xor      eax, eax
-       jmp      SHORT G_M30741_IG12
-						;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M30741_IG11:
-       mov      edx, ebx
+       cmp      edx, r13d
+       jg       SHORT G_M30741_IG11
+						;; size=7 bbWeight=1 PerfScore 1.50
+G_M30741_IG10:
+       mov      dword ptr [rbx], edx
+       mov      edx, edx
        mov      rdi, bword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       mov      r15, bword ptr [rbp+0x10]
-       mov      dword ptr [r15], ebx
        mov      eax, 1
-						;; size=30 bbWeight=0.50 PerfScore 3.38
-G_M30741_IG12:
+						;; size=25 bbWeight=0.50 PerfScore 2.88
+G_M30741_IG11:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 221, prolog size 19, PerfScore 41.38, instruction count 67, allocated bytes for code 221 (MethodHash=ad8087ea) for method System.Security.Cryptography.ECDsa:TrySignHashCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
+; Total bytes of code 213, prolog size 19, PerfScore 41.12, instruction count 65, allocated bytes for code 213 (MethodHash=ad8087ea) for method System.Security.Cryptography.ECDsa:TrySignHashCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte: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/08ad6bfea12f1c9a0a80ab5ec2b4dcd2

@MihuBot
Copy link
Owner Author

MihuBot commented Jan 11, 2025

@MihaZupan

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