Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[JitDiff X64] xtqqczze/dotnet-runtime/GetPinnableReference #823

Open
MihuBot opened this issue Dec 14, 2024 · 3 comments
Open

[JitDiff X64] xtqqczze/dotnet-runtime/GetPinnableReference #823

MihuBot opened this issue Dec 14, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Dec 14, 2024

Job completed in 14 minutes.

Diffs

Found 262 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 40203552
Total bytes of diff: 40201528
Total bytes of delta: -2024 (-0.01 % of base)
Total relative delta: -0.90
    diff is an improvement.
    relative diff is an improvement.


Top file improvements (bytes):
       -2024 : System.Numerics.Tensors.dasm (-0.11 % of base)

1 total files with Code Size differences (1 improved, 0 regressed), 258 unchanged.

Top method regressions (bytes):
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[double]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[int]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[long]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[short]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.__Canon]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[ubyte]:GetPinnableReference():byref:this (FullOpts)

Top method improvements (bytes):
        -366 (-29.85 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[ubyte](byref,byref):ubyte (FullOpts) (2 methods)
        -358 (-29.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[int](byref,byref):ubyte (FullOpts) (2 methods)
        -358 (-29.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[long](byref,byref):ubyte (FullOpts) (2 methods)
        -358 (-29.06 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[short](byref,byref):ubyte (FullOpts) (2 methods)
        -348 (-28.48 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[double](byref,byref):ubyte (FullOpts) (2 methods)
        -348 (-28.48 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[System.Numerics.Vector`1[float]](byref,byref):ubyte (FullOpts) (2 methods)

Top method regressions (percentages):
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[double]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[int]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[long]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[short]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.__Canon]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:GetPinnableReference():byref:this (FullOpts)
           7 (5.22 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[ubyte]:GetPinnableReference():byref:this (FullOpts)

Top method improvements (percentages):
        -366 (-29.85 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[ubyte](byref,byref):ubyte (FullOpts) (2 methods)
        -358 (-29.06 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[short](byref,byref):ubyte (FullOpts) (2 methods)
        -358 (-29.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[int](byref,byref):ubyte (FullOpts) (2 methods)
        -358 (-29.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[long](byref,byref):ubyte (FullOpts) (2 methods)
        -348 (-28.48 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[double](byref,byref):ubyte (FullOpts) (2 methods)
        -348 (-28.48 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[System.Numerics.Vector`1[float]](byref,byref):ubyte (FullOpts) (2 methods)

22 total methods with Code Size differences (6 improved, 16 regressed), 232912 unchanged.

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

Artifacts:

xtqqczze referenced this issue in xtqqczze/dotnet-runtime Dec 14, 2024
@MihuBot
Copy link
Owner Author

MihuBot commented Dec 14, 2024

Top method regressions

7 (5.22 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:GetPinnableReference():byref:this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:GetPinnableReference():byref:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 8 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T05] (  4,  3.50)   byref  ->  rdi         this single-def
-;  V01 loc0         [V01,T09] (  3,  2.50)   byref  ->  rax        
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T03] (  6,  8   )   byref  ->  rbx         single-def "Inlining Arg"
-;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
-;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
-;  V07 tmp5         [V07,T07] (  3,  3   )     ref  ->  rcx         single-def "MemoryMarshal.GetArrayDataReference array"
-;  V08 tmp6         [V08,T12] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V09 tmp7         [V09,T13] (  2,  2   )     int  ->  rdx         "Inlining Arg"
-;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V11 tmp9         [V11    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V12 tmp10        [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;  V13 tmp11        [V13,T08] (  3,  3   )     int  ->  rdx         "Inlining Arg"
-;* V14 tmp12        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V15 tmp13        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V16 tmp14        [V16,T17] (  2,  1   )    long  ->  rcx         "Inline return value spill temp"
-;* V17 tmp15        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;  V18 tmp16        [V18,T02] (  5,  9.25)    long  ->  rsi         "Inline stloc first use temp"
-;* V19 tmp17        [V19,T20] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V20 tmp18        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V21 tmp19        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp20        [V22,T10] (  3,  2   )   byref  ->  rcx         "field V05._reference (fldOffset=0x0)" P-INDEP
-;  V23 tmp21        [V23,T11] (  3,  2   )     int  ->  rdx         "field V05._length (fldOffset=0x8)" P-INDEP
-;* V24 tmp22        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V25 tmp23        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
-;  V26 tmp24        [V26,T14] (  2,  1   )   byref  ->  rcx         single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp25        [V27,T18] (  2,  1   )     int  ->  rdx         single-def "field V10._length (fldOffset=0x8)" P-INDEP
-;  V28 tmp26        [V28,T15] (  2,  1   )   byref  ->  rcx         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V29 tmp27        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "field V12._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp28        [V30,T16] (  2,  1   )   byref  ->  rcx         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp29        [V31,T19] (  2,  1   )     int  ->  rdx         single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp30        [V32,T06] (  2,  5   )   byref  ->  rcx         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;  V33 tmp31        [V33,T04] (  3,  6   )     int  ->  rdx         single-def "field V17._length (fldOffset=0x8)" P-INDEP
-;  V34 cse0         [V34,T01] (  3, 12   )    long  ->   r9         "CSE #05: aggressive"
-;  V35 rat0         [V35,T00] (  5, 16.25)    long  ->   r8         "Widened IV V19"
+;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V02 tmp1         [V02,T03] (  6,  8   )   byref  ->  rbx         single-def "Inlining Arg"
+;* V03 tmp2         [V03    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
+;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
+;* V05 tmp4         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
+;  V06 tmp5         [V06,T07] (  3,  3   )     ref  ->  rax         single-def "MemoryMarshal.GetArrayDataReference array"
+;  V07 tmp6         [V07,T11] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V08 tmp7         [V08,T12] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;* V09 tmp8         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;* V10 tmp9         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V11 tmp10        [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;  V12 tmp11        [V12,T08] (  3,  3   )     int  ->  rcx         "Inlining Arg"
+;* V13 tmp12        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;* V14 tmp13        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V15 tmp14        [V15,T16] (  2,  1   )    long  ->  rax         "Inline return value spill temp"
+;* V16 tmp15        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
+;  V17 tmp16        [V17,T02] (  5,  9.25)    long  ->  rdx         "Inline stloc first use temp"
+;* V18 tmp17        [V18,T19] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V19 tmp18        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V20 tmp19        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
+;  V21 tmp20        [V21,T09] (  3,  2   )   byref  ->  rax         "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp21        [V22,T10] (  3,  2   )     int  ->  rcx         "field V04._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp22        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp24        [V25,T13] (  2,  1   )   byref  ->  rax         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V26 tmp25        [V26,T17] (  2,  1   )     int  ->  rcx         "field V09._length (fldOffset=0x8)" P-INDEP
+;  V27 tmp26        [V27,T14] (  2,  1   )   byref  ->  rax         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V28 tmp27        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
+;  V29 tmp28        [V29,T15] (  2,  1   )   byref  ->  rax         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V30 tmp29        [V30,T18] (  2,  1   )     int  ->  rcx         "field V13._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp30        [V31,T06] (  2,  5   )   byref  ->  rax         single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp31        [V32,T04] (  3,  6   )     int  ->  rcx         "field V16._length (fldOffset=0x8)" P-INDEP
+;  V33 cse0         [V33,T01] (  3, 12   )    long  ->   r8         "CSE #05: aggressive"
+;  V34 rat0         [V34,T00] (  5, 16.25)    long  ->  rsi         "Widened IV V18"
 ;
 ; Lcl frame size = 8
 
 G_M31979_IG01:
        push     rbp
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
 						;; size=8 bbWeight=1 PerfScore 3.50
 G_M31979_IG02:
-       xor      rax, rax
        lea      rbx, bword ptr [rdi+0x08]
        cmp      gword ptr [rbx], 0
        jne      SHORT G_M31979_IG04
-						;; size=12 bbWeight=1 PerfScore 4.75
+						;; size=10 bbWeight=1 PerfScore 4.50
 G_M31979_IG03:
-       lea      rcx, bword ptr [rbx+0x18]
-       mov      edx, dword ptr [rbx+0x10]
-       cmp      edx, 5
-       ja       SHORT G_M31979_IG10
+       lea      rax, bword ptr [rbx+0x18]
+       mov      ecx, dword ptr [rbx+0x10]
+       cmp      ecx, 5
+       ja       SHORT G_M31979_IG13
        jmp      SHORT G_M31979_IG05
-       align    [6 bytes for IG07]
-						;; size=20 bbWeight=0.50 PerfScore 2.88
+       align    [9 bytes for IG07]
+						;; size=23 bbWeight=0.50 PerfScore 2.88
 G_M31979_IG04:
-       mov      rcx, gword ptr [rbx]
-       cmp      byte  ptr [rcx], cl
-       add      rcx, 16
-       mov      edx, dword ptr [rbx+0x10]
+       mov      rax, gword ptr [rbx]
+       cmp      byte  ptr [rax], al
+       add      rax, 16
+       mov      ecx, dword ptr [rbx+0x10]
 						;; size=12 bbWeight=0.50 PerfScore 3.62
 G_M31979_IG05:
-       test     edx, edx
+       test     ecx, ecx
        je       SHORT G_M31979_IG09
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M31979_IG06:
-       mov      esi, 1
-       xor      r8d, r8d
-						;; size=8 bbWeight=0.25 PerfScore 0.12
+       mov      edx, 1
+       xor      esi, esi
+						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M31979_IG07:
-       mov      r9, qword ptr [rcx+8*r8]
-       test     r9, r9
-       jl       SHORT G_M31979_IG11
-       imul     rsi, r9
-       inc      r8d
-       cmp      r8d, edx
+       mov      r8, qword ptr [rax+8*rsi]
+       test     r8, r8
+       jl       SHORT G_M31979_IG14
+       imul     rdx, r8
+       inc      esi
+       cmp      esi, ecx
        jl       SHORT G_M31979_IG07
-						;; size=21 bbWeight=4 PerfScore 27.00
+						;; size=19 bbWeight=4 PerfScore 27.00
 G_M31979_IG08:
-       test     rsi, rsi
-       jl       SHORT G_M31979_IG11
-       mov      rcx, rsi
-       test     rcx, rcx
-       je       SHORT G_M31979_IG09
-       mov      rax, bword ptr [rdi]
-						;; size=16 bbWeight=0.50 PerfScore 2.38
+       test     rdx, rdx
+       jl       SHORT G_M31979_IG14
+       mov      rax, rdx
+       test     rax, rax
+       jne      SHORT G_M31979_IG11
+						;; size=13 bbWeight=0.50 PerfScore 1.38
 G_M31979_IG09:
+       xor      rax, rax
+						;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M31979_IG10:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
-						;; size=7 bbWeight=1 PerfScore 2.25
-G_M31979_IG10:
+						;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M31979_IG11:
+       mov      rax, bword ptr [rdi]
+						;; size=3 bbWeight=0.50 PerfScore 1.00
+G_M31979_IG12:
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       ret      
+						;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M31979_IG13:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M31979_IG11:
+G_M31979_IG14:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 134, prolog size 8, PerfScore 47.75, instruction count 45, allocated bytes for code 134 (MethodHash=9bd28314) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:GetPinnableReference():byref:this (FullOpts)
+; Total bytes of code 141, prolog size 8, PerfScore 47.62, instruction count 49, allocated bytes for code 141 (MethodHash=9bd28314) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:GetPinnableReference():byref:this (FullOpts)
 ; ============================================================
7 (5.22 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:GetPinnableReference():byref:this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:GetPinnableReference():byref:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 8 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T05] (  4,  3.50)   byref  ->  rdi         this single-def
-;  V01 loc0         [V01,T09] (  3,  2.50)   byref  ->  rax        
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T03] (  6,  8   )   byref  ->  rbx         single-def "Inlining Arg"
-;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
-;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
-;  V07 tmp5         [V07,T07] (  3,  3   )     ref  ->  rcx         single-def "MemoryMarshal.GetArrayDataReference array"
-;  V08 tmp6         [V08,T12] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V09 tmp7         [V09,T13] (  2,  2   )     int  ->  rdx         "Inlining Arg"
-;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V11 tmp9         [V11    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V12 tmp10        [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;  V13 tmp11        [V13,T08] (  3,  3   )     int  ->  rdx         "Inlining Arg"
-;* V14 tmp12        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V15 tmp13        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V16 tmp14        [V16,T17] (  2,  1   )    long  ->  rcx         "Inline return value spill temp"
-;* V17 tmp15        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;  V18 tmp16        [V18,T02] (  5,  9.25)    long  ->  rsi         "Inline stloc first use temp"
-;* V19 tmp17        [V19,T20] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V20 tmp18        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V21 tmp19        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp20        [V22,T10] (  3,  2   )   byref  ->  rcx         "field V05._reference (fldOffset=0x0)" P-INDEP
-;  V23 tmp21        [V23,T11] (  3,  2   )     int  ->  rdx         "field V05._length (fldOffset=0x8)" P-INDEP
-;* V24 tmp22        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V25 tmp23        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
-;  V26 tmp24        [V26,T14] (  2,  1   )   byref  ->  rcx         single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp25        [V27,T18] (  2,  1   )     int  ->  rdx         single-def "field V10._length (fldOffset=0x8)" P-INDEP
-;  V28 tmp26        [V28,T15] (  2,  1   )   byref  ->  rcx         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V29 tmp27        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "field V12._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp28        [V30,T16] (  2,  1   )   byref  ->  rcx         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp29        [V31,T19] (  2,  1   )     int  ->  rdx         single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp30        [V32,T06] (  2,  5   )   byref  ->  rcx         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;  V33 tmp31        [V33,T04] (  3,  6   )     int  ->  rdx         single-def "field V17._length (fldOffset=0x8)" P-INDEP
-;  V34 cse0         [V34,T01] (  3, 12   )    long  ->   r9         "CSE #05: aggressive"
-;  V35 rat0         [V35,T00] (  5, 16.25)    long  ->   r8         "Widened IV V19"
+;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V02 tmp1         [V02,T03] (  6,  8   )   byref  ->  rbx         single-def "Inlining Arg"
+;* V03 tmp2         [V03    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
+;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
+;* V05 tmp4         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
+;  V06 tmp5         [V06,T07] (  3,  3   )     ref  ->  rax         single-def "MemoryMarshal.GetArrayDataReference array"
+;  V07 tmp6         [V07,T11] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V08 tmp7         [V08,T12] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;* V09 tmp8         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;* V10 tmp9         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V11 tmp10        [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;  V12 tmp11        [V12,T08] (  3,  3   )     int  ->  rcx         "Inlining Arg"
+;* V13 tmp12        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;* V14 tmp13        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V15 tmp14        [V15,T16] (  2,  1   )    long  ->  rax         "Inline return value spill temp"
+;* V16 tmp15        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
+;  V17 tmp16        [V17,T02] (  5,  9.25)    long  ->  rdx         "Inline stloc first use temp"
+;* V18 tmp17        [V18,T19] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V19 tmp18        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V20 tmp19        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
+;  V21 tmp20        [V21,T09] (  3,  2   )   byref  ->  rax         "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp21        [V22,T10] (  3,  2   )     int  ->  rcx         "field V04._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp22        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp24        [V25,T13] (  2,  1   )   byref  ->  rax         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V26 tmp25        [V26,T17] (  2,  1   )     int  ->  rcx         "field V09._length (fldOffset=0x8)" P-INDEP
+;  V27 tmp26        [V27,T14] (  2,  1   )   byref  ->  rax         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V28 tmp27        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
+;  V29 tmp28        [V29,T15] (  2,  1   )   byref  ->  rax         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V30 tmp29        [V30,T18] (  2,  1   )     int  ->  rcx         "field V13._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp30        [V31,T06] (  2,  5   )   byref  ->  rax         single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp31        [V32,T04] (  3,  6   )     int  ->  rcx         "field V16._length (fldOffset=0x8)" P-INDEP
+;  V33 cse0         [V33,T01] (  3, 12   )    long  ->   r8         "CSE #05: aggressive"
+;  V34 rat0         [V34,T00] (  5, 16.25)    long  ->  rsi         "Widened IV V18"
 ;
 ; Lcl frame size = 8
 
 G_M11405_IG01:
        push     rbp
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
 						;; size=8 bbWeight=1 PerfScore 3.50
 G_M11405_IG02:
-       xor      rax, rax
        lea      rbx, bword ptr [rdi+0x08]
        cmp      gword ptr [rbx], 0
        jne      SHORT G_M11405_IG04
-						;; size=12 bbWeight=1 PerfScore 4.75
+						;; size=10 bbWeight=1 PerfScore 4.50
 G_M11405_IG03:
-       lea      rcx, bword ptr [rbx+0x18]
-       mov      edx, dword ptr [rbx+0x10]
-       cmp      edx, 5
-       ja       SHORT G_M11405_IG10
+       lea      rax, bword ptr [rbx+0x18]
+       mov      ecx, dword ptr [rbx+0x10]
+       cmp      ecx, 5
+       ja       SHORT G_M11405_IG13
        jmp      SHORT G_M11405_IG05
-       align    [6 bytes for IG07]
-						;; size=20 bbWeight=0.50 PerfScore 2.88
+       align    [9 bytes for IG07]
+						;; size=23 bbWeight=0.50 PerfScore 2.88
 G_M11405_IG04:
-       mov      rcx, gword ptr [rbx]
-       cmp      byte  ptr [rcx], cl
-       add      rcx, 16
-       mov      edx, dword ptr [rbx+0x10]
+       mov      rax, gword ptr [rbx]
+       cmp      byte  ptr [rax], al
+       add      rax, 16
+       mov      ecx, dword ptr [rbx+0x10]
 						;; size=12 bbWeight=0.50 PerfScore 3.62
 G_M11405_IG05:
-       test     edx, edx
+       test     ecx, ecx
        je       SHORT G_M11405_IG09
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M11405_IG06:
-       mov      esi, 1
-       xor      r8d, r8d
-						;; size=8 bbWeight=0.25 PerfScore 0.12
+       mov      edx, 1
+       xor      esi, esi
+						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M11405_IG07:
-       mov      r9, qword ptr [rcx+8*r8]
-       test     r9, r9
-       jl       SHORT G_M11405_IG11
-       imul     rsi, r9
-       inc      r8d
-       cmp      r8d, edx
+       mov      r8, qword ptr [rax+8*rsi]
+       test     r8, r8
+       jl       SHORT G_M11405_IG14
+       imul     rdx, r8
+       inc      esi
+       cmp      esi, ecx
        jl       SHORT G_M11405_IG07
-						;; size=21 bbWeight=4 PerfScore 27.00
+						;; size=19 bbWeight=4 PerfScore 27.00
 G_M11405_IG08:
-       test     rsi, rsi
-       jl       SHORT G_M11405_IG11
-       mov      rcx, rsi
-       test     rcx, rcx
-       je       SHORT G_M11405_IG09
-       mov      rax, bword ptr [rdi]
-						;; size=16 bbWeight=0.50 PerfScore 2.38
+       test     rdx, rdx
+       jl       SHORT G_M11405_IG14
+       mov      rax, rdx
+       test     rax, rax
+       jne      SHORT G_M11405_IG11
+						;; size=13 bbWeight=0.50 PerfScore 1.38
 G_M11405_IG09:
+       xor      rax, rax
+						;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M11405_IG10:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
-						;; size=7 bbWeight=1 PerfScore 2.25
-G_M11405_IG10:
+						;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M11405_IG11:
+       mov      rax, bword ptr [rdi]
+						;; size=3 bbWeight=0.50 PerfScore 1.00
+G_M11405_IG12:
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       ret      
+						;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M11405_IG13:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M11405_IG11:
+G_M11405_IG14:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 134, prolog size 8, PerfScore 47.75, instruction count 45, allocated bytes for code 134 (MethodHash=0f72d372) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:GetPinnableReference():byref:this (FullOpts)
+; Total bytes of code 141, prolog size 8, PerfScore 47.62, instruction count 49, allocated bytes for code 141 (MethodHash=0f72d372) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:GetPinnableReference():byref:this (FullOpts)
 ; ============================================================
7 (5.22 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:GetPinnableReference():byref:this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:GetPinnableReference():byref:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 8 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T05] (  4,  3.50)   byref  ->  rdi         this single-def
-;  V01 loc0         [V01,T09] (  3,  2.50)   byref  ->  rax        
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T03] (  6,  8   )   byref  ->  rbx         single-def "Inlining Arg"
-;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
-;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
-;  V07 tmp5         [V07,T07] (  3,  3   )     ref  ->  rcx         single-def "MemoryMarshal.GetArrayDataReference array"
-;  V08 tmp6         [V08,T12] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V09 tmp7         [V09,T13] (  2,  2   )     int  ->  rdx         "Inlining Arg"
-;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V11 tmp9         [V11    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V12 tmp10        [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;  V13 tmp11        [V13,T08] (  3,  3   )     int  ->  rdx         "Inlining Arg"
-;* V14 tmp12        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V15 tmp13        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V16 tmp14        [V16,T17] (  2,  1   )    long  ->  rcx         "Inline return value spill temp"
-;* V17 tmp15        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;  V18 tmp16        [V18,T02] (  5,  9.25)    long  ->  rsi         "Inline stloc first use temp"
-;* V19 tmp17        [V19,T20] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V20 tmp18        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V21 tmp19        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp20        [V22,T10] (  3,  2   )   byref  ->  rcx         "field V05._reference (fldOffset=0x0)" P-INDEP
-;  V23 tmp21        [V23,T11] (  3,  2   )     int  ->  rdx         "field V05._length (fldOffset=0x8)" P-INDEP
-;* V24 tmp22        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V25 tmp23        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
-;  V26 tmp24        [V26,T14] (  2,  1   )   byref  ->  rcx         single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp25        [V27,T18] (  2,  1   )     int  ->  rdx         single-def "field V10._length (fldOffset=0x8)" P-INDEP
-;  V28 tmp26        [V28,T15] (  2,  1   )   byref  ->  rcx         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V29 tmp27        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "field V12._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp28        [V30,T16] (  2,  1   )   byref  ->  rcx         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp29        [V31,T19] (  2,  1   )     int  ->  rdx         single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp30        [V32,T06] (  2,  5   )   byref  ->  rcx         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;  V33 tmp31        [V33,T04] (  3,  6   )     int  ->  rdx         single-def "field V17._length (fldOffset=0x8)" P-INDEP
-;  V34 cse0         [V34,T01] (  3, 12   )    long  ->   r9         "CSE #05: aggressive"
-;  V35 rat0         [V35,T00] (  5, 16.25)    long  ->   r8         "Widened IV V19"
+;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V02 tmp1         [V02,T03] (  6,  8   )   byref  ->  rbx         single-def "Inlining Arg"
+;* V03 tmp2         [V03    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
+;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
+;* V05 tmp4         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
+;  V06 tmp5         [V06,T07] (  3,  3   )     ref  ->  rax         single-def "MemoryMarshal.GetArrayDataReference array"
+;  V07 tmp6         [V07,T11] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V08 tmp7         [V08,T12] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;* V09 tmp8         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;* V10 tmp9         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V11 tmp10        [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;  V12 tmp11        [V12,T08] (  3,  3   )     int  ->  rcx         "Inlining Arg"
+;* V13 tmp12        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;* V14 tmp13        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V15 tmp14        [V15,T16] (  2,  1   )    long  ->  rax         "Inline return value spill temp"
+;* V16 tmp15        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
+;  V17 tmp16        [V17,T02] (  5,  9.25)    long  ->  rdx         "Inline stloc first use temp"
+;* V18 tmp17        [V18,T19] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V19 tmp18        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V20 tmp19        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
+;  V21 tmp20        [V21,T09] (  3,  2   )   byref  ->  rax         "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp21        [V22,T10] (  3,  2   )     int  ->  rcx         "field V04._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp22        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp24        [V25,T13] (  2,  1   )   byref  ->  rax         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V26 tmp25        [V26,T17] (  2,  1   )     int  ->  rcx         "field V09._length (fldOffset=0x8)" P-INDEP
+;  V27 tmp26        [V27,T14] (  2,  1   )   byref  ->  rax         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V28 tmp27        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
+;  V29 tmp28        [V29,T15] (  2,  1   )   byref  ->  rax         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V30 tmp29        [V30,T18] (  2,  1   )     int  ->  rcx         "field V13._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp30        [V31,T06] (  2,  5   )   byref  ->  rax         single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp31        [V32,T04] (  3,  6   )     int  ->  rcx         "field V16._length (fldOffset=0x8)" P-INDEP
+;  V33 cse0         [V33,T01] (  3, 12   )    long  ->   r8         "CSE #05: aggressive"
+;  V34 rat0         [V34,T00] (  5, 16.25)    long  ->  rsi         "Widened IV V18"
 ;
 ; Lcl frame size = 8
 
 G_M53748_IG01:
        push     rbp
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
 						;; size=8 bbWeight=1 PerfScore 3.50
 G_M53748_IG02:
-       xor      rax, rax
        lea      rbx, bword ptr [rdi+0x08]
        cmp      gword ptr [rbx], 0
        jne      SHORT G_M53748_IG04
-						;; size=12 bbWeight=1 PerfScore 4.75
+						;; size=10 bbWeight=1 PerfScore 4.50
 G_M53748_IG03:
-       lea      rcx, bword ptr [rbx+0x18]
-       mov      edx, dword ptr [rbx+0x10]
-       cmp      edx, 5
-       ja       SHORT G_M53748_IG10
+       lea      rax, bword ptr [rbx+0x18]
+       mov      ecx, dword ptr [rbx+0x10]
+       cmp      ecx, 5
+       ja       SHORT G_M53748_IG13
        jmp      SHORT G_M53748_IG05
-       align    [6 bytes for IG07]
-						;; size=20 bbWeight=0.50 PerfScore 2.88
+       align    [9 bytes for IG07]
+						;; size=23 bbWeight=0.50 PerfScore 2.88
 G_M53748_IG04:
-       mov      rcx, gword ptr [rbx]
-       cmp      byte  ptr [rcx], cl
-       add      rcx, 16
-       mov      edx, dword ptr [rbx+0x10]
+       mov      rax, gword ptr [rbx]
+       cmp      byte  ptr [rax], al
+       add      rax, 16
+       mov      ecx, dword ptr [rbx+0x10]
 						;; size=12 bbWeight=0.50 PerfScore 3.62
 G_M53748_IG05:
-       test     edx, edx
+       test     ecx, ecx
        je       SHORT G_M53748_IG09
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M53748_IG06:
-       mov      esi, 1
-       xor      r8d, r8d
-						;; size=8 bbWeight=0.25 PerfScore 0.12
+       mov      edx, 1
+       xor      esi, esi
+						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M53748_IG07:
-       mov      r9, qword ptr [rcx+8*r8]
-       test     r9, r9
-       jl       SHORT G_M53748_IG11
-       imul     rsi, r9
-       inc      r8d
-       cmp      r8d, edx
+       mov      r8, qword ptr [rax+8*rsi]
+       test     r8, r8
+       jl       SHORT G_M53748_IG14
+       imul     rdx, r8
+       inc      esi
+       cmp      esi, ecx
        jl       SHORT G_M53748_IG07
-						;; size=21 bbWeight=4 PerfScore 27.00
+						;; size=19 bbWeight=4 PerfScore 27.00
 G_M53748_IG08:
-       test     rsi, rsi
-       jl       SHORT G_M53748_IG11
-       mov      rcx, rsi
-       test     rcx, rcx
-       je       SHORT G_M53748_IG09
-       mov      rax, bword ptr [rdi]
-						;; size=16 bbWeight=0.50 PerfScore 2.38
+       test     rdx, rdx
+       jl       SHORT G_M53748_IG14
+       mov      rax, rdx
+       test     rax, rax
+       jne      SHORT G_M53748_IG11
+						;; size=13 bbWeight=0.50 PerfScore 1.38
 G_M53748_IG09:
+       xor      rax, rax
+						;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M53748_IG10:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
-						;; size=7 bbWeight=1 PerfScore 2.25
-G_M53748_IG10:
+						;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M53748_IG11:
+       mov      rax, bword ptr [rdi]
+						;; size=3 bbWeight=0.50 PerfScore 1.00
+G_M53748_IG12:
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       ret      
+						;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M53748_IG13:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M53748_IG11:
+G_M53748_IG14:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 134, prolog size 8, PerfScore 47.75, instruction count 45, allocated bytes for code 134 (MethodHash=a4002e0b) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:GetPinnableReference():byref:this (FullOpts)
+; Total bytes of code 141, prolog size 8, PerfScore 47.62, instruction count 49, allocated bytes for code 141 (MethodHash=a4002e0b) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:GetPinnableReference():byref:this (FullOpts)
 ; ============================================================
7 (5.22 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:GetPinnableReference():byref:this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:GetPinnableReference():byref:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 8 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T05] (  4,  3.50)   byref  ->  rdi         this single-def
-;  V01 loc0         [V01,T09] (  3,  2.50)   byref  ->  rax        
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T03] (  6,  8   )   byref  ->  rbx         single-def "Inlining Arg"
-;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
-;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
-;  V07 tmp5         [V07,T07] (  3,  3   )     ref  ->  rcx         single-def "MemoryMarshal.GetArrayDataReference array"
-;  V08 tmp6         [V08,T12] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V09 tmp7         [V09,T13] (  2,  2   )     int  ->  rdx         "Inlining Arg"
-;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V11 tmp9         [V11    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V12 tmp10        [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;  V13 tmp11        [V13,T08] (  3,  3   )     int  ->  rdx         "Inlining Arg"
-;* V14 tmp12        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V15 tmp13        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V16 tmp14        [V16,T17] (  2,  1   )    long  ->  rcx         "Inline return value spill temp"
-;* V17 tmp15        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;  V18 tmp16        [V18,T02] (  5,  9.25)    long  ->  rsi         "Inline stloc first use temp"
-;* V19 tmp17        [V19,T20] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V20 tmp18        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V21 tmp19        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp20        [V22,T10] (  3,  2   )   byref  ->  rcx         "field V05._reference (fldOffset=0x0)" P-INDEP
-;  V23 tmp21        [V23,T11] (  3,  2   )     int  ->  rdx         "field V05._length (fldOffset=0x8)" P-INDEP
-;* V24 tmp22        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V25 tmp23        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
-;  V26 tmp24        [V26,T14] (  2,  1   )   byref  ->  rcx         single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp25        [V27,T18] (  2,  1   )     int  ->  rdx         single-def "field V10._length (fldOffset=0x8)" P-INDEP
-;  V28 tmp26        [V28,T15] (  2,  1   )   byref  ->  rcx         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V29 tmp27        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "field V12._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp28        [V30,T16] (  2,  1   )   byref  ->  rcx         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp29        [V31,T19] (  2,  1   )     int  ->  rdx         single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp30        [V32,T06] (  2,  5   )   byref  ->  rcx         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;  V33 tmp31        [V33,T04] (  3,  6   )     int  ->  rdx         single-def "field V17._length (fldOffset=0x8)" P-INDEP
-;  V34 cse0         [V34,T01] (  3, 12   )    long  ->   r9         "CSE #05: aggressive"
-;  V35 rat0         [V35,T00] (  5, 16.25)    long  ->   r8         "Widened IV V19"
+;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V02 tmp1         [V02,T03] (  6,  8   )   byref  ->  rbx         single-def "Inlining Arg"
+;* V03 tmp2         [V03    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
+;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
+;* V05 tmp4         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
+;  V06 tmp5         [V06,T07] (  3,  3   )     ref  ->  rax         single-def "MemoryMarshal.GetArrayDataReference array"
+;  V07 tmp6         [V07,T11] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V08 tmp7         [V08,T12] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;* V09 tmp8         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;* V10 tmp9         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V11 tmp10        [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;  V12 tmp11        [V12,T08] (  3,  3   )     int  ->  rcx         "Inlining Arg"
+;* V13 tmp12        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
+;* V14 tmp13        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V15 tmp14        [V15,T16] (  2,  1   )    long  ->  rax         "Inline return value spill temp"
+;* V16 tmp15        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
+;  V17 tmp16        [V17,T02] (  5,  9.25)    long  ->  rdx         "Inline stloc first use temp"
+;* V18 tmp17        [V18,T19] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V19 tmp18        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V20 tmp19        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
+;  V21 tmp20        [V21,T09] (  3,  2   )   byref  ->  rax         "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp21        [V22,T10] (  3,  2   )     int  ->  rcx         "field V04._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp22        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp24        [V25,T13] (  2,  1   )   byref  ->  rax         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V26 tmp25        [V26,T17] (  2,  1   )     int  ->  rcx         "field V09._length (fldOffset=0x8)" P-INDEP
+;  V27 tmp26        [V27,T14] (  2,  1   )   byref  ->  rax         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V28 tmp27        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
+;  V29 tmp28        [V29,T15] (  2,  1   )   byref  ->  rax         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V30 tmp29        [V30,T18] (  2,  1   )     int  ->  rcx         "field V13._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp30        [V31,T06] (  2,  5   )   byref  ->  rax         single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp31        [V32,T04] (  3,  6   )     int  ->  rcx         "field V16._length (fldOffset=0x8)" P-INDEP
+;  V33 cse0         [V33,T01] (  3, 12   )    long  ->   r8         "CSE #05: aggressive"
+;  V34 rat0         [V34,T00] (  5, 16.25)    long  ->  rsi         "Widened IV V18"
 ;
 ; Lcl frame size = 8
 
 G_M16620_IG01:
        push     rbp
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
 						;; size=8 bbWeight=1 PerfScore 3.50
 G_M16620_IG02:
-       xor      rax, rax
        lea      rbx, bword ptr [rdi+0x08]
        cmp      gword ptr [rbx], 0
        jne      SHORT G_M16620_IG04
-						;; size=12 bbWeight=1 PerfScore 4.75
+						;; size=10 bbWeight=1 PerfScore 4.50
 G_M16620_IG03:
-       lea      rcx, bword ptr [rbx+0x18]
-       mov      edx, dword ptr [rbx+0x10]
-       cmp      edx, 5
-       ja       SHORT G_M16620_IG10
+       lea      rax, bword ptr [rbx+0x18]
+       mov      ecx, dword ptr [rbx+0x10]
+       cmp      ecx, 5
+       ja       SHORT G_M16620_IG13
        jmp      SHORT G_M16620_IG05
-       align    [6 bytes for IG07]
-						;; size=20 bbWeight=0.50 PerfScore 2.88
+       align    [9 bytes for IG07]
+						;; size=23 bbWeight=0.50 PerfScore 2.88
 G_M16620_IG04:
-       mov      rcx, gword ptr [rbx]
-       cmp      byte  ptr [rcx], cl
-       add      rcx, 16
-       mov      edx, dword ptr [rbx+0x10]
+       mov      rax, gword ptr [rbx]
+       cmp      byte  ptr [rax], al
+       add      rax, 16
+       mov      ecx, dword ptr [rbx+0x10]
 						;; size=12 bbWeight=0.50 PerfScore 3.62
 G_M16620_IG05:
-       test     edx, edx
+       test     ecx, ecx
        je       SHORT G_M16620_IG09
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M16620_IG06:
-       mov      esi, 1
-       xor      r8d, r8d
-						;; size=8 bbWeight=0.25 PerfScore 0.12
+       mov      edx, 1
+       xor      esi, esi
+						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M16620_IG07:
-       mov      r9, qword ptr [rcx+8*r8]
-       test     r9, r9
-       jl       SHORT G_M16620_IG11
-       imul     rsi, r9
-       inc      r8d
-       cmp      r8d, edx
+       mov      r8, qword ptr [rax+8*rsi]
+       test     r8, r8
+       jl       SHORT G_M16620_IG14
+       imul     rdx, r8
+       inc      esi
+       cmp      esi, ecx
        jl       SHORT G_M16620_IG07
-						;; size=21 bbWeight=4 PerfScore 27.00
+						;; size=19 bbWeight=4 PerfScore 27.00
 G_M16620_IG08:
-       test     rsi, rsi
-       jl       SHORT G_M16620_IG11
-       mov      rcx, rsi
-       test     rcx, rcx
-       je       SHORT G_M16620_IG09
-       mov      rax, bword ptr [rdi]
-						;; size=16 bbWeight=0.50 PerfScore 2.38
+       test     rdx, rdx
+       jl       SHORT G_M16620_IG14
+       mov      rax, rdx
+       test     rax, rax
+       jne      SHORT G_M16620_IG11
+						;; size=13 bbWeight=0.50 PerfScore 1.38
 G_M16620_IG09:
+       xor      rax, rax
+						;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M16620_IG10:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
-						;; size=7 bbWeight=1 PerfScore 2.25
-G_M16620_IG10:
+						;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M16620_IG11:
+       mov      rax, bword ptr [rdi]
+						;; size=3 bbWeight=0.50 PerfScore 1.00
+G_M16620_IG12:
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       ret      
+						;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M16620_IG13:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M16620_IG11:
+G_M16620_IG14:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 134, prolog size 8, PerfScore 47.75, instruction count 45, allocated bytes for code 134 (MethodHash=a7a9bf13) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:GetPinnableReference():byref:this (FullOpts)
+; Total bytes of code 141, prolog size 8, PerfScore 47.62, instruction count 49, allocated bytes for code 141 (MethodHash=a7a9bf13) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:GetPinnableReference():byref:this (FullOpts)
 ; ============================================================

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

@MihuBot
Copy link
Owner Author

MihuBot commented Dec 14, 2024

Top method improvements

-366 (-29.85 % of base) - System.Numerics.Tensors.Tensor:SequenceEqual[ubyte](byref,byref):ubyte
 ; Assembly listing for method System.Numerics.Tensors.Tensor:SequenceEqual[ubyte](byref,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 62 single block inlinees; 20 inlinees without PGO data
+; 0 inlinees with PGO data; 46 single block inlinees; 12 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T12] (  8,  5.50)   byref  ->  rbx         single-def
-;  V01 arg1         [V01,T13] (  8,  5.50)   byref  ->  r15         single-def
+;  V00 arg0         [V00,T06] (  7,  5   )   byref  ->  rbx         single-def
+;  V01 arg1         [V01,T07] (  7,  5   )   byref  ->  r15         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T26] (  2,  4   )    long  ->  rdx         "impAppendStmt"
+;  V03 tmp1         [V03,T36] (  2,  2   )    long  ->  r13         "impAppendStmt"
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[long]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp5         [V07    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V08 tmp6         [V08,T14] (  5,  7   )   byref  ->  rdx         single-def "Inlining Arg"
+;  V08 tmp6         [V08,T08] (  5,  5   )   byref  ->  rax         single-def "Inlining Arg"
 ;* V09 tmp7         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
 ;* V10 tmp8         [V10    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
 ;* V11 tmp9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
-;  V12 tmp10        [V12,T31] (  3,  3   )     ref  ->  rsi         single-def "MemoryMarshal.GetArrayDataReference array"
-;  V13 tmp11        [V13,T51] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V14 tmp12        [V14,T59] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V12 tmp10        [V12,T16] (  3,  3   )     ref  ->  rcx         single-def "MemoryMarshal.GetArrayDataReference array"
+;  V13 tmp11        [V13,T28] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V14 tmp12        [V14,T37] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V15 tmp13        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;* V16 tmp14        [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp15        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;  V18 tmp16        [V18,T37] (  3,  3   )     int  ->  rcx         "Inlining Arg"
+;  V18 tmp16        [V18,T20] (  3,  3   )     int  ->  rdx         "Inlining Arg"
 ;* V19 tmp17        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;* V20 tmp18        [V20    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V21 tmp19        [V21,T47] (  3,  2   )    long  ->  rdx         "Inline return value spill temp"
+;  V21 tmp19        [V21,T46] (  3,  1.50)    long  ->  r13         "Inline return value spill temp"
 ;* V22 tmp20        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;  V23 tmp21        [V23,T08] (  5,  9.25)    long  ->  rdx         "Inline stloc first use temp"
-;* V24 tmp22        [V24,T113] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V25 tmp23        [V25,T15] (  5,  7   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V23 tmp21        [V23,T04] (  5,  9.25)    long  ->  rax         "Inline stloc first use temp"
+;* V24 tmp22        [V24,T73] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V25 tmp23        [V25,T09] (  5,  5   )   byref  ->  rax         single-def "Inlining Arg"
 ;* V26 tmp24        [V26    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
 ;* V27 tmp25        [V27    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
 ;* V28 tmp26        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
-;  V29 tmp27        [V29,T32] (  3,  3   )     ref  ->   r8         single-def "MemoryMarshal.GetArrayDataReference array"
-;  V30 tmp28        [V30,T52] (  2,  2   )   byref  ->   r8         single-def "Inlining Arg"
-;  V31 tmp29        [V31,T60] (  2,  2   )     int  ->  r10         "Inlining Arg"
+;  V29 tmp27        [V29,T17] (  3,  3   )     ref  ->  rcx         single-def "MemoryMarshal.GetArrayDataReference array"
+;  V30 tmp28        [V30,T29] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V31 tmp29        [V31,T38] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V32 tmp30        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;* V33 tmp31        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp32        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;  V35 tmp33        [V35,T38] (  3,  3   )     int  ->  r10         "Inlining Arg"
+;  V35 tmp33        [V35,T21] (  3,  3   )     int  ->  rdx         "Inlining Arg"
 ;* V36 tmp34        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;* V37 tmp35        [V37    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V38 tmp36        [V38,T48] (  3,  2   )    long  ->  rsi         "Inline return value spill temp"
+;  V38 tmp36        [V38,T47] (  3,  1.50)    long  ->  rax         "Inline return value spill temp"
 ;* V39 tmp37        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;  V40 tmp38        [V40,T09] (  5,  9.25)    long  ->  rsi         "Inline stloc first use temp"
-;* V41 tmp39        [V41,T114] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V40 tmp38        [V40,T05] (  5,  9.25)    long  ->  rax         "Inline stloc first use temp"
+;* V41 tmp39        [V41,T74] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V42 tmp40        [V42    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
-;  V43 tmp41        [V43,T53] (  2,  2   )   byref  ->  rdx         single-def "Inlining Arg"
+;  V43 tmp41        [V43,T30] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
 ;* V44 tmp42        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
-;  V45 tmp43        [V45,T33] (  3,  3   )     ref  ->  rdi         single-def "MemoryMarshal.GetArrayDataReference array"
-;  V46 tmp44        [V46,T54] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
-;  V47 tmp45        [V47,T61] (  2,  2   )     int  ->  rax         "Inlining Arg"
+;  V45 tmp43        [V45,T18] (  3,  3   )     ref  ->  rdi         single-def "MemoryMarshal.GetArrayDataReference array"
+;  V46 tmp44        [V46,T31] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V47 tmp45        [V47,T39] (  2,  2   )     int  ->  r14         "Inlining Arg"
 ;* V48 tmp46        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;* V49 tmp47        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp48        [V50    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;  V51 tmp49        [V51,T39] (  3,  3   )     int  ->  rax         "Inlining Arg"
+;  V51 tmp49        [V51,T22] (  3,  3   )     int  ->  r14         "Inlining Arg"
 ;* V52 tmp50        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;* V53 tmp51        [V53    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp52        [V54    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
-;  V55 tmp53        [V55,T55] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V55 tmp53        [V55,T32] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
 ;* V56 tmp54        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
-;  V57 tmp55        [V57,T34] (  3,  3   )     ref  ->  rcx         single-def "MemoryMarshal.GetArrayDataReference array"
-;  V58 tmp56        [V58,T56] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V59 tmp57        [V59,T62] (  2,  2   )     int  ->   r9         "Inlining Arg"
+;  V57 tmp55        [V57,T19] (  3,  3   )     ref  ->  rsi         single-def "MemoryMarshal.GetArrayDataReference array"
+;  V58 tmp56        [V58,T33] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V59 tmp57        [V59,T40] (  2,  2   )     int  ->  r12         "Inlining Arg"
 ;* V60 tmp58        [V60    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;* V61 tmp59        [V61    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V62 tmp60        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;  V63 tmp61        [V63,T40] (  3,  3   )     int  ->   r9         "Inlining Arg"
+;  V63 tmp61        [V63,T23] (  3,  3   )     int  ->  r12         "Inlining Arg"
 ;* V64 tmp62        [V64    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;* V65 tmp63        [V65    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V66 tmp64        [V66,T96] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V66 tmp64        [V66,T64] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V67 tmp65        [V67    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V68 tmp66        [V68    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V69 tmp67        [V69    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V70 tmp68        [V70    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V71 tmp69        [V71    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
 ;* V72 tmp70        [V72    ] (  0,  0   )   byref  ->  zero-ref    single-def "impAppendStmt"
 ;* V73 tmp71        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V74 tmp72        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V75 tmp73        [V75    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V76 tmp74        [V76    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;* V77 tmp75        [V77    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inline return value spill temp"
-;  V78 tmp76        [V78,T66] (  3,  1.50)   byref  ->  rdi         "Inline stloc first use temp"
-;  V79 tmp77        [V79,T16] (  6,  6   )   byref  ->  rax         single-def "Inlining Arg"
-;* V80 tmp78        [V80    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
-;* V81 tmp79        [V81    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
-;* V82 tmp80        [V82    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
-;  V83 tmp81        [V83,T35] (  3,  3   )     ref  ->  rcx         single-def "MemoryMarshal.GetArrayDataReference array"
-;  V84 tmp82        [V84,T57] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V85 tmp83        [V85,T63] (  2,  2   )     int  ->  rdx         "Inlining Arg"
-;* V86 tmp84        [V86    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V87 tmp85        [V87    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V88 tmp86        [V88    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;  V89 tmp87        [V89,T41] (  3,  3   )     int  ->  rdx         "Inlining Arg"
-;* V90 tmp88        [V90    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V91 tmp89        [V91    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V92 tmp90        [V92,T97] (  2,  1   )    long  ->  rax         "Inline return value spill temp"
-;* V93 tmp91        [V93    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;  V94 tmp92        [V94,T10] (  5,  9.25)    long  ->  rax         "Inline stloc first use temp"
-;* V95 tmp93        [V95,T115] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V96 tmp94        [V96,T64] (  2,  2   )     int  ->  rax         "Inlining Arg"
-;* V97 tmp95        [V97    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;* V98 tmp96        [V98    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inline return value spill temp"
-;  V99 tmp97        [V99,T67] (  3,  1.50)   byref  ->  rsi         "Inline stloc first use temp"
-;  V100 tmp98       [V100,T17] (  6,  6   )   byref  ->  rbx         single-def "Inlining Arg"
-;* V101 tmp99       [V101    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[long]>
-;* V102 tmp100      [V102    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[long]>
-;* V103 tmp101      [V103    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[long]>
-;  V104 tmp102      [V104,T36] (  3,  3   )     ref  ->  rcx         single-def "MemoryMarshal.GetArrayDataReference array"
-;  V105 tmp103      [V105,T58] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V106 tmp104      [V106,T65] (  2,  2   )     int  ->  rdx         "Inlining Arg"
-;* V107 tmp105      [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V108 tmp106      [V108    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V109 tmp107      [V109    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;  V110 tmp108      [V110,T42] (  3,  3   )     int  ->  rdx         "Inlining Arg"
-;* V111 tmp109      [V111    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
-;* V112 tmp110      [V112    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V113 tmp111      [V113,T98] (  2,  1   )    long  ->  rdx         "Inline return value spill temp"
-;* V114 tmp112      [V114    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
-;  V115 tmp113      [V115,T11] (  5,  9.25)    long  ->   r8         "Inline stloc first use temp"
-;* V116 tmp114      [V116,T116] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V117 tmp115      [V117,T43] (  3,  3   )     int  ->  rdx         "Inlining Arg"
-;* V118 tmp116      [V118    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V119 tmp117      [V119,T72] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
-;* V120 tmp118      [V120    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V121 tmp119      [V121    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V122 tmp120      [V122    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V123 tmp121      [V123    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V124 tmp122      [V124    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;* V125 tmp123      [V125    ] (  0,  0   )   byref  ->  zero-ref    single-def "impAppendStmt"
-;* V126 tmp124      [V126    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V127 tmp125      [V127    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V128 tmp126      [V128    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V129 tmp127      [V129    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V130 tmp128      [V130    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V131 tmp129      [V131    ] (  0,  0   )     int  ->  zero-ref    single-def "field V04._length (fldOffset=0x8)" P-INDEP
-;* V132 tmp130      [V132    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V133 tmp131      [V133    ] (  0,  0   )     int  ->  zero-ref    single-def "field V05._length (fldOffset=0x8)" P-INDEP
-;  V134 tmp132      [V134,T76] (  2,  1   )   byref  ->  rdi         single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;  V135 tmp133      [V135,T99] (  2,  1   )     int  ->  rax         single-def "field V06._length (fldOffset=0x8)" P-INDEP
-;* V136 tmp134      [V136    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V137 tmp135      [V137    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x8)" P-INDEP
-;* V138 tmp136      [V138    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V139 tmp137      [V139    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
-;  V140 tmp138      [V140,T45] (  3,  2   )   byref  ->  rsi         "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V141 tmp139      [V141,T49] (  3,  2   )     int  ->  rcx         "field V10._length (fldOffset=0x8)" P-INDEP
-;* V142 tmp140      [V142    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V143 tmp141      [V143    ] (  0,  0   )     int  ->  zero-ref    single-def "field V11._length (fldOffset=0x8)" P-INDEP
-;  V144 tmp142      [V144,T77] (  2,  1   )   byref  ->  rsi         single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-;  V145 tmp143      [V145,T100] (  2,  1   )     int  ->  rcx         single-def "field V15._length (fldOffset=0x8)" P-INDEP
-;  V146 tmp144      [V146,T78] (  2,  1   )   byref  ->  rsi         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;* V147 tmp145      [V147    ] (  0,  0   )     int  ->  zero-ref    single-def "field V17._length (fldOffset=0x8)" P-INDEP
-;  V148 tmp146      [V148,T79] (  2,  1   )   byref  ->  rsi         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;  V149 tmp147      [V149,T101] (  2,  1   )     int  ->  rcx         single-def "field V19._length (fldOffset=0x8)" P-INDEP
-;  V150 tmp148      [V150,T22] (  2,  5   )   byref  ->  rsi         single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-;  V151 tmp149      [V151,T18] (  3,  6   )     int  ->  rcx         single-def "field V22._length (fldOffset=0x8)" P-INDEP
-;* V152 tmp150      [V152    ] (  0,  0   )   byref  ->  zero-ref    "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V153 tmp151      [V153    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
-;  V154 tmp152      [V154,T46] (  3,  2   )   byref  ->   r8         "field V27._reference (fldOffset=0x0)" P-INDEP
-;  V155 tmp153      [V155,T50] (  3,  2   )     int  ->  r10         "field V27._length (fldOffset=0x8)" P-INDEP
-;* V156 tmp154      [V156    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V28._reference (fldOffset=0x0)" P-INDEP
-;* V157 tmp155      [V157    ] (  0,  0   )     int  ->  zero-ref    single-def "field V28._length (fldOffset=0x8)" P-INDEP
-;  V158 tmp156      [V158,T80] (  2,  1   )   byref  ->   r8         single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-;  V159 tmp157      [V159,T102] (  2,  1   )     int  ->  r10         single-def "field V32._length (fldOffset=0x8)" P-INDEP
-;  V160 tmp158      [V160,T81] (  2,  1   )   byref  ->   r8         single-def "field V34._reference (fldOffset=0x0)" P-INDEP
-;* V161 tmp159      [V161    ] (  0,  0   )     int  ->  zero-ref    single-def "field V34._length (fldOffset=0x8)" P-INDEP
-;  V162 tmp160      [V162,T82] (  2,  1   )   byref  ->   r8         single-def "field V36._reference (fldOffset=0x0)" P-INDEP
-;  V163 tmp161      [V163,T103] (  2,  1   )     int  ->  r10         single-def "field V36._length (fldOffset=0x8)" P-INDEP
-;  V164 tmp162      [V164,T23] (  2,  5   )   byref  ->   r8         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
-;  V165 tmp163      [V165,T19] (  3,  6   )     int  ->  r10         single-def "field V39._length (fldOffset=0x8)" P-INDEP
-;  V166 tmp164      [V166,T68] (  3,  1.50)   byref  ->  rdi         "field V42._reference (fldOffset=0x0)" P-INDEP
-;  V167 tmp165      [V167,T73] (  3,  1.50)     int  ->  rax         "field V42._length (fldOffset=0x8)" P-INDEP
-;* V168 tmp166      [V168    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-;* V169 tmp167      [V169    ] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
-;  V170 tmp168      [V170,T83] (  2,  1   )   byref  ->  rdi         single-def "field V48._reference (fldOffset=0x0)" P-INDEP
-;  V171 tmp169      [V171,T104] (  2,  1   )     int  ->  rax         single-def "field V48._length (fldOffset=0x8)" P-INDEP
-;  V172 tmp170      [V172,T84] (  2,  1   )   byref  ->  rdx         single-def "field V50._reference (fldOffset=0x0)" P-INDEP
-;* V173 tmp171      [V173    ] (  0,  0   )     int  ->  zero-ref    single-def "field V50._length (fldOffset=0x8)" P-INDEP
-;  V174 tmp172      [V174,T85] (  2,  1   )   byref  ->  rdi         single-def "field V52._reference (fldOffset=0x0)" P-INDEP
-;  V175 tmp173      [V175,T105] (  2,  1   )     int  ->  rax         single-def "field V52._length (fldOffset=0x8)" P-INDEP
-;  V176 tmp174      [V176,T69] (  3,  1.50)   byref  ->  rsi         "field V54._reference (fldOffset=0x0)" P-INDEP
-;  V177 tmp175      [V177,T44] (  4,  2   )     int  ->   r9         "field V54._length (fldOffset=0x8)" P-INDEP
-;* V178 tmp176      [V178    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V56._reference (fldOffset=0x0)" P-INDEP
-;* V179 tmp177      [V179    ] (  0,  0   )     int  ->  zero-ref    single-def "field V56._length (fldOffset=0x8)" P-INDEP
-;  V180 tmp178      [V180,T86] (  2,  1   )   byref  ->  rsi         single-def "field V60._reference (fldOffset=0x0)" P-INDEP
-;  V181 tmp179      [V181,T106] (  2,  1   )     int  ->   r9         single-def "field V60._length (fldOffset=0x8)" P-INDEP
-;  V182 tmp180      [V182,T87] (  2,  1   )   byref  ->  rsi         single-def "field V62._reference (fldOffset=0x0)" P-INDEP
-;* V183 tmp181      [V183    ] (  0,  0   )     int  ->  zero-ref    single-def "field V62._length (fldOffset=0x8)" P-INDEP
-;  V184 tmp182      [V184,T88] (  2,  1   )   byref  ->  rsi         single-def "field V64._reference (fldOffset=0x0)" P-INDEP
-;  V185 tmp183      [V185,T107] (  2,  1   )     int  ->   r9         single-def "field V64._length (fldOffset=0x8)" P-INDEP
-;* V186 tmp184      [V186    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V67._reference (fldOffset=0x0)" P-INDEP
-;* V187 tmp185      [V187    ] (  0,  0   )     int  ->  zero-ref    single-def "field V67._length (fldOffset=0x8)" P-INDEP
-;* V188 tmp186      [V188    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V69._reference (fldOffset=0x0)" P-INDEP
-;* V189 tmp187      [V189    ] (  0,  0   )     int  ->  zero-ref    single-def "field V69._length (fldOffset=0x8)" P-INDEP
-;* V190 tmp188      [V190    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V73._reference (fldOffset=0x0)" P-INDEP
-;* V191 tmp189      [V191    ] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
-;* V192 tmp190      [V192    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V74._reference (fldOffset=0x0)" P-INDEP
-;* V193 tmp191      [V193    ] (  0,  0   )     int  ->  zero-ref    "field V74._length (fldOffset=0x8)" P-INDEP
-;* V194 tmp192      [V194    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
-;* V195 tmp193      [V195    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
-;* V196 tmp194      [V196    ] (  0,  0   )   byref  ->  zero-ref    "field V76._reference (fldOffset=0x0)" P-INDEP
-;* V197 tmp195      [V197    ] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
-;* V198 tmp196      [V198    ] (  0,  0   )   byref  ->  zero-ref    "field V80._reference (fldOffset=0x0)" P-INDEP
-;* V199 tmp197      [V199    ] (  0,  0   )     int  ->  zero-ref    "field V80._length (fldOffset=0x8)" P-INDEP
-;  V200 tmp198      [V200,T70] (  3,  1.50)   byref  ->  rcx         "field V81._reference (fldOffset=0x0)" P-INDEP
-;  V201 tmp199      [V201,T74] (  3,  1.50)     int  ->  rdx         "field V81._length (fldOffset=0x8)" P-INDEP
-;* V202 tmp200      [V202    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V82._reference (fldOffset=0x0)" P-INDEP
-;* V203 tmp201      [V203    ] (  0,  0   )     int  ->  zero-ref    single-def "field V82._length (fldOffset=0x8)" P-INDEP
-;  V204 tmp202      [V204,T89] (  2,  1   )   byref  ->  rcx         single-def "field V86._reference (fldOffset=0x0)" P-INDEP
-;  V205 tmp203      [V205,T108] (  2,  1   )     int  ->  rdx         single-def "field V86._length (fldOffset=0x8)" P-INDEP
-;  V206 tmp204      [V206,T90] (  2,  1   )   byref  ->  rcx         single-def "field V88._reference (fldOffset=0x0)" P-INDEP
-;* V207 tmp205      [V207    ] (  0,  0   )     int  ->  zero-ref    single-def "field V88._length (fldOffset=0x8)" P-INDEP
-;  V208 tmp206      [V208,T91] (  2,  1   )   byref  ->  rcx         single-def "field V90._reference (fldOffset=0x0)" P-INDEP
-;  V209 tmp207      [V209,T109] (  2,  1   )     int  ->  rdx         single-def "field V90._length (fldOffset=0x8)" P-INDEP
-;  V210 tmp208      [V210,T24] (  2,  4.50)   byref  ->  rcx         single-def "field V93._reference (fldOffset=0x0)" P-INDEP
-;  V211 tmp209      [V211,T20] (  3,  5   )     int  ->  rdx         single-def "field V93._length (fldOffset=0x8)" P-INDEP
-;  V212 tmp210      [V212,T92] (  2,  1   )   byref  ->  rdi         single-def "field V97._reference (fldOffset=0x0)" P-INDEP
-;  V213 tmp211      [V213,T110] (  2,  1   )     int  ->  rax         single-def "field V97._length (fldOffset=0x8)" P-INDEP
-;* V214 tmp212      [V214    ] (  0,  0   )   byref  ->  zero-ref    "field V101._reference (fldOffset=0x0)" P-INDEP
-;* V215 tmp213      [V215    ] (  0,  0   )     int  ->  zero-ref    "field V101._length (fldOffset=0x8)" P-INDEP
-;  V216 tmp214      [V216,T71] (  3,  1.50)   byref  ->  rcx         "field V102._reference (fldOffset=0x0)" P-INDEP
-;  V217 tmp215      [V217,T75] (  3,  1.50)     int  ->  rdx         "field V102._length (fldOffset=0x8)" P-INDEP
-;* V218 tmp216      [V218    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V103._reference (fldOffset=0x0)" P-INDEP
-;* V219 tmp217      [V219    ] (  0,  0   )     int  ->  zero-ref    single-def "field V103._length (fldOffset=0x8)" P-INDEP
-;  V220 tmp218      [V220,T93] (  2,  1   )   byref  ->  rcx         single-def "field V107._reference (fldOffset=0x0)" P-INDEP
-;  V221 tmp219      [V221,T111] (  2,  1   )     int  ->  rdx         single-def "field V107._length (fldOffset=0x8)" P-INDEP
-;  V222 tmp220      [V222,T94] (  2,  1   )   byref  ->  rcx         single-def "field V109._reference (fldOffset=0x0)" P-INDEP
-;* V223 tmp221      [V223    ] (  0,  0   )     int  ->  zero-ref    single-def "field V109._length (fldOffset=0x8)" P-INDEP
-;  V224 tmp222      [V224,T95] (  2,  1   )   byref  ->  rcx         single-def "field V111._reference (fldOffset=0x0)" P-INDEP
-;  V225 tmp223      [V225,T112] (  2,  1   )     int  ->  rdx         single-def "field V111._length (fldOffset=0x8)" P-INDEP
-;  V226 tmp224      [V226,T25] (  2,  4.50)   byref  ->  rcx         single-def "field V114._reference (fldOffset=0x0)" P-INDEP
-;  V227 tmp225      [V227,T21] (  3,  5   )     int  ->  rdx         single-def "field V114._length (fldOffset=0x8)" P-INDEP
-;* V228 tmp226      [V228    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V118._reference (fldOffset=0x0)" P-INDEP
-;* V229 tmp227      [V229    ] (  0,  0   )     int  ->  zero-ref    single-def "field V118._length (fldOffset=0x8)" P-INDEP
-;* V230 tmp228      [V230    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V120._reference (fldOffset=0x0)" P-INDEP
-;* V231 tmp229      [V231    ] (  0,  0   )     int  ->  zero-ref    single-def "field V120._length (fldOffset=0x8)" P-INDEP
-;* V232 tmp230      [V232    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V122._reference (fldOffset=0x0)" P-INDEP
-;* V233 tmp231      [V233    ] (  0,  0   )     int  ->  zero-ref    single-def "field V122._length (fldOffset=0x8)" P-INDEP
-;* V234 tmp232      [V234    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V126._reference (fldOffset=0x0)" P-INDEP
-;* V235 tmp233      [V235    ] (  0,  0   )     int  ->  zero-ref    "field V126._length (fldOffset=0x8)" P-INDEP
-;* V236 tmp234      [V236    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V127._reference (fldOffset=0x0)" P-INDEP
-;* V237 tmp235      [V237    ] (  0,  0   )     int  ->  zero-ref    "field V127._length (fldOffset=0x8)" P-INDEP
-;* V238 tmp236      [V238    ] (  0,  0   )   byref  ->  zero-ref    "field V128._reference (fldOffset=0x0)" P-INDEP
-;* V239 tmp237      [V239    ] (  0,  0   )     int  ->  zero-ref    "field V128._length (fldOffset=0x8)" P-INDEP
-;* V240 tmp238      [V240    ] (  0,  0   )   byref  ->  zero-ref    "field V129._reference (fldOffset=0x0)" P-INDEP
-;* V241 tmp239      [V241    ] (  0,  0   )     int  ->  zero-ref    "field V129._length (fldOffset=0x8)" P-INDEP
-;  V242 cse0        [V242,T04] (  3, 12   )    long  ->   r9         "CSE #05: moderate"
-;  V243 cse1        [V243,T05] (  3, 12   )    long  ->  r14         "CSE #10: moderate"
-;  V244 cse2        [V244,T06] (  3, 12   )    long  ->   r8         "CSE #19: moderate"
-;  V245 cse3        [V245,T07] (  3, 12   )    long  ->  r10         "CSE #24: moderate"
-;  V246 cse4        [V246,T29] (  6,  3   )     int  ->  rax         multi-def "CSE #02: conservative"
-;  V247 cse5        [V247,T30] (  6,  3   )     int  ->   r9         multi-def "CSE #07: conservative"
-;  V248 cse6        [V248,T27] (  5,  3.50)     ref  ->  rdi         "CSE #01: moderate"
-;  V249 cse7        [V249,T28] (  5,  3.50)     ref  ->  rcx         "CSE #06: moderate"
-;  V250 rat0        [V250,T00] (  5, 16.25)    long  ->   r8         "Widened IV V24"
-;  V251 rat1        [V251,T01] (  5, 16.25)    long  ->  r11         "Widened IV V41"
-;  V252 rat2        [V252,T02] (  5, 16.25)    long  ->  rsi         "Widened IV V95"
-;  V253 rat3        [V253,T03] (  5, 16.25)    long  ->   r9         "Widened IV V116"
+;  V77 tmp75        [V77,T34] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V78 tmp76        [V78,T41] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;* V79 tmp77        [V79    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;  V80 tmp78        [V80,T35] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V81 tmp79        [V81,T24] (  3,  3   )     int  ->  rax         "Inlining Arg"
+;* V82 tmp80        [V82    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;  V83 tmp81        [V83,T48] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;* V84 tmp82        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V85 tmp83        [V85    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V86 tmp84        [V86    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V87 tmp85        [V87    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V88 tmp86        [V88    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
+;* V89 tmp87        [V89    ] (  0,  0   )   byref  ->  zero-ref    single-def "impAppendStmt"
+;* V90 tmp88        [V90    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V91 tmp89        [V91    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V92 tmp90        [V92    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V93 tmp91        [V93    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V94 tmp92        [V94    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V95 tmp93        [V95    ] (  0,  0   )     int  ->  zero-ref    single-def "field V04._length (fldOffset=0x8)" P-INDEP
+;* V96 tmp94        [V96    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V97 tmp95        [V97    ] (  0,  0   )     int  ->  zero-ref    single-def "field V05._length (fldOffset=0x8)" P-INDEP
+;* V98 tmp96        [V98    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
+;* V99 tmp97        [V99    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
+;* V100 tmp98       [V100    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V101 tmp99       [V101    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x8)" P-INDEP
+;* V102 tmp100      [V102    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
+;* V103 tmp101      [V103    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
+;  V104 tmp102      [V104,T42] (  3,  1.50)   byref  ->  rcx         "field V10._reference (fldOffset=0x0)" P-INDEP
+;  V105 tmp103      [V105,T49] (  3,  1.50)     int  ->  rdx         "field V10._length (fldOffset=0x8)" P-INDEP
+;* V106 tmp104      [V106    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V107 tmp105      [V107    ] (  0,  0   )     int  ->  zero-ref    single-def "field V11._length (fldOffset=0x8)" P-INDEP
+;  V108 tmp106      [V108,T52] (  2,  1   )   byref  ->  rcx         single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;  V109 tmp107      [V109,T65] (  2,  1   )     int  ->  rdx         single-def "field V15._length (fldOffset=0x8)" P-INDEP
+;  V110 tmp108      [V110,T53] (  2,  1   )   byref  ->  rcx         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;* V111 tmp109      [V111    ] (  0,  0   )     int  ->  zero-ref    single-def "field V17._length (fldOffset=0x8)" P-INDEP
+;  V112 tmp110      [V112,T54] (  2,  1   )   byref  ->  rcx         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V113 tmp111      [V113,T66] (  2,  1   )     int  ->  rdx         single-def "field V19._length (fldOffset=0x8)" P-INDEP
+;  V114 tmp112      [V114,T12] (  2,  4.50)   byref  ->  rcx         single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+;  V115 tmp113      [V115,T10] (  3,  5   )     int  ->  rdx         single-def "field V22._length (fldOffset=0x8)" P-INDEP
+;* V116 tmp114      [V116    ] (  0,  0   )   byref  ->  zero-ref    "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V117 tmp115      [V117    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
+;  V118 tmp116      [V118,T43] (  3,  1.50)   byref  ->  rcx         "field V27._reference (fldOffset=0x0)" P-INDEP
+;  V119 tmp117      [V119,T50] (  3,  1.50)     int  ->  rdx         "field V27._length (fldOffset=0x8)" P-INDEP
+;* V120 tmp118      [V120    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+;* V121 tmp119      [V121    ] (  0,  0   )     int  ->  zero-ref    single-def "field V28._length (fldOffset=0x8)" P-INDEP
+;  V122 tmp120      [V122,T55] (  2,  1   )   byref  ->  rcx         single-def "field V32._reference (fldOffset=0x0)" P-INDEP
+;  V123 tmp121      [V123,T67] (  2,  1   )     int  ->  rdx         single-def "field V32._length (fldOffset=0x8)" P-INDEP
+;  V124 tmp122      [V124,T56] (  2,  1   )   byref  ->  rcx         single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V125 tmp123      [V125    ] (  0,  0   )     int  ->  zero-ref    single-def "field V34._length (fldOffset=0x8)" P-INDEP
+;  V126 tmp124      [V126,T57] (  2,  1   )   byref  ->  rcx         single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+;  V127 tmp125      [V127,T68] (  2,  1   )     int  ->  rdx         single-def "field V36._length (fldOffset=0x8)" P-INDEP
+;  V128 tmp126      [V128,T13] (  2,  4.50)   byref  ->  rcx         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
+;  V129 tmp127      [V129,T11] (  3,  5   )     int  ->  rdx         single-def "field V39._length (fldOffset=0x8)" P-INDEP
+;  V130 tmp128      [V130,T44] (  3,  1.50)   byref  ->  rdi         "field V42._reference (fldOffset=0x0)" P-INDEP
+;  V131 tmp129      [V131,T51] (  3,  1.50)     int  ->  r14         "field V42._length (fldOffset=0x8)" P-INDEP
+;* V132 tmp130      [V132    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V133 tmp131      [V133    ] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
+;  V134 tmp132      [V134,T58] (  2,  1   )   byref  ->  rdi         single-def "field V48._reference (fldOffset=0x0)" P-INDEP
+;  V135 tmp133      [V135,T69] (  2,  1   )     int  ->  r14         single-def "field V48._length (fldOffset=0x8)" P-INDEP
+;  V136 tmp134      [V136,T59] (  2,  1   )   byref  ->  rax         single-def "field V50._reference (fldOffset=0x0)" P-INDEP
+;* V137 tmp135      [V137    ] (  0,  0   )     int  ->  zero-ref    single-def "field V50._length (fldOffset=0x8)" P-INDEP
+;  V138 tmp136      [V138,T60] (  2,  1   )   byref  ->  rdi         single-def "field V52._reference (fldOffset=0x0)" P-INDEP
+;  V139 tmp137      [V139,T70] (  2,  1   )     int  ->  r14         single-def "field V52._length (fldOffset=0x8)" P-INDEP
+;  V140 tmp138      [V140,T45] (  3,  1.50)   byref  ->  rsi         "field V54._reference (fldOffset=0x0)" P-INDEP
+;  V141 tmp139      [V141,T27] (  4,  2   )     int  ->  r12         "field V54._length (fldOffset=0x8)" P-INDEP
+;* V142 tmp140      [V142    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V56._reference (fldOffset=0x0)" P-INDEP
+;* V143 tmp141      [V143    ] (  0,  0   )     int  ->  zero-ref    single-def "field V56._length (fldOffset=0x8)" P-INDEP
+;  V144 tmp142      [V144,T61] (  2,  1   )   byref  ->  rsi         single-def "field V60._reference (fldOffset=0x0)" P-INDEP
+;  V145 tmp143      [V145,T71] (  2,  1   )     int  ->  r12         single-def "field V60._length (fldOffset=0x8)" P-INDEP
+;  V146 tmp144      [V146,T62] (  2,  1   )   byref  ->  rax         single-def "field V62._reference (fldOffset=0x0)" P-INDEP
+;* V147 tmp145      [V147    ] (  0,  0   )     int  ->  zero-ref    single-def "field V62._length (fldOffset=0x8)" P-INDEP
+;  V148 tmp146      [V148,T63] (  2,  1   )   byref  ->  rsi         single-def "field V64._reference (fldOffset=0x0)" P-INDEP
+;  V149 tmp147      [V149,T72] (  2,  1   )     int  ->  r12         single-def "field V64._length (fldOffset=0x8)" P-INDEP
+;* V150 tmp148      [V150    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V67._reference (fldOffset=0x0)" P-INDEP
+;* V151 tmp149      [V151    ] (  0,  0   )     int  ->  zero-ref    single-def "field V67._length (fldOffset=0x8)" P-INDEP
+;* V152 tmp150      [V152    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V69._reference (fldOffset=0x0)" P-INDEP
+;* V153 tmp151      [V153    ] (  0,  0   )     int  ->  zero-ref    single-def "field V69._length (fldOffset=0x8)" P-INDEP
+;* V154 tmp152      [V154    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V73._reference (fldOffset=0x0)" P-INDEP
+;* V155 tmp153      [V155    ] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
+;* V156 tmp154      [V156    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V74._reference (fldOffset=0x0)" P-INDEP
+;* V157 tmp155      [V157    ] (  0,  0   )     int  ->  zero-ref    "field V74._length (fldOffset=0x8)" P-INDEP
+;* V158 tmp156      [V158    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
+;* V159 tmp157      [V159    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
+;* V160 tmp158      [V160    ] (  0,  0   )   byref  ->  zero-ref    "field V76._reference (fldOffset=0x0)" P-INDEP
+;* V161 tmp159      [V161    ] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
+;* V162 tmp160      [V162    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V79._reference (fldOffset=0x0)" P-INDEP
+;* V163 tmp161      [V163    ] (  0,  0   )     int  ->  zero-ref    single-def "field V79._length (fldOffset=0x8)" P-INDEP
+;* V164 tmp162      [V164    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V82._reference (fldOffset=0x0)" P-INDEP
+;* V165 tmp163      [V165    ] (  0,  0   )     int  ->  zero-ref    single-def "field V82._length (fldOffset=0x8)" P-INDEP
+;* V166 tmp164      [V166    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V84._reference (fldOffset=0x0)" P-INDEP
+;* V167 tmp165      [V167    ] (  0,  0   )     int  ->  zero-ref    single-def "field V84._length (fldOffset=0x8)" P-INDEP
+;* V168 tmp166      [V168    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V86._reference (fldOffset=0x0)" P-INDEP
+;* V169 tmp167      [V169    ] (  0,  0   )     int  ->  zero-ref    single-def "field V86._length (fldOffset=0x8)" P-INDEP
+;* V170 tmp168      [V170    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V90._reference (fldOffset=0x0)" P-INDEP
+;* V171 tmp169      [V171    ] (  0,  0   )     int  ->  zero-ref    "field V90._length (fldOffset=0x8)" P-INDEP
+;* V172 tmp170      [V172    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V91._reference (fldOffset=0x0)" P-INDEP
+;* V173 tmp171      [V173    ] (  0,  0   )     int  ->  zero-ref    "field V91._length (fldOffset=0x8)" P-INDEP
+;* V174 tmp172      [V174    ] (  0,  0   )   byref  ->  zero-ref    "field V92._reference (fldOffset=0x0)" P-INDEP
+;* V175 tmp173      [V175    ] (  0,  0   )     int  ->  zero-ref    "field V92._length (fldOffset=0x8)" P-INDEP
+;* V176 tmp174      [V176    ] (  0,  0   )   byref  ->  zero-ref    "field V93._reference (fldOffset=0x0)" P-INDEP
+;* V177 tmp175      [V177    ] (  0,  0   )     int  ->  zero-ref    "field V93._length (fldOffset=0x8)" P-INDEP
+;  V178 cse0        [V178,T02] (  3, 12   )    long  ->   r8         "CSE #05: aggressive"
+;  V179 cse1        [V179,T03] (  3, 12   )    long  ->   r9         "CSE #10: aggressive"
+;  V180 cse2        [V180,T14] (  6,  3   )     int  ->  r14         multi-def "CSE #02: moderate"
+;  V181 cse3        [V181,T15] (  6,  3   )     int  ->  r12         multi-def "CSE #07: moderate"
+;  V182 cse4        [V182,T25] (  5,  2.50)     ref  ->  rdi         "CSE #01: moderate"
+;  V183 cse5        [V183,T26] (  5,  2.50)     ref  ->  rsi         "CSE #06: moderate"
+;  V184 rat0        [V184,T00] (  5, 16.25)    long  ->  rsi         "Widened IV V24"
+;  V185 rat1        [V185,T01] (  5, 16.25)    long  ->   r8         "Widened IV V41"
 ;
 ; Lcl frame size = 8
 
 G_M19522_IG01:
        push     rbp
        push     r15
        push     r14
+       push     r13
+       push     r12
        push     rbx
        push     rax
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x30]
        mov      rbx, rdi
        mov      r15, rsi
-						;; size=18 bbWeight=1 PerfScore 6.00
+						;; size=22 bbWeight=1 PerfScore 8.00
 G_M19522_IG02:
-       lea      rdx, bword ptr [rbx+0x08]
-       mov      rdi, gword ptr [rdx]
+       mov      rax, qword ptr [rbx+0x10]
+       cmp      rax, qword ptr [r15+0x10]
+       jne      G_M19522_IG22
+						;; size=14 bbWeight=1 PerfScore 6.00
+G_M19522_IG03:
+       lea      rax, bword ptr [rbx+0x08]
+       mov      rdi, gword ptr [rax]
        test     rdi, rdi
        jne      SHORT G_M19522_IG04
-						;; size=12 bbWeight=1 PerfScore 3.75
-G_M19522_IG03:
-       lea      rsi, bword ptr [rdx+0x18]
-       mov      eax, dword ptr [rdx+0x10]
-       mov      ecx, eax
-       cmp      ecx, 5
-       ja       G_M19522_IG42
+       lea      rcx, bword ptr [rax+0x18]
+       mov      r14d, dword ptr [rax+0x10]
+       mov      edx, r14d
+       cmp      edx, 5
+       ja       G_M19522_IG29
        jmp      SHORT G_M19522_IG05
-       align    [3 bytes for IG07]
-						;; size=23 bbWeight=0.50 PerfScore 3.00
+       align    [0 bytes for IG07]
+						;; size=34 bbWeight=0.50 PerfScore 4.88
 G_M19522_IG04:
-       mov      rsi, rdi
-       cmp      byte  ptr [rsi], sil
-       add      rsi, 16
-       mov      eax, dword ptr [rdx+0x10]
-       mov      ecx, eax
-						;; size=15 bbWeight=0.50 PerfScore 2.88
+       mov      rcx, rdi
+       cmp      byte  ptr [rcx], cl
+       add      rcx, 16
+       mov      r14d, dword ptr [rax+0x10]
+       mov      edx, r14d
+						;; size=16 bbWeight=0.50 PerfScore 2.88
 G_M19522_IG05:
-       test     ecx, ecx
+       test     edx, edx
        je       SHORT G_M19522_IG09
-						;; size=4 bbWeight=1 PerfScore 1.25
+						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M19522_IG06:
-       mov      edx, 1
+       mov      eax, 1
+       xor      esi, esi
+						;; size=7 bbWeight=0.25 PerfScore 0.12
+G_M19522_IG07:
+       mov      r8, qword ptr [rcx+8*rsi]
+       test     r8, r8
+       jl       G_M19522_IG28
+       imul     rax, r8
+       inc      esi
+       cmp      esi, edx
+       jl       SHORT G_M19522_IG07
+						;; size=23 bbWeight=4 PerfScore 27.00
+G_M19522_IG08:
+       test     rax, rax
+       jl       G_M19522_IG28
+       mov      r13, rax
+       jmp      SHORT G_M19522_IG10
+       align    [0 bytes for IG14]
+						;; size=14 bbWeight=0.50 PerfScore 1.75
+G_M19522_IG09:
+       xor      r13d, r13d
+						;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M19522_IG10:
+       lea      rax, bword ptr [r15+0x08]
+       mov      rsi, gword ptr [rax]
+       test     rsi, rsi
+       jne      SHORT G_M19522_IG11
+       lea      rcx, bword ptr [rax+0x18]
+       mov      r12d, dword ptr [rax+0x10]
+       mov      edx, r12d
+       cmp      edx, 5
+       ja       G_M19522_IG29
+       jmp      SHORT G_M19522_IG12
+						;; size=34 bbWeight=0.50 PerfScore 4.88
+G_M19522_IG11:
+       mov      rcx, rsi
+       cmp      byte  ptr [rcx], cl
+       add      rcx, 16
+       mov      r12d, dword ptr [rax+0x10]
+       mov      edx, r12d
+						;; size=16 bbWeight=0.50 PerfScore 2.88
+G_M19522_IG12:
+       test     edx, edx
+       je       SHORT G_M19522_IG16
+						;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M19522_IG13:
+       mov      eax, 1
        xor      r8d, r8d
 						;; size=8 bbWeight=0.25 PerfScore 0.12
-G_M19522_IG07:
-       mov      r9, qword ptr [rsi+8*r8]
-       test     r9, r9
-       jl       G_M19522_IG43
-       imul     rdx, r9
-       inc      r8d
-       cmp      r8d, ecx
-       jl       SHORT G_M19522_IG07
-						;; size=25 bbWeight=4 PerfScore 27.00
-G_M19522_IG08:
-       test     rdx, rdx
-       jl       G_M19522_IG43
-       jmp      SHORT G_M19522_IG10
-       align    [9 bytes for IG15]
-						;; size=20 bbWeight=0.50 PerfScore 1.62
-G_M19522_IG09:
-       xor      edx, edx
-						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M19522_IG10:
-       lea      rsi, bword ptr [r15+0x08]
-       mov      rcx, gword ptr [rsi]
-       test     rcx, rcx
-       jne      SHORT G_M19522_IG12
-						;; size=12 bbWeight=1 PerfScore 3.75
-G_M19522_IG11:
-       lea      r8, bword ptr [rsi+0x18]
-       mov      r9d, dword ptr [rsi+0x10]
-       mov      r10d, r9d
-       cmp      r10d, 5
-       ja       G_M19522_IG42
-       jmp      SHORT G_M19522_IG13
-						;; size=23 bbWeight=0.50 PerfScore 3.00
-G_M19522_IG12:
-       mov      r8, rcx
-       cmp      byte  ptr [r8], r8b
-       add      r8, 16
-       mov      r9d, dword ptr [rsi+0x10]
-       mov      r10d, r9d
-						;; size=17 bbWeight=0.50 PerfScore 2.88
-G_M19522_IG13:
-       test     r10d, r10d
-       je       SHORT G_M19522_IG17
-						;; size=5 bbWeight=1 PerfScore 1.25
 G_M19522_IG14:
-       mov      esi, 1
-       xor      r11d, r11d
-						;; size=8 bbWeight=0.25 PerfScore 0.12
-G_M19522_IG15:
-       mov      r14, qword ptr [r8+8*r11]
-       test     r14, r14
-       jl       G_M19522_IG43
-       imul     rsi, r14
-       inc      r11d
-       cmp      r11d, r10d
-       jl       SHORT G_M19522_IG15
+       mov      r9, qword ptr [rcx+8*r8]
+       test     r9, r9
+       jl       G_M19522_IG28
+       imul     rax, r9
+       inc      r8d
+       cmp      r8d, edx
+       jl       SHORT G_M19522_IG14
 						;; size=25 bbWeight=4 PerfScore 27.00
+G_M19522_IG15:
+       test     rax, rax
+       jl       G_M19522_IG28
+       jmp      SHORT G_M19522_IG17
+						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M19522_IG16:
-       test     rsi, rsi
-       jl       G_M19522_IG43
-       jmp      SHORT G_M19522_IG18
-       align    [9 bytes for IG30]
-						;; size=20 bbWeight=0.50 PerfScore 1.62
-G_M19522_IG17:
-       xor      esi, esi
+       xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M19522_IG18:
-       cmp      rdx, rsi
-       jne      SHORT G_M19522_IG24
-						;; size=5 bbWeight=1 PerfScore 1.25
-G_M19522_IG19:
-       mov      rdx, qword ptr [rbx+0x10]
-       cmp      rdx, qword ptr [r15+0x10]
-       jne      SHORT G_M19522_IG24
-       lea      rdx, bword ptr [rbx+0x08]
+G_M19522_IG17:
+       cmp      r13, rax
+       jne      SHORT G_M19522_IG22
+       lea      rax, bword ptr [rbx+0x08]
        test     rdi, rdi
-       jne      SHORT G_M19522_IG20
-       add      rdx, 24
-       cmp      eax, 5
-       ja       G_M19522_IG42
-       mov      rdi, rdx
-       jmp      SHORT G_M19522_IG21
-						;; size=37 bbWeight=0.50 PerfScore 5.75
-G_M19522_IG20:
+       jne      SHORT G_M19522_IG18
+       add      rax, 24
+       cmp      r14d, 5
+       ja       G_M19522_IG29
+       mov      rdi, rax
+       jmp      SHORT G_M19522_IG19
+						;; size=33 bbWeight=0.50 PerfScore 3.38
+G_M19522_IG18:
        cmp      byte  ptr [rdi], dil
        add      rdi, 16
 						;; size=7 bbWeight=0.50 PerfScore 1.62
+G_M19522_IG19:
+       lea      rax, bword ptr [r15+0x08]
+       test     rsi, rsi
+       jne      SHORT G_M19522_IG20
+       add      rax, 24
+       cmp      r12d, 5
+       ja       SHORT G_M19522_IG29
+       mov      rsi, rax
+       jmp      SHORT G_M19522_IG21
+						;; size=24 bbWeight=0.50 PerfScore 2.75
+G_M19522_IG20:
+       cmp      byte  ptr [rsi], sil
+       add      rsi, 16
+						;; size=7 bbWeight=0.50 PerfScore 1.62
 G_M19522_IG21:
-       lea      rsi, bword ptr [r15+0x08]
-       test     rcx, rcx
+       cmp      r14d, r12d
        jne      SHORT G_M19522_IG22
-       add      rsi, 24
-       cmp      r9d, 5
-       ja       G_M19522_IG42
-       jmp      SHORT G_M19522_IG23
-						;; size=25 bbWeight=0.50 PerfScore 2.62
-G_M19522_IG22:
-       cmp      byte  ptr [rcx], cl
-       add      rcx, 16
-       mov      rsi, rcx
-						;; size=9 bbWeight=0.50 PerfScore 1.75
-G_M19522_IG23:
-       cmp      eax, r9d
-       jne      SHORT G_M19522_IG24
-       mov      edx, r9d
+       mov      edx, r12d
        shl      rdx, 3
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        test     eax, eax
-       jne      SHORT G_M19522_IG26
+       jne      SHORT G_M19522_IG24
 						;; size=28 bbWeight=0.50 PerfScore 3.25
-G_M19522_IG24:
+G_M19522_IG22:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M19522_IG25:
+G_M19522_IG23:
        add      rsp, 8
        pop      rbx
+       pop      r12
+       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M19522_IG26:
-       xor      rdi, rdi
-       lea      rax, bword ptr [rbx+0x08]
-       cmp      gword ptr [rax], 0
-       jne      SHORT G_M19522_IG27
-       lea      rcx, bword ptr [rax+0x18]
-       mov      edx, dword ptr [rax+0x10]
-       cmp      edx, 5
-       ja       G_M19522_IG42
-       jmp      SHORT G_M19522_IG28
-						;; size=30 bbWeight=0.50 PerfScore 5.25
-G_M19522_IG27:
-       mov      rcx, gword ptr [rax]
-       cmp      byte  ptr [rcx], cl
-       add      rcx, 16
-       mov      edx, dword ptr [rax+0x10]
-						;; size=12 bbWeight=0.50 PerfScore 3.62
-G_M19522_IG28:
-       test     edx, edx
-       je       SHORT G_M19522_IG32
-						;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M19522_IG29:
-       mov      eax, 1
-       xor      esi, esi
-						;; size=7 bbWeight=0.25 PerfScore 0.12
-G_M19522_IG30:
-       mov      r8, qword ptr [rcx+8*rsi]
-       test     r8, r8
-       jl       G_M19522_IG43
-       imul     rax, r8
-       inc      esi
-       cmp      esi, edx
-       jl       SHORT G_M19522_IG30
-						;; size=23 bbWeight=4 PerfScore 27.00
-G_M19522_IG31:
-       test     rax, rax
-       jl       G_M19522_IG43
-       test     rax, rax
-       je       SHORT G_M19522_IG32
+						;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M19522_IG24:
        mov      rdi, bword ptr [rbx]
-						;; size=17 bbWeight=0.50 PerfScore 2.25
-G_M19522_IG32:
-       mov      eax, dword ptr [rbx+0x10]
-       xor      rsi, rsi
-       lea      rbx, bword ptr [r15+0x08]
-       cmp      gword ptr [rbx], 0
-       jne      SHORT G_M19522_IG33
-       lea      rcx, bword ptr [rbx+0x18]
        mov      edx, dword ptr [rbx+0x10]
-       cmp      edx, 5
-       ja       SHORT G_M19522_IG42
-       jmp      SHORT G_M19522_IG34
-       align    [2 bytes for IG36]
-						;; size=31 bbWeight=0.50 PerfScore 6.25
-G_M19522_IG33:
-       mov      rcx, gword ptr [rbx]
-       cmp      byte  ptr [rcx], cl
-       add      rcx, 16
-       mov      edx, dword ptr [rbx+0x10]
-						;; size=12 bbWeight=0.50 PerfScore 3.62
-G_M19522_IG34:
-       test     edx, edx
-       je       SHORT G_M19522_IG38
-						;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M19522_IG35:
-       mov      r8d, 1
-       xor      r9d, r9d
-						;; size=9 bbWeight=0.25 PerfScore 0.12
-G_M19522_IG36:
-       mov      r10, qword ptr [rcx+8*r9]
-       test     r10, r10
-       jl       SHORT G_M19522_IG43
-       imul     r8, r10
-       inc      r9d
-       cmp      r9d, edx
-       jl       SHORT G_M19522_IG36
-						;; size=21 bbWeight=4 PerfScore 27.00
-G_M19522_IG37:
-       test     r8, r8
-       jl       SHORT G_M19522_IG43
-       mov      rdx, r8
-       test     rdx, rdx
-       je       SHORT G_M19522_IG38
        mov      rsi, bword ptr [r15]
-						;; size=16 bbWeight=0.50 PerfScore 2.38
-G_M19522_IG38:
-       mov      edx, dword ptr [r15+0x10]
-       cmp      eax, edx
-       je       SHORT G_M19522_IG39
+       mov      eax, dword ptr [r15+0x10]
+       cmp      edx, eax
+       je       SHORT G_M19522_IG25
        xor      eax, eax
-       jmp      SHORT G_M19522_IG40
-						;; size=12 bbWeight=0.50 PerfScore 2.75
-G_M19522_IG39:
-       mov      edx, edx
+       jmp      SHORT G_M19522_IG26
+						;; size=21 bbWeight=0.50 PerfScore 5.75
+G_M19522_IG25:
+       mov      edx, eax
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
 						;; size=14 bbWeight=0.50 PerfScore 1.75
-G_M19522_IG40:
+G_M19522_IG26:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
-G_M19522_IG41:
+G_M19522_IG27:
        add      rsp, 8
        pop      rbx
+       pop      r12
+       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M19522_IG42:
+						;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M19522_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M19522_IG43:
+G_M19522_IG29:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 613, prolog size 18, PerfScore 188.62, instruction count 193, allocated bytes for code 613 (MethodHash=a50eb3bd) for method System.Numerics.Tensors.Tensor:SequenceEqual[ubyte](byref,byref):ubyte (FullOpts)
+; Total bytes of code 430, prolog size 22, PerfScore 113.25, instruction count 141, allocated bytes for code 430 (MethodHash=a50eb3bd) for method System.Numerics.Tensors.Tensor:SequenceEqual[ubyte](byref,byref):ubyte (FullOpts)
 ; ============================================================

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

@MihuBot
Copy link
Owner Author

MihuBot commented Dec 14, 2024

@xtqqczze

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

No branches or pull requests

1 participant