Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created December 15, 2024 20:52
Show Gist options
  • Save MihuBot/9b9d31e71371da90f33bcd5b0d460d6a to your computer and use it in GitHub Desktop.
Save MihuBot/9b9d31e71371da90f33bcd5b0d460d6a to your computer and use it in GitHub Desktop.

Top method improvements

-1 (-0.11 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T21] (  4,  2   )    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T26] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T22] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T28] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T29] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T23] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V34 tmp24        [V34,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V35 tmp25        [V35,T24] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V37 tmp27        [V37,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V38 tmp28        [V38,T20] (  4,  2   )     ref  ->  rax        
 ;  V39 tmp29        [V39,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V40 tmp30        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11   )   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T02] ( 10, 13.50)     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  6   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  6.50)     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T31] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T34] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T32] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T35] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T30] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V40._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V40._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T25] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T01] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M55583_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M55583_IG02:
        test     ebx, ebx
        jne      G_M55583_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M55583_IG03:
        test     r14, r14
        je       G_M55583_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M55583_IG04
        cmp      edi, 8
        jle      SHORT G_M55583_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M55583_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M55583_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M55583_IG30
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M55583_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M55583_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M55583_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M55583_IG06:
        test     esi, esi
        jl       G_M55583_IG28
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M55583_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M55583_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M55583_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M55583_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M55583_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M55583_IG27
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M55583_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M55583_IG11:
        test     rdi, rdi
        jl       G_M55583_IG27
        mov      rsi, rdi
        mov      qword ptr [rbp-0xA0], rsi
        jmp      SHORT G_M55583_IG13
        align    [0 bytes for IG20]
 						;; size=21 bbWeight=0.50 PerfScore 2.25
 G_M55583_IG12:
        xor      esi, esi
        mov      qword ptr [rbp-0xA0], rsi
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M55583_IG13:
        test     r14, r14
        je       G_M55583_IG22
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M55583_IG14:
        mov      rdi, r14
        mov      r8, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [r8]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M55583_IG26
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M55583_IG15
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=80 bbWeight=0.50 PerfScore 8.25
 G_M55583_IG15:
        mov      rdi, 0xD1FFAB1E      ; 'System.Double'
        cmp      rax, rdi
        jne      G_M55583_IG26
        test     r13d, r13d
        jne      SHORT G_M55583_IG18
        mov      rdi, r15
        mov      esi, ebx
        mov      rdx, qword ptr [rbp-0xA0]
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M55583_IG16
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M55583_IG17
 						;; size=62 bbWeight=0.50 PerfScore 6.62
 G_M55583_IG16:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M55583_IG17:
        jmp      SHORT G_M55583_IG19
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M55583_IG18:
        mov      rdi, r12
        mov      esi, r13d
 						;; size=6 bbWeight=0.50 PerfScore 0.25
 G_M55583_IG19:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M55583_IG21
 						;; size=69 bbWeight=0.50 PerfScore 6.50
 G_M55583_IG20:
        cmp      edx, r13d
        jae      G_M55583_IG29
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M55583_IG20
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M55583_IG21:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M55583_IG30
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M55583_IG27
-       mov      esi, edx
+       mov      rsi, rdx
        sub      rsi, rax
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        shl      rcx, 3
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M55583_IG23
-						;; size=129 bbWeight=0.50 PerfScore 24.38
+						;; size=128 bbWeight=0.50 PerfScore 24.25
 G_M55583_IG22:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M55583_IG27
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M55583_IG27
        xor      ecx, ecx
        mov      rax, bword ptr [rbp-0xB8]
        mov      qword ptr [rax], rcx
        mov      qword ptr [rax+0x08], rcx
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rax+0x10], zmm0
        vmovdqu  ymmword ptr [rax+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M55583_IG23:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M55583_IG24
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M55583_IG24:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M55583_IG25:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M55583_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M55583_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M55583_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M55583_IG29:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M55583_IG30:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 876, prolog size 107, PerfScore 171.63, instruction count 225, allocated bytes for code 876 (MethodHash=a96926e0) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 875, prolog size 107, PerfScore 171.50, instruction count 224, allocated bytes for code 875 (MethodHash=a96926e0) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T21] (  4,  2   )    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T26] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T22] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T28] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T29] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T23] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V34 tmp24        [V34,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V35 tmp25        [V35,T24] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V37 tmp27        [V37,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V38 tmp28        [V38,T20] (  4,  2   )     ref  ->  rax        
 ;  V39 tmp29        [V39,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V40 tmp30        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11   )   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T02] ( 10, 13.50)     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  6   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  6.50)     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T31] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T34] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T32] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T35] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T30] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V40._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V40._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T25] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T01] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M51193_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M51193_IG02:
        test     ebx, ebx
        jne      G_M51193_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M51193_IG03:
        test     r14, r14
        je       G_M51193_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M51193_IG04
        cmp      edi, 8
        jle      SHORT G_M51193_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M51193_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M51193_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M51193_IG30
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M51193_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M51193_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M51193_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M51193_IG06:
        test     esi, esi
        jl       G_M51193_IG28
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M51193_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M51193_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M51193_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M51193_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M51193_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M51193_IG27
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M51193_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M51193_IG11:
        test     rdi, rdi
        jl       G_M51193_IG27
        mov      rsi, rdi
        mov      qword ptr [rbp-0xA0], rsi
        jmp      SHORT G_M51193_IG13
        align    [0 bytes for IG20]
 						;; size=21 bbWeight=0.50 PerfScore 2.25
 G_M51193_IG12:
        xor      esi, esi
        mov      qword ptr [rbp-0xA0], rsi
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M51193_IG13:
        test     r14, r14
        je       G_M51193_IG22
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M51193_IG14:
        mov      rdi, r14
        mov      r8, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [r8]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M51193_IG26
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M51193_IG15
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=80 bbWeight=0.50 PerfScore 8.25
 G_M51193_IG15:
        mov      rdi, 0xD1FFAB1E      ; 'System.Int32'
        cmp      rax, rdi
        jne      G_M51193_IG26
        test     r13d, r13d
        jne      SHORT G_M51193_IG18
        mov      rdi, r15
        mov      esi, ebx
        mov      rdx, qword ptr [rbp-0xA0]
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M51193_IG16
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M51193_IG17
 						;; size=62 bbWeight=0.50 PerfScore 6.62
 G_M51193_IG16:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M51193_IG17:
        jmp      SHORT G_M51193_IG19
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M51193_IG18:
        mov      rdi, r12
        mov      esi, r13d
 						;; size=6 bbWeight=0.50 PerfScore 0.25
 G_M51193_IG19:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M51193_IG21
 						;; size=69 bbWeight=0.50 PerfScore 6.50
 G_M51193_IG20:
        cmp      edx, r13d
        jae      G_M51193_IG29
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M51193_IG20
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M51193_IG21:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M51193_IG30
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M51193_IG27
-       mov      esi, edx
+       mov      rsi, rdx
        sub      rsi, rax
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        shl      rcx, 2
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M51193_IG23
-						;; size=129 bbWeight=0.50 PerfScore 24.38
+						;; size=128 bbWeight=0.50 PerfScore 24.25
 G_M51193_IG22:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M51193_IG27
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M51193_IG27
        xor      ecx, ecx
        mov      rax, bword ptr [rbp-0xB8]
        mov      qword ptr [rax], rcx
        mov      qword ptr [rax+0x08], rcx
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rax+0x10], zmm0
        vmovdqu  ymmword ptr [rax+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M51193_IG23:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M51193_IG24
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M51193_IG24:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M51193_IG25:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M51193_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M51193_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M51193_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M51193_IG29:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M51193_IG30:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 876, prolog size 107, PerfScore 171.63, instruction count 225, allocated bytes for code 876 (MethodHash=f2973806) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 875, prolog size 107, PerfScore 171.50, instruction count 224, allocated bytes for code 875 (MethodHash=f2973806) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T21] (  4,  2   )    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T26] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T22] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T28] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T29] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T23] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V34 tmp24        [V34,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V35 tmp25        [V35,T24] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V37 tmp27        [V37,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V38 tmp28        [V38,T20] (  4,  2   )     ref  ->  rax        
 ;  V39 tmp29        [V39,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V40 tmp30        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11   )   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T02] ( 10, 13.50)     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  6   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  6.50)     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T31] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T34] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T32] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T35] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T30] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V40._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V40._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T25] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T01] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M60672_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M60672_IG02:
        test     ebx, ebx
        jne      G_M60672_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M60672_IG03:
        test     r14, r14
        je       G_M60672_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M60672_IG04
        cmp      edi, 8
        jle      SHORT G_M60672_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M60672_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M60672_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M60672_IG30
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M60672_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M60672_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M60672_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M60672_IG06:
        test     esi, esi
        jl       G_M60672_IG28
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M60672_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M60672_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M60672_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M60672_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M60672_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M60672_IG27
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M60672_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M60672_IG11:
        test     rdi, rdi
        jl       G_M60672_IG27
        mov      rsi, rdi
        mov      qword ptr [rbp-0xA0], rsi
        jmp      SHORT G_M60672_IG13
        align    [0 bytes for IG20]
 						;; size=21 bbWeight=0.50 PerfScore 2.25
 G_M60672_IG12:
        xor      esi, esi
        mov      qword ptr [rbp-0xA0], rsi
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M60672_IG13:
        test     r14, r14
        je       G_M60672_IG22
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M60672_IG14:
        mov      rdi, r14
        mov      r8, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [r8]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M60672_IG26
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M60672_IG15
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=80 bbWeight=0.50 PerfScore 8.25
 G_M60672_IG15:
        mov      rdi, 0xD1FFAB1E      ; 'System.Int64'
        cmp      rax, rdi
        jne      G_M60672_IG26
        test     r13d, r13d
        jne      SHORT G_M60672_IG18
        mov      rdi, r15
        mov      esi, ebx
        mov      rdx, qword ptr [rbp-0xA0]
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M60672_IG16
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M60672_IG17
 						;; size=62 bbWeight=0.50 PerfScore 6.62
 G_M60672_IG16:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M60672_IG17:
        jmp      SHORT G_M60672_IG19
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M60672_IG18:
        mov      rdi, r12
        mov      esi, r13d
 						;; size=6 bbWeight=0.50 PerfScore 0.25
 G_M60672_IG19:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M60672_IG21
 						;; size=69 bbWeight=0.50 PerfScore 6.50
 G_M60672_IG20:
        cmp      edx, r13d
        jae      G_M60672_IG29
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M60672_IG20
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M60672_IG21:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M60672_IG30
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M60672_IG27
-       mov      esi, edx
+       mov      rsi, rdx
        sub      rsi, rax
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        shl      rcx, 3
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M60672_IG23
-						;; size=129 bbWeight=0.50 PerfScore 24.38
+						;; size=128 bbWeight=0.50 PerfScore 24.25
 G_M60672_IG22:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M60672_IG27
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M60672_IG27
        xor      ecx, ecx
        mov      rax, bword ptr [rbp-0xB8]
        mov      qword ptr [rax], rcx
        mov      qword ptr [rax+0x08], rcx
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rax+0x10], zmm0
        vmovdqu  ymmword ptr [rax+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M60672_IG23:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M60672_IG24
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M60672_IG24:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M60672_IG25:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M60672_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M60672_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M60672_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M60672_IG29:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M60672_IG30:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 876, prolog size 107, PerfScore 171.63, instruction count 225, allocated bytes for code 876 (MethodHash=5b2012ff) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 875, prolog size 107, PerfScore 171.50, instruction count 224, allocated bytes for code 875 (MethodHash=5b2012ff) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T21] (  4,  2   )    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T26] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T22] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T28] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T29] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T23] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V34 tmp24        [V34,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V35 tmp25        [V35,T24] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V37 tmp27        [V37,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V38 tmp28        [V38,T20] (  4,  2   )     ref  ->  rax        
 ;  V39 tmp29        [V39,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V40 tmp30        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11   )   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T02] ( 10, 13.50)     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  6   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  6.50)     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T31] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T34] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T32] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T35] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T30] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V40._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V40._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T25] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T01] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M23576_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M23576_IG02:
        test     ebx, ebx
        jne      G_M23576_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M23576_IG03:
        test     r14, r14
        je       G_M23576_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M23576_IG04
        cmp      edi, 8
        jle      SHORT G_M23576_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M23576_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M23576_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M23576_IG30
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M23576_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M23576_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M23576_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M23576_IG06:
        test     esi, esi
        jl       G_M23576_IG28
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M23576_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M23576_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M23576_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M23576_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M23576_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M23576_IG27
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M23576_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M23576_IG11:
        test     rdi, rdi
        jl       G_M23576_IG27
        mov      rsi, rdi
        mov      qword ptr [rbp-0xA0], rsi
        jmp      SHORT G_M23576_IG13
        align    [0 bytes for IG20]
 						;; size=21 bbWeight=0.50 PerfScore 2.25
 G_M23576_IG12:
        xor      esi, esi
        mov      qword ptr [rbp-0xA0], rsi
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M23576_IG13:
        test     r14, r14
        je       G_M23576_IG22
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M23576_IG14:
        mov      rdi, r14
        mov      r8, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [r8]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M23576_IG26
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M23576_IG15
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=80 bbWeight=0.50 PerfScore 8.25
 G_M23576_IG15:
        mov      rdi, 0xD1FFAB1E      ; 'System.Int16'
        cmp      rax, rdi
        jne      G_M23576_IG26
        test     r13d, r13d
        jne      SHORT G_M23576_IG18
        mov      rdi, r15
        mov      esi, ebx
        mov      rdx, qword ptr [rbp-0xA0]
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M23576_IG16
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M23576_IG17
 						;; size=62 bbWeight=0.50 PerfScore 6.62
 G_M23576_IG16:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M23576_IG17:
        jmp      SHORT G_M23576_IG19
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M23576_IG18:
        mov      rdi, r12
        mov      esi, r13d
 						;; size=6 bbWeight=0.50 PerfScore 0.25
 G_M23576_IG19:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M23576_IG21
 						;; size=69 bbWeight=0.50 PerfScore 6.50
 G_M23576_IG20:
        cmp      edx, r13d
        jae      G_M23576_IG29
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M23576_IG20
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M23576_IG21:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M23576_IG30
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M23576_IG27
-       mov      esi, edx
+       mov      rsi, rdx
        sub      rsi, rax
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        add      rcx, rcx
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M23576_IG23
-						;; size=128 bbWeight=0.50 PerfScore 24.25
+						;; size=127 bbWeight=0.50 PerfScore 24.12
 G_M23576_IG22:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M23576_IG27
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M23576_IG27
        xor      ecx, ecx
        mov      rax, bword ptr [rbp-0xB8]
        mov      qword ptr [rax], rcx
        mov      qword ptr [rax+0x08], rcx
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rax+0x10], zmm0
        vmovdqu  ymmword ptr [rax+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M23576_IG23:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M23576_IG24
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M23576_IG24:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M23576_IG25:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M23576_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M23576_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M23576_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M23576_IG29:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M23576_IG30:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 875, prolog size 107, PerfScore 171.50, instruction count 225, allocated bytes for code 875 (MethodHash=07dda3e7) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 874, prolog size 107, PerfScore 171.38, instruction count 224, allocated bytes for code 874 (MethodHash=07dda3e7) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xC8]  this single-def
 ;  V01 TypeCtx      [V01,T12] (  4,  3.50)    long  ->  [rbp-0x38]  single-def
 ;  V02 arg1         [V02,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V03 arg2         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V04 arg3         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V05 arg4         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V06 loc0         [V06    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V07 loc1         [V07,T22] (  4,  2   )    long  ->  [rbp-0x40]  spill-single-def
 ;* V08 loc2         [V08    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V09 loc3         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V10 loc4         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V12 tmp1         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V13 tmp2         [V13    ] (  2,  2   )  struct (104) [rbp-0xA8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V14 tmp3         [V14,T17] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V15 tmp4         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V16 tmp5         [V16,T42] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V17 tmp6         [V17    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V18 tmp7         [V18,T19] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V19 tmp8         [V19,T27] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V20 tmp9         [V20,T23] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V21 tmp10        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V22 tmp11        [V22,T20] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V23 tmp12        [V23,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V24 tmp13        [V24,T29] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V25 tmp14        [V25,T43] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V26 tmp15        [V26    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V27 tmp16        [V27,T30] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V28 tmp17        [V28,T47] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V30 tmp19        [V30,T24] (  4,  2   )    long  ->  [rbp-0xB0]  "Inline return value spill temp"
 ;* V31 tmp20        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V32 tmp21        [V32,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V33 tmp22        [V33,T53] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V34 tmp23        [V34,T18] (  3,  3   )     ref  ->  [rbp-0xD0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V35 tmp24        [V35,T32] (  3,  1.50)     ref  ->  [rbp-0xD8]  class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V36 tmp25        [V36,T25] (  4,  2   )    long  ->  [rbp-0xB8]  spill-single-def "Inline stloc first use temp"
 ;* V37 tmp26        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V38 tmp27        [V38,T28] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V39 tmp28        [V39,T21] (  4,  2   )     ref  ->  rax        
 ;  V40 tmp29        [V40,T13] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V41 tmp30        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V42 tmp31        [V42,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V43 tmp32        [V43,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V44 tmp33        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V45 tmp34        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V46 tmp35        [V46,T15] (  2,  1.50)   byref  ->  [rbp-0xE0]  single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V47 tmp36        [V47,T14] (  3,  2   )     int  ->  [rbp-0xBC]  single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V48 tmp37        [V48,T05] (  6, 10   )   byref  ->  r15         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V49 tmp38        [V49,T02] (  9, 12.50)     int  ->  rbx         single-def "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V50 tmp39        [V50,T10] (  5,  6   )   byref  ->  r12         "field V05._reference (fldOffset=0x0)" P-INDEP
 ;  V51 tmp40        [V51,T09] (  6,  6.50)     int  ->  r13         "field V05._length (fldOffset=0x8)" P-INDEP
 ;  V52 tmp41        [V52,T33] (  3,  1.50)   byref  ->  rdi         "field V09._reference (fldOffset=0x0)" P-INDEP
 ;  V53 tmp42        [V53,T36] (  3,  1.50)     int  ->  rsi         "field V09._length (fldOffset=0x8)" P-INDEP
 ;  V54 tmp43        [V54,T34] (  3,  1.50)   byref  ->  rdi         "field V12._reference (fldOffset=0x0)" P-INDEP
 ;  V55 tmp44        [V55,T37] (  3,  1.50)     int  ->  rsi         "field V12._length (fldOffset=0x8)" P-INDEP
 ;  V56 tmp45        [V56,T40] (  2,  1   )   byref  ->  rdi         single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;  V57 tmp46        [V57,T44] (  2,  1   )     int  ->  rsi         single-def "field V15._length (fldOffset=0x8)" P-INDEP
 ;  V58 tmp47        [V58,T41] (  2,  1   )   byref  ->  rdi         "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V59 tmp48        [V59,T45] (  2,  1   )     int  ->  rsi         "field V29._length (fldOffset=0x8)" P-INDEP
 ;* V60 tmp49        [V60,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;  V61 tmp50        [V61,T31] (  2,  2   )     int  ->  rdi         single-def "field V31._length (fldOffset=0x8)" P-INDEP
 ;  V62 tmp51        [V62,T35] (  3,  1.50)   byref  ->  rdi         "field V41._reference (fldOffset=0x0)" P-INDEP
 ;  V63 tmp52        [V63,T38] (  3,  1.50)     int  ->  rsi         "field V41._length (fldOffset=0x8)" P-INDEP
 ;* V64 tmp53        [V64,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V65 tmp54        [V65,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;* V66 tmp55        [V66,T50] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V67 tmp56        [V67,T52] (  0,  0   )     int  ->  zero-ref    single-def "field V45._length (fldOffset=0x8)" P-INDEP
 ;  V68 GsCookie     [V68    ] (  1,  1   )    long  ->  [rbp-0xE8]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V69 cse0         [V69,T26] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V70 cse1         [V70,T03] (  3, 12   )    long  ->   r9         "CSE #07: aggressive"
-;  V71 cse2         [V71,T39] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V71 cse2         [V71,T39] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V72 cse3         [V72,T16] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V73 cse4         [V73,T04] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V74 rat0         [V74,T01] (  5, 16.25)    long  ->  rsi         "Widened IV V33"
 ;
 ; Lcl frame size = 200
 
 G_M62476_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 200
        lea      rbp, [rsp+0xF0]
        xor      eax, eax
        mov      qword ptr [rbp-0xA8], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
        vmovdqa  xmmword ptr [rbp-0x60], xmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        mov      qword ptr [rbp-0x30], rsi
        mov      qword ptr [rbp-0xE8], 0xD1FFAB1E
        mov      bword ptr [rbp-0xC8], rdi
        mov      qword ptr [rbp-0x38], rsi
        mov      bword ptr [rbp-0xE0], rcx
        mov      dword ptr [rbp-0xBC], r8d
        mov      r14, rdx
        mov      r15, bword ptr [rbp+0x10]
        mov      ebx, dword ptr [rbp+0x18]
        mov      r12, bword ptr [rbp+0x20]
        mov      r13d, dword ptr [rbp+0x28]
 						;; size=117 bbWeight=1 PerfScore 24.58
 G_M62476_IG02:
        test     ebx, ebx
        jne      G_M62476_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M62476_IG03:
        test     r14, r14
        je       G_M62476_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M62476_IG04
        cmp      edi, 8
        jle      SHORT G_M62476_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M62476_IG07
        align    [4 bytes for IG10]
 						;; size=63 bbWeight=0.50 PerfScore 7.38
 G_M62476_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r9d, 8
        mov      rax, rdi
        mul      rdx:rax, r9
        jb       G_M62476_IG32
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M62476_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M62476_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M62476_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M62476_IG06:
        test     esi, esi
        jl       G_M62476_IG30
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M62476_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M62476_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M62476_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M62476_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M62476_IG10:
        mov      r9, qword ptr [r15+8*rsi]
        test     r9, r9
        jl       G_M62476_IG29
        imul     rdi, r9
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M62476_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M62476_IG11:
        test     rdi, rdi
        jl       G_M62476_IG29
        mov      rsi, rdi
        mov      qword ptr [rbp-0xB0], rsi
        jmp      SHORT G_M62476_IG13
        align    [0 bytes for IG22]
 						;; size=21 bbWeight=0.50 PerfScore 2.25
 G_M62476_IG12:
        xor      esi, esi
        mov      qword ptr [rbp-0xB0], rsi
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M62476_IG13:
        test     r14, r14
        je       G_M62476_IG24
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M62476_IG14:
        mov      rdi, r14
        mov      r9, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [r9]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xD0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xB8], rax
        test     rax, rax
        je       SHORT G_M62476_IG16
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M62476_IG15
        mov      rdi, qword ptr [rbp-0xB8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=76 bbWeight=0.50 PerfScore 8.25
 G_M62476_IG15:
        mov      gword ptr [rbp-0xD8], rax
        jmp      SHORT G_M62476_IG17
 						;; size=9 bbWeight=0.50 PerfScore 1.50
 G_M62476_IG16:
        xor      rax, rax
        mov      gword ptr [rbp-0xD8], rax
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M62476_IG17:
        mov      rdi, qword ptr [rbp-0x38]
        mov      rdi, qword ptr [rdi+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi]
        call     CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
        cmp      rax, gword ptr [rbp-0xD8]
        jne      G_M62476_IG28
        test     r13d, r13d
        jne      SHORT G_M62476_IG20
        mov      rdi, r15
        mov      esi, ebx
        mov      rdx, qword ptr [rbp-0xB0]
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M62476_IG18
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M62476_IG19
 						;; size=75 bbWeight=0.50 PerfScore 11.38
 G_M62476_IG18:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M62476_IG19:
        jmp      SHORT G_M62476_IG21
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M62476_IG20:
        mov      rdi, r12
        mov      esi, r13d
 						;; size=6 bbWeight=0.50 PerfScore 0.25
 G_M62476_IG21:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        mov      rsi, bword ptr [rbp-0xE0]
        mov      edx, dword ptr [rbp-0xBC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x40], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M62476_IG23
 						;; size=69 bbWeight=0.50 PerfScore 6.50
 G_M62476_IG22:
        cmp      edx, r13d
        jae      G_M62476_IG31
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M62476_IG22
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M62476_IG23:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M62476_IG32
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M62476_IG29
-       mov      esi, edx
+       mov      rsi, rdx
        sub      rsi, rax
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0xA8]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xC8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0xA8]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x40]
        shl      rcx, 3
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M62476_IG25
-						;; size=129 bbWeight=0.50 PerfScore 24.38
+						;; size=128 bbWeight=0.50 PerfScore 24.25
 G_M62476_IG24:
        cmp      dword ptr [rbp-0xBC], 0
        jne      SHORT G_M62476_IG29
        cmp      qword ptr [rbp-0xB0], 0
        jne      SHORT G_M62476_IG29
        xor      ecx, ecx
        mov      rax, bword ptr [rbp-0xC8]
        mov      qword ptr [rax], rcx
        mov      qword ptr [rax+0x08], rcx
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rax+0x10], zmm0
        vmovdqu  ymmword ptr [rax+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M62476_IG25:
        cmp      qword ptr [rbp-0xE8], 0xD1FFAB1E
        je       SHORT G_M62476_IG26
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M62476_IG26:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M62476_IG27:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M62476_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M62476_IG29:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M62476_IG30:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M62476_IG31:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M62476_IG32:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 903, prolog size 117, PerfScore 182.00, instruction count 235, allocated bytes for code 903 (MethodHash=5ce20bf3) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 902, prolog size 117, PerfScore 181.88, instruction count 234, allocated bytes for code 902 (MethodHash=5ce20bf3) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T21] (  4,  2   )    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T26] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T22] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T28] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T29] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T23] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V34 tmp24        [V34,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V35 tmp25        [V35,T24] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V37 tmp27        [V37,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V38 tmp28        [V38,T20] (  4,  2   )     ref  ->  rax        
 ;  V39 tmp29        [V39,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V40 tmp30        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11   )   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T02] ( 10, 13.50)     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  6   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  6.50)     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T31] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T34] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T32] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T35] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T30] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V40._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V40._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T25] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T01] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M13044_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M13044_IG02:
        test     ebx, ebx
        jne      G_M13044_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M13044_IG03:
        test     r14, r14
        je       G_M13044_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M13044_IG04
        cmp      edi, 8
        jle      SHORT G_M13044_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M13044_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M13044_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M13044_IG30
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M13044_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M13044_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M13044_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M13044_IG06:
        test     esi, esi
        jl       G_M13044_IG28
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M13044_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M13044_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M13044_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M13044_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M13044_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M13044_IG27
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M13044_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M13044_IG11:
        test     rdi, rdi
        jl       G_M13044_IG27
        mov      rsi, rdi
        mov      qword ptr [rbp-0xA0], rsi
        jmp      SHORT G_M13044_IG13
        align    [0 bytes for IG20]
 						;; size=21 bbWeight=0.50 PerfScore 2.25
 G_M13044_IG12:
        xor      esi, esi
        mov      qword ptr [rbp-0xA0], rsi
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M13044_IG13:
        test     r14, r14
        je       G_M13044_IG22
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M13044_IG14:
        mov      rdi, r14
        mov      r8, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [r8]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M13044_IG26
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M13044_IG15
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=80 bbWeight=0.50 PerfScore 8.25
 G_M13044_IG15:
        mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[System.Int32]'
        cmp      rax, rdi
        jne      G_M13044_IG26
        test     r13d, r13d
        jne      SHORT G_M13044_IG18
        mov      rdi, r15
        mov      esi, ebx
        mov      rdx, qword ptr [rbp-0xA0]
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M13044_IG16
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M13044_IG17
 						;; size=62 bbWeight=0.50 PerfScore 6.62
 G_M13044_IG16:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M13044_IG17:
        jmp      SHORT G_M13044_IG19
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M13044_IG18:
        mov      rdi, r12
        mov      esi, r13d
 						;; size=6 bbWeight=0.50 PerfScore 0.25
 G_M13044_IG19:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M13044_IG21
 						;; size=69 bbWeight=0.50 PerfScore 6.50
 G_M13044_IG20:
        cmp      edx, r13d
        jae      G_M13044_IG29
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M13044_IG20
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M13044_IG21:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M13044_IG30
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M13044_IG27
-       mov      esi, edx
+       mov      rsi, rdx
        sub      rsi, rax
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        shl      rcx, 3
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M13044_IG23
-						;; size=129 bbWeight=0.50 PerfScore 24.38
+						;; size=128 bbWeight=0.50 PerfScore 24.25
 G_M13044_IG22:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M13044_IG27
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M13044_IG27
        xor      ecx, ecx
        mov      rax, bword ptr [rbp-0xB8]
        mov      qword ptr [rax], rcx
        mov      qword ptr [rax+0x08], rcx
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rax+0x10], zmm0
        vmovdqu  ymmword ptr [rax+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M13044_IG23:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M13044_IG24
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M13044_IG24:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M13044_IG25:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M13044_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M13044_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M13044_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M13044_IG29:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M13044_IG30:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 876, prolog size 107, PerfScore 171.63, instruction count 225, allocated bytes for code 876 (MethodHash=4a59cd0b) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 875, prolog size 107, PerfScore 171.50, instruction count 224, allocated bytes for code 875 (MethodHash=4a59cd0b) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T21] (  4,  2   )    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T26] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T22] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T28] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T29] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T23] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V34 tmp24        [V34,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V35 tmp25        [V35,T24] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V37 tmp27        [V37,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V38 tmp28        [V38,T20] (  4,  2   )     ref  ->  rax        
 ;  V39 tmp29        [V39,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V40 tmp30        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11   )   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T02] ( 10, 13.50)     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  6   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  6.50)     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T31] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T34] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T32] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T35] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T30] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V40._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V40._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T25] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T01] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M56937_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M56937_IG02:
        test     ebx, ebx
        jne      G_M56937_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M56937_IG03:
        test     r14, r14
        je       G_M56937_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M56937_IG04
        cmp      edi, 8
        jle      SHORT G_M56937_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M56937_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M56937_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M56937_IG30
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M56937_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M56937_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M56937_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M56937_IG06:
        test     esi, esi
        jl       G_M56937_IG28
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M56937_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M56937_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M56937_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M56937_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M56937_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M56937_IG27
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M56937_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M56937_IG11:
        test     rdi, rdi
        jl       G_M56937_IG27
        mov      rsi, rdi
        mov      qword ptr [rbp-0xA0], rsi
        jmp      SHORT G_M56937_IG13
        align    [0 bytes for IG20]
 						;; size=21 bbWeight=0.50 PerfScore 2.25
 G_M56937_IG12:
        xor      esi, esi
        mov      qword ptr [rbp-0xA0], rsi
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M56937_IG13:
        test     r14, r14
        je       G_M56937_IG22
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M56937_IG14:
        mov      rdi, r14
        mov      r8, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [r8]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M56937_IG26
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M56937_IG15
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=80 bbWeight=0.50 PerfScore 8.25
 G_M56937_IG15:
        mov      rdi, 0xD1FFAB1E      ; 'System.Numerics.Vector`1[System.Single]'
        cmp      rax, rdi
        jne      G_M56937_IG26
        test     r13d, r13d
        jne      SHORT G_M56937_IG18
        mov      rdi, r15
        mov      esi, ebx
        mov      rdx, qword ptr [rbp-0xA0]
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M56937_IG16
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M56937_IG17
 						;; size=62 bbWeight=0.50 PerfScore 6.62
 G_M56937_IG16:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M56937_IG17:
        jmp      SHORT G_M56937_IG19
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M56937_IG18:
        mov      rdi, r12
        mov      esi, r13d
 						;; size=6 bbWeight=0.50 PerfScore 0.25
 G_M56937_IG19:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M56937_IG21
 						;; size=69 bbWeight=0.50 PerfScore 6.50
 G_M56937_IG20:
        cmp      edx, r13d
        jae      G_M56937_IG29
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M56937_IG20
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M56937_IG21:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M56937_IG30
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M56937_IG27
-       mov      esi, edx
+       mov      rsi, rdx
        sub      rsi, rax
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        shl      rcx, 5
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M56937_IG23
-						;; size=129 bbWeight=0.50 PerfScore 24.38
+						;; size=128 bbWeight=0.50 PerfScore 24.25
 G_M56937_IG22:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M56937_IG27
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M56937_IG27
        xor      ecx, ecx
        mov      rax, bword ptr [rbp-0xB8]
        mov      qword ptr [rax], rcx
        mov      qword ptr [rax+0x08], rcx
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rax+0x10], zmm0
        vmovdqu  ymmword ptr [rax+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M56937_IG23:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M56937_IG24
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M56937_IG24:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M56937_IG25:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M56937_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M56937_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M56937_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M56937_IG29:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M56937_IG30:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 876, prolog size 107, PerfScore 171.63, instruction count 225, allocated bytes for code 876 (MethodHash=3fb62196) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 875, prolog size 107, PerfScore 171.50, instruction count 224, allocated bytes for code 875 (MethodHash=3fb62196) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T21] (  4,  2   )    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T26] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T22] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T28] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T29] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T23] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V34 tmp24        [V34,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V35 tmp25        [V35,T24] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V36 tmp26        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V37 tmp27        [V37,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V38 tmp28        [V38,T20] (  4,  2   )     ref  ->  rax        
 ;  V39 tmp29        [V39,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V40 tmp30        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11   )   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T02] ( 10, 13.50)     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  6   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  6.50)     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T31] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T34] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T32] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T35] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T30] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V40._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V40._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T25] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T01] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M3189_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M3189_IG02:
        test     ebx, ebx
        jne      G_M3189_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M3189_IG03:
        test     r14, r14
        je       G_M3189_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M3189_IG04
        cmp      edi, 8
        jle      SHORT G_M3189_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M3189_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M3189_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M3189_IG30
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M3189_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M3189_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M3189_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M3189_IG06:
        test     esi, esi
        jl       G_M3189_IG28
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M3189_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M3189_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M3189_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M3189_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M3189_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M3189_IG27
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M3189_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M3189_IG11:
        test     rdi, rdi
        jl       G_M3189_IG27
        mov      rsi, rdi
        mov      qword ptr [rbp-0xA0], rsi
        jmp      SHORT G_M3189_IG13
        align    [0 bytes for IG20]
 						;; size=21 bbWeight=0.50 PerfScore 2.25
 G_M3189_IG12:
        xor      esi, esi
        mov      qword ptr [rbp-0xA0], rsi
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M3189_IG13:
        test     r14, r14
        je       G_M3189_IG22
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M3189_IG14:
        mov      rdi, r14
        mov      r8, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [r8]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M3189_IG26
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M3189_IG15
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=80 bbWeight=0.50 PerfScore 8.25
 G_M3189_IG15:
        mov      rdi, 0xD1FFAB1E      ; 'System.Byte'
        cmp      rax, rdi
        jne      G_M3189_IG26
        test     r13d, r13d
        jne      SHORT G_M3189_IG18
        mov      rdi, r15
        mov      esi, ebx
        mov      rdx, qword ptr [rbp-0xA0]
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M3189_IG16
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M3189_IG17
 						;; size=62 bbWeight=0.50 PerfScore 6.62
 G_M3189_IG16:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M3189_IG17:
        jmp      SHORT G_M3189_IG19
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M3189_IG18:
        mov      rdi, r12
        mov      esi, r13d
 						;; size=6 bbWeight=0.50 PerfScore 0.25
 G_M3189_IG19:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M3189_IG21
 						;; size=69 bbWeight=0.50 PerfScore 6.50
 G_M3189_IG20:
        cmp      edx, r13d
        jae      G_M3189_IG29
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M3189_IG20
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M3189_IG21:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M3189_IG30
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M3189_IG27
-       mov      esi, edx
+       mov      rsi, rdx
        sub      rsi, rax
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M3189_IG23
-						;; size=125 bbWeight=0.50 PerfScore 24.12
+						;; size=124 bbWeight=0.50 PerfScore 24.00
 G_M3189_IG22:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M3189_IG27
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M3189_IG27
        xor      ecx, ecx
        mov      rax, bword ptr [rbp-0xB8]
        mov      qword ptr [rax], rcx
        mov      qword ptr [rax+0x08], rcx
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rax+0x10], zmm0
        vmovdqu  ymmword ptr [rax+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M3189_IG23:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M3189_IG24
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M3189_IG24:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M3189_IG25:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M3189_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M3189_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M3189_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M3189_IG29:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M3189_IG30:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 872, prolog size 107, PerfScore 171.38, instruction count 224, allocated bytes for code 872 (MethodHash=2c80f38a) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 871, prolog size 107, PerfScore 171.25, instruction count 223, allocated bytes for code 871 (MethodHash=2c80f38a) for method System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.TensorSpan`1[double]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.TensorSpan`1[double]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T34] (  3,  1.50)    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T27] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T21] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T29] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T30] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T22] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V34 tmp24        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V35 tmp25        [V35,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V36 tmp26        [V36,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V37 tmp27        [V37,T23] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V39 tmp29        [V39,T28] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V40 tmp30        [V40,T20] (  4,  2   )     ref  ->  rax        
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11.50)   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T01] ( 10, 14   )     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  7   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  8   )     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T32] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T35] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T25] (  3,  2   )   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T26] (  3,  2   )     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T31] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T24] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T02] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M30553_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M30553_IG02:
        test     ebx, ebx
        jne      G_M30553_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M30553_IG03:
        test     r14, r14
        je       G_M30553_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M30553_IG04
        cmp      edi, 8
        jle      SHORT G_M30553_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M30553_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M30553_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M30553_IG31
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M30553_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M30553_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M30553_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M30553_IG06:
        test     esi, esi
        jl       G_M30553_IG29
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M30553_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M30553_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M30553_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M30553_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M30553_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M30553_IG28
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M30553_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M30553_IG11:
        test     rdi, rdi
        jl       G_M30553_IG28
        mov      r8, rdi
        jmp      SHORT G_M30553_IG13
        align    [0 bytes for IG21]
 						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M30553_IG12:
        xor      r8d, r8d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M30553_IG13:
        test     r13d, r13d
        jne      SHORT G_M30553_IG17
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M30553_IG14:
        mov      rdi, r15
        mov      esi, ebx
        mov      qword ptr [rbp-0xA0], r8
        mov      rdx, r8
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M30553_IG15
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M30553_IG16
 						;; size=42 bbWeight=0.50 PerfScore 5.38
 G_M30553_IG15:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M30553_IG16:
        jmp      SHORT G_M30553_IG18
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M30553_IG17:
        mov      rdi, r12
        mov      esi, r13d
        mov      qword ptr [rbp-0xA0], r8
 						;; size=13 bbWeight=0.50 PerfScore 0.75
 G_M30553_IG18:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        test     r14, r14
        je       G_M30553_IG23
 						;; size=39 bbWeight=1 PerfScore 6.00
 G_M30553_IG19:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [rax]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M30553_IG27
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M30553_IG20
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=79 bbWeight=0.50 PerfScore 8.25
 G_M30553_IG20:
        mov      rsi, 0xD1FFAB1E      ; 'System.Double'
        cmp      rax, rsi
        jne      G_M30553_IG27
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M30553_IG22
 						;; size=59 bbWeight=0.50 PerfScore 4.88
 G_M30553_IG21:
        cmp      edx, r13d
        jae      G_M30553_IG30
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M30553_IG21
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M30553_IG22:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M30553_IG31
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M30553_IG28
-       mov      esi, edx
+       mov      rsi, rdx
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        shl      rcx, 3
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M30553_IG24
-						;; size=126 bbWeight=0.50 PerfScore 24.25
+						;; size=125 bbWeight=0.50 PerfScore 24.12
 G_M30553_IG23:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M30553_IG28
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M30553_IG28
        xor      eax, eax
        mov      rbx, bword ptr [rbp-0xB8]
        mov      qword ptr [rbx], rax
        mov      qword ptr [rbx+0x08], rax
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rbx+0x10], zmm0
        vmovdqu  ymmword ptr [rbx+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M30553_IG24:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M30553_IG25
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M30553_IG25:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M30553_IG26:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M30553_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M30553_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M30553_IG29:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M30553_IG30:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M30553_IG31:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 871, prolog size 107, PerfScore 174.13, instruction count 224, allocated bytes for code 871 (MethodHash=4e6a88a6) for method System.Numerics.Tensors.TensorSpan`1[double]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 870, prolog size 107, PerfScore 174.00, instruction count 223, allocated bytes for code 870 (MethodHash=4e6a88a6) for method System.Numerics.Tensors.TensorSpan`1[double]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.TensorSpan`1[int]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.TensorSpan`1[int]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T34] (  3,  1.50)    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T27] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T21] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T29] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T30] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T22] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V34 tmp24        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V35 tmp25        [V35,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V36 tmp26        [V36,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V37 tmp27        [V37,T23] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V39 tmp29        [V39,T28] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V40 tmp30        [V40,T20] (  4,  2   )     ref  ->  rax        
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11.50)   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T01] ( 10, 14   )     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  7   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  8   )     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T32] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T35] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T25] (  3,  2   )   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T26] (  3,  2   )     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T31] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T24] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T02] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M25087_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M25087_IG02:
        test     ebx, ebx
        jne      G_M25087_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M25087_IG03:
        test     r14, r14
        je       G_M25087_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M25087_IG04
        cmp      edi, 8
        jle      SHORT G_M25087_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M25087_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M25087_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M25087_IG31
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M25087_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M25087_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M25087_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M25087_IG06:
        test     esi, esi
        jl       G_M25087_IG29
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M25087_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M25087_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M25087_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M25087_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M25087_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M25087_IG28
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M25087_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M25087_IG11:
        test     rdi, rdi
        jl       G_M25087_IG28
        mov      r8, rdi
        jmp      SHORT G_M25087_IG13
        align    [0 bytes for IG21]
 						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M25087_IG12:
        xor      r8d, r8d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M25087_IG13:
        test     r13d, r13d
        jne      SHORT G_M25087_IG17
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M25087_IG14:
        mov      rdi, r15
        mov      esi, ebx
        mov      qword ptr [rbp-0xA0], r8
        mov      rdx, r8
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M25087_IG15
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M25087_IG16
 						;; size=42 bbWeight=0.50 PerfScore 5.38
 G_M25087_IG15:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M25087_IG16:
        jmp      SHORT G_M25087_IG18
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M25087_IG17:
        mov      rdi, r12
        mov      esi, r13d
        mov      qword ptr [rbp-0xA0], r8
 						;; size=13 bbWeight=0.50 PerfScore 0.75
 G_M25087_IG18:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        test     r14, r14
        je       G_M25087_IG23
 						;; size=39 bbWeight=1 PerfScore 6.00
 G_M25087_IG19:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [rax]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M25087_IG27
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M25087_IG20
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=79 bbWeight=0.50 PerfScore 8.25
 G_M25087_IG20:
        mov      rsi, 0xD1FFAB1E      ; 'System.Int32'
        cmp      rax, rsi
        jne      G_M25087_IG27
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M25087_IG22
 						;; size=59 bbWeight=0.50 PerfScore 4.88
 G_M25087_IG21:
        cmp      edx, r13d
        jae      G_M25087_IG30
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M25087_IG21
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M25087_IG22:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M25087_IG31
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M25087_IG28
-       mov      esi, edx
+       mov      rsi, rdx
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        shl      rcx, 2
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M25087_IG24
-						;; size=126 bbWeight=0.50 PerfScore 24.25
+						;; size=125 bbWeight=0.50 PerfScore 24.12
 G_M25087_IG23:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M25087_IG28
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M25087_IG28
        xor      eax, eax
        mov      rbx, bword ptr [rbp-0xB8]
        mov      qword ptr [rbx], rax
        mov      qword ptr [rbx+0x08], rax
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rbx+0x10], zmm0
        vmovdqu  ymmword ptr [rbx+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M25087_IG24:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M25087_IG25
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M25087_IG25:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M25087_IG26:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M25087_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M25087_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M25087_IG29:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M25087_IG30:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M25087_IG31:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 871, prolog size 107, PerfScore 174.13, instruction count 224, allocated bytes for code 871 (MethodHash=e49d9e00) for method System.Numerics.Tensors.TensorSpan`1[int]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 870, prolog size 107, PerfScore 174.00, instruction count 223, allocated bytes for code 870 (MethodHash=e49d9e00) for method System.Numerics.Tensors.TensorSpan`1[int]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.TensorSpan`1[long]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.TensorSpan`1[long]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T34] (  3,  1.50)    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T27] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T21] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T29] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T30] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T22] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V34 tmp24        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V35 tmp25        [V35,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V36 tmp26        [V36,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V37 tmp27        [V37,T23] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V39 tmp29        [V39,T28] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V40 tmp30        [V40,T20] (  4,  2   )     ref  ->  rax        
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11.50)   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T01] ( 10, 14   )     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  7   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  8   )     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T32] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T35] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T25] (  3,  2   )   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T26] (  3,  2   )     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T31] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T24] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T02] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M9798_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M9798_IG02:
        test     ebx, ebx
        jne      G_M9798_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M9798_IG03:
        test     r14, r14
        je       G_M9798_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M9798_IG04
        cmp      edi, 8
        jle      SHORT G_M9798_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M9798_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M9798_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M9798_IG31
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M9798_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M9798_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M9798_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M9798_IG06:
        test     esi, esi
        jl       G_M9798_IG29
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M9798_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M9798_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M9798_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M9798_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M9798_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M9798_IG28
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M9798_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M9798_IG11:
        test     rdi, rdi
        jl       G_M9798_IG28
        mov      r8, rdi
        jmp      SHORT G_M9798_IG13
        align    [0 bytes for IG21]
 						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M9798_IG12:
        xor      r8d, r8d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M9798_IG13:
        test     r13d, r13d
        jne      SHORT G_M9798_IG17
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M9798_IG14:
        mov      rdi, r15
        mov      esi, ebx
        mov      qword ptr [rbp-0xA0], r8
        mov      rdx, r8
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M9798_IG15
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M9798_IG16
 						;; size=42 bbWeight=0.50 PerfScore 5.38
 G_M9798_IG15:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M9798_IG16:
        jmp      SHORT G_M9798_IG18
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M9798_IG17:
        mov      rdi, r12
        mov      esi, r13d
        mov      qword ptr [rbp-0xA0], r8
 						;; size=13 bbWeight=0.50 PerfScore 0.75
 G_M9798_IG18:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        test     r14, r14
        je       G_M9798_IG23
 						;; size=39 bbWeight=1 PerfScore 6.00
 G_M9798_IG19:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [rax]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M9798_IG27
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M9798_IG20
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=79 bbWeight=0.50 PerfScore 8.25
 G_M9798_IG20:
        mov      rsi, 0xD1FFAB1E      ; 'System.Int64'
        cmp      rax, rsi
        jne      G_M9798_IG27
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M9798_IG22
 						;; size=59 bbWeight=0.50 PerfScore 4.88
 G_M9798_IG21:
        cmp      edx, r13d
        jae      G_M9798_IG30
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M9798_IG21
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M9798_IG22:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M9798_IG31
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M9798_IG28
-       mov      esi, edx
+       mov      rsi, rdx
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        shl      rcx, 3
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M9798_IG24
-						;; size=126 bbWeight=0.50 PerfScore 24.25
+						;; size=125 bbWeight=0.50 PerfScore 24.12
 G_M9798_IG23:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M9798_IG28
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M9798_IG28
        xor      eax, eax
        mov      rbx, bword ptr [rbp-0xB8]
        mov      qword ptr [rbx], rax
        mov      qword ptr [rbx+0x08], rax
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rbx+0x10], zmm0
        vmovdqu  ymmword ptr [rbx+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M9798_IG24:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M9798_IG25
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M9798_IG25:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M9798_IG26:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M9798_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M9798_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M9798_IG29:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M9798_IG30:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M9798_IG31:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 871, prolog size 107, PerfScore 174.13, instruction count 224, allocated bytes for code 871 (MethodHash=985ed9b9) for method System.Numerics.Tensors.TensorSpan`1[long]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 870, prolog size 107, PerfScore 174.00, instruction count 223, allocated bytes for code 870 (MethodHash=985ed9b9) for method System.Numerics.Tensors.TensorSpan`1[long]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.TensorSpan`1[short]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.TensorSpan`1[short]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T34] (  3,  1.50)    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T27] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T21] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T29] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T30] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T22] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V34 tmp24        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V35 tmp25        [V35,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V36 tmp26        [V36,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V37 tmp27        [V37,T23] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V39 tmp29        [V39,T28] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V40 tmp30        [V40,T20] (  4,  2   )     ref  ->  rax        
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11.50)   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T01] ( 10, 14   )     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  7   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  8   )     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T32] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T35] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T25] (  3,  2   )   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T26] (  3,  2   )     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T31] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T24] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T02] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M47902_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M47902_IG02:
        test     ebx, ebx
        jne      G_M47902_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M47902_IG03:
        test     r14, r14
        je       G_M47902_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M47902_IG04
        cmp      edi, 8
        jle      SHORT G_M47902_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M47902_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M47902_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M47902_IG31
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M47902_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M47902_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M47902_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M47902_IG06:
        test     esi, esi
        jl       G_M47902_IG29
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M47902_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M47902_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M47902_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M47902_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M47902_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M47902_IG28
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M47902_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M47902_IG11:
        test     rdi, rdi
        jl       G_M47902_IG28
        mov      r8, rdi
        jmp      SHORT G_M47902_IG13
        align    [0 bytes for IG21]
 						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M47902_IG12:
        xor      r8d, r8d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M47902_IG13:
        test     r13d, r13d
        jne      SHORT G_M47902_IG17
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M47902_IG14:
        mov      rdi, r15
        mov      esi, ebx
        mov      qword ptr [rbp-0xA0], r8
        mov      rdx, r8
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M47902_IG15
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M47902_IG16
 						;; size=42 bbWeight=0.50 PerfScore 5.38
 G_M47902_IG15:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M47902_IG16:
        jmp      SHORT G_M47902_IG18
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M47902_IG17:
        mov      rdi, r12
        mov      esi, r13d
        mov      qword ptr [rbp-0xA0], r8
 						;; size=13 bbWeight=0.50 PerfScore 0.75
 G_M47902_IG18:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        test     r14, r14
        je       G_M47902_IG23
 						;; size=39 bbWeight=1 PerfScore 6.00
 G_M47902_IG19:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [rax]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M47902_IG27
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M47902_IG20
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=79 bbWeight=0.50 PerfScore 8.25
 G_M47902_IG20:
        mov      rsi, 0xD1FFAB1E      ; 'System.Int16'
        cmp      rax, rsi
        jne      G_M47902_IG27
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M47902_IG22
 						;; size=59 bbWeight=0.50 PerfScore 4.88
 G_M47902_IG21:
        cmp      edx, r13d
        jae      G_M47902_IG30
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M47902_IG21
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M47902_IG22:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M47902_IG31
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M47902_IG28
-       mov      esi, edx
+       mov      rsi, rdx
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        add      rcx, rcx
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M47902_IG24
-						;; size=125 bbWeight=0.50 PerfScore 24.12
+						;; size=124 bbWeight=0.50 PerfScore 24.00
 G_M47902_IG23:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M47902_IG28
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M47902_IG28
        xor      eax, eax
        mov      rbx, bword ptr [rbp-0xB8]
        mov      qword ptr [rbx], rax
        mov      qword ptr [rbx+0x08], rax
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rbx+0x10], zmm0
        vmovdqu  ymmword ptr [rbx+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M47902_IG24:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M47902_IG25
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M47902_IG25:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M47902_IG26:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M47902_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M47902_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M47902_IG29:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M47902_IG30:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M47902_IG31:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 870, prolog size 107, PerfScore 174.00, instruction count 224, allocated bytes for code 870 (MethodHash=c6f944e1) for method System.Numerics.Tensors.TensorSpan`1[short]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 869, prolog size 107, PerfScore 173.88, instruction count 223, allocated bytes for code 869 (MethodHash=c6f944e1) for method System.Numerics.Tensors.TensorSpan`1[short]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.TensorSpan`1[System.__Canon]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.TensorSpan`1[System.__Canon]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xC8]  this single-def
 ;  V01 TypeCtx      [V01,T12] (  4,  3.50)    long  ->  [rbp-0x38]  single-def
 ;  V02 arg1         [V02,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V03 arg2         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V04 arg3         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V05 arg4         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V06 loc0         [V06    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V07 loc1         [V07,T36] (  3,  1.50)    long  ->  [rbp-0x40]  spill-single-def
 ;* V08 loc2         [V08    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V09 loc3         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V10 loc4         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V12 tmp1         [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V13 tmp2         [V13    ] (  2,  2   )  struct (104) [rbp-0xA8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V14 tmp3         [V14,T17] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V15 tmp4         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V16 tmp5         [V16,T42] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V17 tmp6         [V17    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V18 tmp7         [V18,T19] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V19 tmp8         [V19,T28] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V20 tmp9         [V20,T22] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V21 tmp10        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V22 tmp11        [V22,T20] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V23 tmp12        [V23,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V24 tmp13        [V24,T30] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V25 tmp14        [V25,T43] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V26 tmp15        [V26    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V27 tmp16        [V27,T31] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V28 tmp17        [V28,T47] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V30 tmp19        [V30,T23] (  4,  2   )    long  ->  [rbp-0xB0]  "Inline return value spill temp"
 ;* V31 tmp20        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V32 tmp21        [V32,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V33 tmp22        [V33,T53] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V34 tmp23        [V34,T13] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V36 tmp25        [V36,T18] (  3,  3   )     ref  ->  [rbp-0xD0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V37 tmp26        [V37,T33] (  3,  1.50)     ref  ->  [rbp-0xD8]  class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V38 tmp27        [V38,T24] (  4,  2   )    long  ->  [rbp-0xB8]  spill-single-def "Inline stloc first use temp"
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V40 tmp29        [V40,T29] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V41 tmp30        [V41,T21] (  4,  2   )     ref  ->  rax        
 ;  V42 tmp31        [V42,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V43 tmp32        [V43,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V44 tmp33        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V45 tmp34        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V46 tmp35        [V46,T15] (  2,  1.50)   byref  ->  [rbp-0xE0]  single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V47 tmp36        [V47,T14] (  3,  2   )     int  ->  [rbp-0xBC]  single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V48 tmp37        [V48,T03] (  6, 10.50)   byref  ->  r15         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V49 tmp38        [V49,T02] (  9, 13   )     int  ->  rbx         single-def "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V50 tmp39        [V50,T10] (  5,  7   )   byref  ->  r12         "field V05._reference (fldOffset=0x0)" P-INDEP
 ;  V51 tmp40        [V51,T09] (  6,  8   )     int  ->  r13         "field V05._length (fldOffset=0x8)" P-INDEP
 ;  V52 tmp41        [V52,T34] (  3,  1.50)   byref  ->  rdi         "field V09._reference (fldOffset=0x0)" P-INDEP
 ;  V53 tmp42        [V53,T37] (  3,  1.50)     int  ->  rsi         "field V09._length (fldOffset=0x8)" P-INDEP
 ;  V54 tmp43        [V54,T26] (  3,  2   )   byref  ->  rdi         "field V12._reference (fldOffset=0x0)" P-INDEP
 ;  V55 tmp44        [V55,T27] (  3,  2   )     int  ->  rsi         "field V12._length (fldOffset=0x8)" P-INDEP
 ;  V56 tmp45        [V56,T40] (  2,  1   )   byref  ->  rdi         single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;  V57 tmp46        [V57,T44] (  2,  1   )     int  ->  rsi         single-def "field V15._length (fldOffset=0x8)" P-INDEP
 ;  V58 tmp47        [V58,T41] (  2,  1   )   byref  ->  rdi         "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V59 tmp48        [V59,T45] (  2,  1   )     int  ->  rsi         "field V29._length (fldOffset=0x8)" P-INDEP
 ;* V60 tmp49        [V60,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;  V61 tmp50        [V61,T32] (  2,  2   )     int  ->  rdi         single-def "field V31._length (fldOffset=0x8)" P-INDEP
 ;  V62 tmp51        [V62,T35] (  3,  1.50)   byref  ->  rdi         "field V35._reference (fldOffset=0x0)" P-INDEP
 ;  V63 tmp52        [V63,T38] (  3,  1.50)     int  ->  rsi         "field V35._length (fldOffset=0x8)" P-INDEP
 ;* V64 tmp53        [V64,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V65 tmp54        [V65,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;* V66 tmp55        [V66,T50] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V67 tmp56        [V67,T52] (  0,  0   )     int  ->  zero-ref    single-def "field V45._length (fldOffset=0x8)" P-INDEP
 ;  V68 GsCookie     [V68    ] (  1,  1   )    long  ->  [rbp-0xE8]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V69 cse0         [V69,T25] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V70 cse1         [V70,T04] (  3, 12   )    long  ->   r9         "CSE #07: aggressive"
-;  V71 cse2         [V71,T39] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V71 cse2         [V71,T39] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V72 cse3         [V72,T16] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V73 cse4         [V73,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V74 rat0         [V74,T01] (  5, 16.25)    long  ->  rsi         "Widened IV V33"
 ;
 ; Lcl frame size = 200
 
 G_M37322_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 200
        lea      rbp, [rsp+0xF0]
        xor      eax, eax
        mov      qword ptr [rbp-0xA8], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
        vmovdqa  xmmword ptr [rbp-0x60], xmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        mov      qword ptr [rbp-0x30], rsi
        mov      qword ptr [rbp-0xE8], 0xD1FFAB1E
        mov      bword ptr [rbp-0xC8], rdi
        mov      qword ptr [rbp-0x38], rsi
        mov      bword ptr [rbp-0xE0], rcx
        mov      dword ptr [rbp-0xBC], r8d
        mov      r14, rdx
        mov      r15, bword ptr [rbp+0x10]
        mov      ebx, dword ptr [rbp+0x18]
        mov      r12, bword ptr [rbp+0x20]
        mov      r13d, dword ptr [rbp+0x28]
 						;; size=117 bbWeight=1 PerfScore 24.58
 G_M37322_IG02:
        test     ebx, ebx
        jne      G_M37322_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M37322_IG03:
        test     r14, r14
        je       G_M37322_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M37322_IG04
        cmp      edi, 8
        jle      SHORT G_M37322_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M37322_IG07
        align    [4 bytes for IG10]
 						;; size=63 bbWeight=0.50 PerfScore 7.38
 G_M37322_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r9d, 8
        mov      rax, rdi
        mul      rdx:rax, r9
        jb       G_M37322_IG33
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M37322_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M37322_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M37322_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M37322_IG06:
        test     esi, esi
        jl       G_M37322_IG31
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M37322_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M37322_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M37322_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M37322_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M37322_IG10:
        mov      r9, qword ptr [r15+8*rsi]
        test     r9, r9
        jl       G_M37322_IG30
        imul     rdi, r9
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M37322_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M37322_IG11:
        test     rdi, rdi
        jl       G_M37322_IG30
        mov      r9, rdi
        jmp      SHORT G_M37322_IG13
        align    [0 bytes for IG23]
 						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M37322_IG12:
        xor      r9d, r9d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M37322_IG13:
        test     r13d, r13d
        jne      SHORT G_M37322_IG17
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M37322_IG14:
        mov      rdi, r15
        mov      esi, ebx
        mov      qword ptr [rbp-0xB0], r9
        mov      rdx, r9
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [r10]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M37322_IG15
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M37322_IG16
 						;; size=42 bbWeight=0.50 PerfScore 5.38
 G_M37322_IG15:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M37322_IG16:
        jmp      SHORT G_M37322_IG18
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M37322_IG17:
        mov      rdi, r12
        mov      esi, r13d
        mov      qword ptr [rbp-0xB0], r9
 						;; size=13 bbWeight=0.50 PerfScore 0.75
 G_M37322_IG18:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [r10]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        test     r14, r14
        je       G_M37322_IG25
 						;; size=39 bbWeight=1 PerfScore 6.00
 G_M37322_IG19:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [rax]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xD0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xB8], rax
        test     rax, rax
        je       SHORT G_M37322_IG21
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M37322_IG20
        mov      rdi, qword ptr [rbp-0xB8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=75 bbWeight=0.50 PerfScore 8.25
 G_M37322_IG20:
        mov      gword ptr [rbp-0xD8], rax
        jmp      SHORT G_M37322_IG22
 						;; size=9 bbWeight=0.50 PerfScore 1.50
 G_M37322_IG21:
        xor      rax, rax
        mov      gword ptr [rbp-0xD8], rax
 						;; size=9 bbWeight=0.50 PerfScore 0.62
 G_M37322_IG22:
        mov      rdi, qword ptr [rbp-0x38]
        mov      rdi, qword ptr [rdi+0x30]
        mov      rdi, qword ptr [rdi]
        mov      rdi, qword ptr [rdi]
        call     CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
        cmp      rax, gword ptr [rbp-0xD8]
        jne      G_M37322_IG29
        mov      rsi, bword ptr [rbp-0xE0]
        mov      edx, dword ptr [rbp-0xBC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x40], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M37322_IG24
 						;; size=72 bbWeight=0.50 PerfScore 9.62
 G_M37322_IG23:
        cmp      edx, r13d
        jae      G_M37322_IG32
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M37322_IG23
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M37322_IG24:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M37322_IG33
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M37322_IG30
-       mov      esi, edx
+       mov      rsi, rdx
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0xA8]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xC8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0xA8]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x40]
        shl      rcx, 3
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M37322_IG26
-						;; size=126 bbWeight=0.50 PerfScore 24.25
+						;; size=125 bbWeight=0.50 PerfScore 24.12
 G_M37322_IG25:
        cmp      dword ptr [rbp-0xBC], 0
        jne      SHORT G_M37322_IG30
        cmp      qword ptr [rbp-0xB0], 0
        jne      SHORT G_M37322_IG30
        xor      eax, eax
        mov      rbx, bword ptr [rbp-0xC8]
        mov      qword ptr [rbx], rax
        mov      qword ptr [rbx+0x08], rax
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rbx+0x10], zmm0
        vmovdqu  ymmword ptr [rbx+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M37322_IG26:
        cmp      qword ptr [rbp-0xE8], 0xD1FFAB1E
        je       SHORT G_M37322_IG27
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M37322_IG27:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M37322_IG28:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M37322_IG29:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M37322_IG30:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M37322_IG31:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M37322_IG32:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M37322_IG33:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 898, prolog size 117, PerfScore 184.50, instruction count 234, allocated bytes for code 898 (MethodHash=62196e35) for method System.Numerics.Tensors.TensorSpan`1[System.__Canon]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 897, prolog size 117, PerfScore 184.38, instruction count 233, allocated bytes for code 897 (MethodHash=62196e35) for method System.Numerics.Tensors.TensorSpan`1[System.__Canon]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T34] (  3,  1.50)    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T27] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T21] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T29] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T30] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T22] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V34 tmp24        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V35 tmp25        [V35,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V36 tmp26        [V36,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V37 tmp27        [V37,T23] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V39 tmp29        [V39,T28] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V40 tmp30        [V40,T20] (  4,  2   )     ref  ->  rax        
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11.50)   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T01] ( 10, 14   )     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  7   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  8   )     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T32] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T35] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T25] (  3,  2   )   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T26] (  3,  2   )     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T31] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T24] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T02] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M15282_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M15282_IG02:
        test     ebx, ebx
        jne      G_M15282_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M15282_IG03:
        test     r14, r14
        je       G_M15282_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M15282_IG04
        cmp      edi, 8
        jle      SHORT G_M15282_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M15282_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M15282_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M15282_IG31
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M15282_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M15282_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M15282_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M15282_IG06:
        test     esi, esi
        jl       G_M15282_IG29
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M15282_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M15282_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M15282_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M15282_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M15282_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M15282_IG28
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M15282_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M15282_IG11:
        test     rdi, rdi
        jl       G_M15282_IG28
        mov      r8, rdi
        jmp      SHORT G_M15282_IG13
        align    [0 bytes for IG21]
 						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M15282_IG12:
        xor      r8d, r8d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M15282_IG13:
        test     r13d, r13d
        jne      SHORT G_M15282_IG17
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M15282_IG14:
        mov      rdi, r15
        mov      esi, ebx
        mov      qword ptr [rbp-0xA0], r8
        mov      rdx, r8
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M15282_IG15
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M15282_IG16
 						;; size=42 bbWeight=0.50 PerfScore 5.38
 G_M15282_IG15:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M15282_IG16:
        jmp      SHORT G_M15282_IG18
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M15282_IG17:
        mov      rdi, r12
        mov      esi, r13d
        mov      qword ptr [rbp-0xA0], r8
 						;; size=13 bbWeight=0.50 PerfScore 0.75
 G_M15282_IG18:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        test     r14, r14
        je       G_M15282_IG23
 						;; size=39 bbWeight=1 PerfScore 6.00
 G_M15282_IG19:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [rax]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M15282_IG27
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M15282_IG20
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=79 bbWeight=0.50 PerfScore 8.25
 G_M15282_IG20:
        mov      rsi, 0xD1FFAB1E      ; 'System.Nullable`1[System.Int32]'
        cmp      rax, rsi
        jne      G_M15282_IG27
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M15282_IG22
 						;; size=59 bbWeight=0.50 PerfScore 4.88
 G_M15282_IG21:
        cmp      edx, r13d
        jae      G_M15282_IG30
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M15282_IG21
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M15282_IG22:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M15282_IG31
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M15282_IG28
-       mov      esi, edx
+       mov      rsi, rdx
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        shl      rcx, 3
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M15282_IG24
-						;; size=126 bbWeight=0.50 PerfScore 24.25
+						;; size=125 bbWeight=0.50 PerfScore 24.12
 G_M15282_IG23:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M15282_IG28
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M15282_IG28
        xor      eax, eax
        mov      rbx, bword ptr [rbp-0xB8]
        mov      qword ptr [rbx], rax
        mov      qword ptr [rbx+0x08], rax
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rbx+0x10], zmm0
        vmovdqu  ymmword ptr [rbx+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M15282_IG24:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M15282_IG25
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M15282_IG25:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M15282_IG26:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M15282_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M15282_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M15282_IG29:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M15282_IG30:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M15282_IG31:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 871, prolog size 107, PerfScore 174.13, instruction count 224, allocated bytes for code 871 (MethodHash=2cf0c44d) for method System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 870, prolog size 107, PerfScore 174.00, instruction count 223, allocated bytes for code 870 (MethodHash=2cf0c44d) for method System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.11 % of base) - System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T34] (  3,  1.50)    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T27] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T21] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T29] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T30] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T22] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V34 tmp24        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V35 tmp25        [V35,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V36 tmp26        [V36,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V37 tmp27        [V37,T23] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V39 tmp29        [V39,T28] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V40 tmp30        [V40,T20] (  4,  2   )     ref  ->  rax        
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11.50)   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T01] ( 10, 14   )     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  7   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  8   )     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T32] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T35] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T25] (  3,  2   )   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T26] (  3,  2   )     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T31] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T24] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T02] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M39151_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M39151_IG02:
        test     ebx, ebx
        jne      G_M39151_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M39151_IG03:
        test     r14, r14
        je       G_M39151_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M39151_IG04
        cmp      edi, 8
        jle      SHORT G_M39151_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M39151_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M39151_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M39151_IG31
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M39151_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M39151_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M39151_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M39151_IG06:
        test     esi, esi
        jl       G_M39151_IG29
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M39151_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M39151_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M39151_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M39151_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M39151_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M39151_IG28
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M39151_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M39151_IG11:
        test     rdi, rdi
        jl       G_M39151_IG28
        mov      r8, rdi
        jmp      SHORT G_M39151_IG13
        align    [0 bytes for IG21]
 						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M39151_IG12:
        xor      r8d, r8d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M39151_IG13:
        test     r13d, r13d
        jne      SHORT G_M39151_IG17
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M39151_IG14:
        mov      rdi, r15
        mov      esi, ebx
        mov      qword ptr [rbp-0xA0], r8
        mov      rdx, r8
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M39151_IG15
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M39151_IG16
 						;; size=42 bbWeight=0.50 PerfScore 5.38
 G_M39151_IG15:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M39151_IG16:
        jmp      SHORT G_M39151_IG18
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M39151_IG17:
        mov      rdi, r12
        mov      esi, r13d
        mov      qword ptr [rbp-0xA0], r8
 						;; size=13 bbWeight=0.50 PerfScore 0.75
 G_M39151_IG18:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        test     r14, r14
        je       G_M39151_IG23
 						;; size=39 bbWeight=1 PerfScore 6.00
 G_M39151_IG19:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [rax]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M39151_IG27
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M39151_IG20
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=79 bbWeight=0.50 PerfScore 8.25
 G_M39151_IG20:
        mov      rsi, 0xD1FFAB1E      ; 'System.Numerics.Vector`1[System.Single]'
        cmp      rax, rsi
        jne      G_M39151_IG27
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M39151_IG22
 						;; size=59 bbWeight=0.50 PerfScore 4.88
 G_M39151_IG21:
        cmp      edx, r13d
        jae      G_M39151_IG30
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M39151_IG21
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M39151_IG22:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M39151_IG31
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M39151_IG28
-       mov      esi, edx
+       mov      rsi, rdx
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        shl      rcx, 5
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M39151_IG24
-						;; size=126 bbWeight=0.50 PerfScore 24.25
+						;; size=125 bbWeight=0.50 PerfScore 24.12
 G_M39151_IG23:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M39151_IG28
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M39151_IG28
        xor      eax, eax
        mov      rbx, bword ptr [rbp-0xB8]
        mov      qword ptr [rbx], rax
        mov      qword ptr [rbx+0x08], rax
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rbx+0x10], zmm0
        vmovdqu  ymmword ptr [rbx+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M39151_IG24:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M39151_IG25
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M39151_IG25:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M39151_IG26:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M39151_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M39151_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M39151_IG29:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M39151_IG30:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M39151_IG31:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 871, prolog size 107, PerfScore 174.13, instruction count 224, allocated bytes for code 871 (MethodHash=cd296710) for method System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 870, prolog size 107, PerfScore 174.00, instruction count 223, allocated bytes for code 870 (MethodHash=cd296710) for method System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
-1 (-0.12 % of base) - System.Numerics.Tensors.TensorSpan`1[ubyte]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
 ; Assembly listing for method System.Numerics.Tensors.TensorSpan`1[ubyte]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):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; 20 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T11] (  5,  3.50)   byref  ->  [rbp-0xB8]  this single-def
 ;  V01 arg1         [V01,T06] ( 14,  8.50)     ref  ->  r14         class-hnd single-def <System.Array>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Buffers.NIndex]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[long]>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[long]>
 ;* V05 loc0         [V05    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V06 loc1         [V06,T34] (  3,  1.50)    long  ->  [rbp-0x30]  spill-single-def
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V08 loc3         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.Span`1[long]>
 ;* V09 loc4         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-arg <System.ReadOnlySpan`1[long]>
 ;  V12 tmp2         [V12    ] (  2,  2   )  struct (104) [rbp-0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorShape>
 ;  V13 tmp3         [V13,T16] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <long[]>
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V15 tmp5         [V15,T41] (  2,  1   )     int  ->  rdi         "Inline return value spill temp"
 ;* V16 tmp6         [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V17 tmp7         [V17,T18] (  3,  3   )     int  ->  rdi         "impAppendStmt"
 ;  V18 tmp8         [V18,T27] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;  V19 tmp9         [V19,T21] (  4,  2   )     int  ->  rsi         "Inline return value spill temp"
 ;* V20 tmp10        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V21 tmp11        [V21,T19] (  3,  3   )     int  ->  rsi         "impAppendStmt"
 ;* V22 tmp12        [V22,T45] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V23 tmp13        [V23,T29] (  2,  2   )    long  ->  rdi         "Inlining Arg"
 ;  V24 tmp14        [V24,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V25 tmp15        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V26 tmp16        [V26,T30] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V27 tmp17        [V27,T46] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V29 tmp19        [V29,T22] (  4,  2   )    long  ->  [rbp-0xA0]  "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V31 tmp21        [V31,T07] (  5,  9.25)    long  ->  rdi         "Inline stloc first use temp"
 ;* V32 tmp22        [V32,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp23        [V33,T12] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <long[]>
 ;* V34 tmp24        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[long]>
 ;  V35 tmp25        [V35,T17] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
 ;  V36 tmp26        [V36,T38] (  2,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.RuntimeType>
 ;  V37 tmp27        [V37,T23] (  4,  2   )    long  ->  [rbp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V38 tmp28        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V39 tmp29        [V39,T28] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.RuntimeType>
 ;  V40 tmp30        [V40,T20] (  4,  2   )     ref  ->  rax        
 ;  V41 tmp31        [V41,T08] (  4,  9   )    long  ->  rsi         "Inline stloc first use temp"
 ;  V42 tmp32        [V42,T00] (  6, 20.50)     int  ->  rdx         "Inline stloc first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[long]>
 ;  V45 tmp35        [V45,T14] (  2,  1.50)   byref  ->  [rbp-0xC8]  single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V46 tmp36        [V46,T13] (  3,  2   )     int  ->  [rbp-0xAC]  single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp37        [V47,T03] (  7, 11.50)   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp38        [V48,T01] ( 10, 14   )     int  ->  rbx         single-def "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V49 tmp39        [V49,T10] (  5,  7   )   byref  ->  r12         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp40        [V50,T09] (  6,  8   )     int  ->  r13         "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp41        [V51,T32] (  3,  1.50)   byref  ->  rdi         "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp42        [V52,T35] (  3,  1.50)     int  ->  rsi         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp43        [V53,T25] (  3,  2   )   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T26] (  3,  2   )     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V55 tmp45        [V55,T39] (  2,  1   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V56 tmp46        [V56,T43] (  2,  1   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V57 tmp47        [V57,T40] (  2,  1   )   byref  ->  rdi         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V58 tmp48        [V58,T44] (  2,  1   )     int  ->  rsi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp49        [V59,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;  V60 tmp50        [V60,T31] (  2,  2   )     int  ->  rdi         single-def "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V61 tmp51        [V61,T33] (  3,  1.50)   byref  ->  rdi         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;  V62 tmp52        [V62,T36] (  3,  1.50)     int  ->  rsi         "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp53        [V63,T48] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp54        [V64,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp55        [V65,T49] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp56        [V66,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V67 GsCookie     [V67    ] (  1,  1   )    long  ->  [rbp-0xD0]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V68 cse0         [V68,T24] (  4,  2   )     int  ->  rsi         "CSE #04: conservative"
 ;  V69 cse1         [V69,T04] (  3, 12   )    long  ->   r8         "CSE #07: aggressive"
-;  V70 cse2         [V70,T37] (  3,  1.50)     int  ->  rdx         "CSE #10: conservative"
+;  V70 cse2         [V70,T37] (  3,  1.50)    long  ->  rdx         "CSE #11: conservative"
 ;  V71 cse3         [V71,T15] (  4,  2   )    long  ->  rsi         multi-def "CSE #01: moderate"
 ;  V72 cse4         [V72,T05] (  3, 12   )    long  ->  rcx         "CSE #08: aggressive"
 ;  V73 rat0         [V73,T02] (  5, 16.25)    long  ->  rsi         "Widened IV V32"
 ;
 ; Lcl frame size = 168
 
 G_M42867_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 168
        lea      rbp, [rsp+0xD0]
        xor      eax, eax
        mov      qword ptr [rbp-0x98], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x90], zmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0xD0], 0xD1FFAB1E
        mov      bword ptr [rbp-0xB8], rdi
        mov      bword ptr [rbp-0xC8], rdx
        mov      dword ptr [rbp-0xAC], ecx
        mov      r14, rsi
        mov      r15, r8
        mov      ebx, r9d
        mov      r12, bword ptr [rbp+0x10]
        mov      r13d, dword ptr [rbp+0x18]
 						;; size=107 bbWeight=1 PerfScore 21.08
 G_M42867_IG02:
        test     ebx, ebx
        jne      G_M42867_IG08
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M42867_IG03:
        test     r14, r14
        je       G_M42867_IG08
        mov      rsi, qword ptr [r14]
        mov      esi, dword ptr [rsi+0x04]
        add      esi, -24
        shr      esi, 3
        mov      edi, esi
        test     edi, edi
        je       SHORT G_M42867_IG04
        cmp      edi, 8
        jle      SHORT G_M42867_IG04
        movsxd   rsi, esi
        mov      rdi, 0xD1FFAB1E      ; long[]
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M42867_IG07
        align    [14 bytes for IG10]
 						;; size=73 bbWeight=0.50 PerfScore 7.38
 G_M42867_IG04:
        mov      edi, 1
        test     esi, esi
        cmove    esi, edi
        mov      edi, esi
        mov      r8d, 8
        mov      rax, rdi
        mul      rdx:rax, r8
        jb       G_M42867_IG31
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M42867_IG06
        add      rdi, 15
        shr      rdi, 4
 						;; size=46 bbWeight=0.50 PerfScore 3.88
 G_M42867_IG05:
        push     0
        push     0
        dec      rdi
        jne      SHORT G_M42867_IG05
        lea      rdi, [rsp]
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M42867_IG06:
        test     esi, esi
        jl       G_M42867_IG29
 						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M42867_IG07:
        mov      rdx, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:FillLengths(System.Span`1[long],System.Array):System.ReadOnlySpan`1[long]
        mov      r15, rax
        mov      ebx, edx
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M42867_IG08:
        mov      edi, ebx
        test     edi, edi
        je       SHORT G_M42867_IG12
 						;; size=6 bbWeight=1 PerfScore 1.50
 G_M42867_IG09:
        mov      edi, 1
        xor      esi, esi
 						;; size=7 bbWeight=0.25 PerfScore 0.12
 G_M42867_IG10:
        mov      r8, qword ptr [r15+8*rsi]
        test     r8, r8
        jl       G_M42867_IG28
        imul     rdi, r8
        inc      esi
        cmp      esi, ebx
        jl       SHORT G_M42867_IG10
 						;; size=23 bbWeight=4 PerfScore 27.00
 G_M42867_IG11:
        test     rdi, rdi
        jl       G_M42867_IG28
        mov      r8, rdi
        jmp      SHORT G_M42867_IG13
        align    [0 bytes for IG21]
 						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M42867_IG12:
        xor      r8d, r8d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M42867_IG13:
        test     r13d, r13d
        jne      SHORT G_M42867_IG17
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M42867_IG14:
        mov      rdi, r15
        mov      esi, ebx
        mov      qword ptr [rbp-0xA0], r8
        mov      rdx, r8
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:CalculateStrides(System.ReadOnlySpan`1[long],long):long[]
        test     rax, rax
        je       SHORT G_M42867_IG15
        lea      rdi, bword ptr [rax+0x10]
        mov      esi, dword ptr [rax+0x08]
        jmp      SHORT G_M42867_IG16
 						;; size=42 bbWeight=0.50 PerfScore 5.38
 G_M42867_IG15:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M42867_IG16:
        jmp      SHORT G_M42867_IG18
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M42867_IG17:
        mov      rdi, r12
        mov      esi, r13d
        mov      qword ptr [rbp-0xA0], r8
 						;; size=13 bbWeight=0.50 PerfScore 0.75
 G_M42867_IG18:
        mov      r12, rdi
        mov      r13d, esi
        mov      rdi, r12
        mov      esi, r13d
        mov      rdx, r15
        mov      ecx, ebx
        mov      r9, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        call     [r9]System.Numerics.Tensors.TensorSpanHelpers:ValidateStrides(System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long])
        test     r14, r14
        je       G_M42867_IG23
 						;; size=39 bbWeight=1 PerfScore 6.00
 G_M42867_IG19:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [rax]System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0xC0], rax
        mov      rdi, qword ptr [rax+0x18]
        call     System.RuntimeTypeHandle:GetElementTypeHandle(long):long
        mov      qword ptr [rbp-0xA8], rax
        test     rax, rax
        je       G_M42867_IG27
        mov      rdi, rax
        call     System.RuntimeTypeHandle:GetRuntimeTypeFromHandleIfExists(long):System.RuntimeType
        test     rax, rax
        jne      SHORT G_M42867_IG20
        mov      rdi, qword ptr [rbp-0xA8]
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
        call     [rax]System.RuntimeTypeHandle:GetRuntimeTypeFromHandleSlow(long):System.RuntimeType
 						;; size=79 bbWeight=0.50 PerfScore 8.25
 G_M42867_IG20:
        mov      rsi, 0xD1FFAB1E      ; 'System.Byte'
        cmp      rax, rsi
        jne      G_M42867_IG27
        mov      rsi, bword ptr [rbp-0xC8]
        mov      edx, dword ptr [rbp-0xAC]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        call     [rax]System.Numerics.Tensors.TensorSpanHelpers:ComputeStartOffsetSystemArray(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex]):long
        mov      qword ptr [rbp-0x30], rax
        xor      esi, esi
        xor      edx, edx
        test     ebx, ebx
        jle      SHORT G_M42867_IG22
 						;; size=59 bbWeight=0.50 PerfScore 4.88
 G_M42867_IG21:
        cmp      edx, r13d
        jae      G_M42867_IG30
        mov      ecx, edx
        mov      r8, qword ptr [r12+8*rcx]
        mov      rcx, qword ptr [r15+8*rcx]
        dec      rcx
        imul     rcx, r8
        add      rsi, rcx
        inc      edx
        cmp      edx, ebx
        jl       SHORT G_M42867_IG21
 						;; size=35 bbWeight=4 PerfScore 38.00
 G_M42867_IG22:
        mov      edx, eax
        mov      esi, esi
        add      rsi, rdx
        mov      edx, dword ptr [r14+0x08]
        test     edx, edx
        jl       G_M42867_IG31
-       mov      ecx, edx
-       cmp      rsi, rcx
+       cmp      rsi, rdx
        ja       G_M42867_IG28
-       mov      esi, edx
+       mov      rsi, rdx
        mov      rdx, r15
        mov      ecx, ebx
        mov      r8, r12
        mov      r9d, r13d
        lea      rdi, [rbp-0x98]
        mov      r10, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        call     [r10]System.Numerics.Tensors.TensorShape:.ctor(long,System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this
        mov      rbx, bword ptr [rbp-0xB8]
        lea      rdi, bword ptr [rbx+0x08]
        lea      rsi, bword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      ecx, 12
        rep movsq 
        lea      rax, bword ptr [r14+0x08]
        mov      rsi, qword ptr [r14]
        mov      ecx, dword ptr [rsi+0x04]
        add      rcx, -16
        add      rax, rcx
        mov      ecx, dword ptr [rbp-0x30]
        add      rax, rcx
        mov      bword ptr [rbx], rax
        jmp      SHORT G_M42867_IG24
-						;; size=122 bbWeight=0.50 PerfScore 24.00
+						;; size=121 bbWeight=0.50 PerfScore 23.88
 G_M42867_IG23:
        cmp      dword ptr [rbp-0xAC], 0
        jne      SHORT G_M42867_IG28
        cmp      qword ptr [rbp-0xA0], 0
        jne      SHORT G_M42867_IG28
        xor      eax, eax
        mov      rbx, bword ptr [rbp-0xB8]
        mov      qword ptr [rbx], rax
        mov      qword ptr [rbx+0x08], rax
        vxorps   xmm0, xmm0, xmm0
        vmovdqu32 zmmword ptr [rbx+0x10], zmm0
        vmovdqu  ymmword ptr [rbx+0x50], ymm0
 						;; size=54 bbWeight=0.50 PerfScore 6.79
 G_M42867_IG24:
        cmp      qword ptr [rbp-0xD0], 0xD1FFAB1E
        je       SHORT G_M42867_IG25
        call     CORINFO_HELP_FAIL_FAST
 						;; size=18 bbWeight=1 PerfScore 4.00
 G_M42867_IG25:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M42867_IG26:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.50
 G_M42867_IG27:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArrayTypeMismatchException()
        call     [rax]System.ThrowHelper:ThrowArrayTypeMismatchException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M42867_IG28:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M42867_IG29:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M42867_IG30:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M42867_IG31:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 867, prolog size 107, PerfScore 173.88, instruction count 223, allocated bytes for code 867 (MethodHash=7e5e588c) for method System.Numerics.Tensors.TensorSpan`1[ubyte]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
+; Total bytes of code 866, prolog size 107, PerfScore 173.75, instruction count 222, allocated bytes for code 866 (MethodHash=7e5e588c) for method System.Numerics.Tensors.TensorSpan`1[ubyte]:.ctor(System.Array,System.ReadOnlySpan`1[System.Buffers.NIndex],System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):this (FullOpts)
 ; ============================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment