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 #821

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

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

MihuBot opened this issue Dec 14, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Dec 14, 2024

Job completed in 13 minutes 45 seconds.

Diffs

Found 262 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 40203552
Total bytes of diff: 40201332
Total bytes of delta: -2220 (-0.01 % of base)
Total relative delta: -1.06
    diff is an improvement.
    relative diff is an improvement.


Top file improvements (bytes):
       -2220 : System.Numerics.Tensors.dasm (-0.12 % 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):
        -390 (-31.60 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[int](byref,byref):ubyte (FullOpts) (2 methods)
        -390 (-31.60 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[long](byref,byref):ubyte (FullOpts) (2 methods)
        -390 (-31.66 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[short](byref,byref):ubyte (FullOpts) (2 methods)
        -390 (-31.81 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[ubyte](byref,byref):ubyte (FullOpts) (2 methods)
        -386 (-31.59 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[double](byref,byref):ubyte (FullOpts) (2 methods)
        -386 (-31.59 % 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):
        -390 (-31.81 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[ubyte](byref,byref):ubyte (FullOpts) (2 methods)
        -390 (-31.66 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[short](byref,byref):ubyte (FullOpts) (2 methods)
        -390 (-31.60 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[int](byref,byref):ubyte (FullOpts) (2 methods)
        -390 (-31.60 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[long](byref,byref):ubyte (FullOpts) (2 methods)
        -386 (-31.59 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:SequenceEqual[double](byref,byref):ubyte (FullOpts) (2 methods)
        -386 (-31.59 % 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/d667135f4f5b8d4dbb19ae9c93446ebc

@MihuBot
Copy link
Owner Author

MihuBot commented Dec 14, 2024

Top method improvements

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

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

@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