Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created June 14, 2024 03:29
Show Gist options
  • Save MihuBot/030802372b0e43e21d54f1b97b5dc0fb to your computer and use it in GitHub Desktop.
Save MihuBot/030802372b0e43e21d54f1b97b5dc0fb to your computer and use it in GitHub Desktop.

Top method regressions

130 (55.79 % of base) - System.Net.Cookie:Equals(System.Object):ubyte:this
 ; Assembly listing for method System.Net.Cookie:Equals(System.Object):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 14 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 20 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  7,  4.50)     ref  ->  rbx         this class-hnd single-def <System.Net.Cookie>
 ;  V01 arg1         [V01,T01] (  5,  3.75)     ref  ->  rsi         class-hnd single-def <System.Object>
-;  V02 loc0         [V02,T04] (  6,  3   )     ref  ->  r15         class-hnd exact <System.Net.Cookie>
+;  V02 loc0         [V02,T05] (  6,  3   )     ref  ->  r15         class-hnd exact <System.Net.Cookie>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <System.Net.Cookie>
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V06 tmp3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
-;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
+;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V10 tmp7         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V11 tmp8         [V11,T02] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V11 tmp8         [V11,T03] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V14 tmp11        [V14,T05] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V15 tmp12        [V15,T07] (  2,  2   )     int  ->  rdi         "Inlining Arg"
-;* V16 tmp13        [V16    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V17 tmp14        [V17,T03] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V14 tmp11        [V14,T15] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V15 tmp12        [V15,T19] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;* V16 tmp13        [V16    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;  V17 tmp14        [V17,T04] (  4,  4   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V18 tmp15        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V19 tmp16        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V20 tmp17        [V20,T06] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V21 tmp18        [V21,T08] (  2,  2   )     int  ->  rdi         "Inlining Arg"
-;  V22 tmp19        [V22,T09] (  3,  1.50)   byref  ->  rsi         "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V23 tmp20        [V23,T11] (  3,  1.50)     int  ->  rdx         "field V08._length (fldOffset=0x8)" P-INDEP
-;* V24 tmp21        [V24    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V25 tmp22        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
-;  V26 tmp23        [V26,T13] (  2,  1   )   byref  ->  rsi         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp24        [V27,T15] (  2,  1   )     int  ->  rdi         "field V12._length (fldOffset=0x8)" P-INDEP
-;* V28 tmp25        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp27        [V30,T10] (  3,  1.50)   byref  ->  rcx         "field V16._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp28        [V31,T12] (  3,  1.50)     int  ->  rax         "field V16._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp29        [V32,T14] (  2,  1   )   byref  ->  rcx         single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;  V33 tmp30        [V33,T16] (  2,  1   )     int  ->  rdi         "field V18._length (fldOffset=0x8)" P-INDEP
-;* V34 tmp31        [V34    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;* V35 tmp32        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
+;  V20 tmp17        [V20,T16] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V21 tmp18        [V21,T20] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;* V22 tmp19        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V23 tmp20        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V24 tmp21        [V24,T31] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V25 tmp22        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V26 tmp23        [V26    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
+;* V27 tmp24        [V27    ] (  0,  0   )   byref  ->  zero-ref   
+;* V28 tmp25        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;  V29 tmp26        [V29,T17] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V30 tmp27        [V30,T21] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;* V31 tmp28        [V31,T32] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V32 tmp29        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V33 tmp30        [V33    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
+;* V34 tmp31        [V34    ] (  0,  0   )   byref  ->  zero-ref   
+;* V35 tmp32        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;  V36 tmp33        [V36,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V37 tmp34        [V37,T22] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;* V38 tmp35        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V39 tmp36        [V39    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V40 tmp37        [V40    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;  V41 tmp38        [V41,T10] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;* V42 tmp39        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V43 tmp40        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V44 tmp41        [V44    ] (  0,  0   )   byref  ->  zero-ref    single-def "impAppendStmt"
+;* V45 tmp42        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V46 tmp43        [V46    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;  V47 tmp44        [V47,T11] (  4,  2   )   ubyte  ->  rax         "Inline return value spill temp"
+;* V48 tmp45        [V48    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V49 tmp46        [V49    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
+;  V50 tmp47        [V50,T08] (  4,  2   )   byref  ->  rsi         "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V51 tmp48        [V51,T12] (  4,  2   )     int  ->  rdi         "field V08._length (fldOffset=0x8)" P-INDEP
+;* V52 tmp49        [V52    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;* V53 tmp50        [V53    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
+;  V54 tmp51        [V54,T23] (  2,  1   )   byref  ->  rsi         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V55 tmp52        [V55,T27] (  2,  1   )     int  ->  rdi         "field V12._length (fldOffset=0x8)" P-INDEP
+;* V56 tmp53        [V56    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;* V57 tmp54        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
+;  V58 tmp55        [V58,T09] (  4,  2   )   byref  ->  rax         "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V59 tmp56        [V59,T13] (  4,  2   )     int  ->  rdx         "field V16._length (fldOffset=0x8)" P-INDEP
+;  V60 tmp57        [V60,T24] (  2,  1   )   byref  ->  rax         single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;  V61 tmp58        [V61,T28] (  2,  1   )     int  ->  rdx         "field V18._length (fldOffset=0x8)" P-INDEP
+;* V62 tmp59        [V62    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+;* V63 tmp60        [V63    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
+;  V64 tmp61        [V64,T06] (  6,  3   )   byref  ->  rcx         "field V22._reference (fldOffset=0x0)" P-INDEP
+;  V65 tmp62        [V65,T14] (  4,  2   )     int  ->   r8         "field V22._length (fldOffset=0x8)" P-INDEP
+;  V66 tmp63        [V66,T07] (  6,  3   )   byref  ->   r9         "field V23._reference (fldOffset=0x0)" P-INDEP
+;  V67 tmp64        [V67,T02] ( 10,  5   )     int  ->  r10         "field V23._length (fldOffset=0x8)" P-INDEP
+;* V68 tmp65        [V68    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+;* V69 tmp66        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x8)" P-INDEP
+;  V70 tmp67        [V70,T25] (  2,  1   )   byref  ->  rcx         single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+;  V71 tmp68        [V71,T29] (  2,  1   )     int  ->   r8         "field V28._length (fldOffset=0x8)" P-INDEP
+;* V72 tmp69        [V72    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V32._reference (fldOffset=0x0)" P-INDEP
+;* V73 tmp70        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
+;  V74 tmp71        [V74,T26] (  2,  1   )   byref  ->   r9         single-def "field V35._reference (fldOffset=0x0)" P-INDEP
+;  V75 tmp72        [V75,T30] (  2,  1   )     int  ->  r10         "field V35._length (fldOffset=0x8)" P-INDEP
+;* V76 tmp73        [V76    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V77 tmp74        [V77    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
+;* V78 tmp75        [V78    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp76        [V79    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
+;* V80 tmp77        [V80    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V81 tmp78        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
+;* V82 tmp79        [V82    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V83 tmp80        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
+;* V84 tmp81        [V84    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
+;* V85 tmp82        [V85    ] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-INDEP
+;* V86 tmp83        [V86    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V46._reference (fldOffset=0x0)" P-INDEP
+;* V87 tmp84        [V87    ] (  0,  0   )     int  ->  zero-ref    "field V46._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 0
 
 G_M1639_IG01:
        push     rbp
        push     r15
        push     rbx
        lea      rbp, [rsp+0x10]
        mov      rbx, rdi
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M1639_IG02:
        test     rsi, rsi
-       je       G_M1639_IG10
+       je       G_M1639_IG16
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M1639_IG03:
        mov      rdi, 0xD1FFAB1E      ; System.Net.Cookie
        cmp      qword ptr [rsi], rdi
-       jne      G_M1639_IG10
+       jne      G_M1639_IG16
 						;; size=19 bbWeight=0.25 PerfScore 1.06
 G_M1639_IG04:
        mov      r15, rsi
        mov      rdi, gword ptr [rbx+0x20]
        mov      rsi, gword ptr [r15+0x20]
        mov      edx, 5
        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):ubyte
        call     [rax]System.String:Equals(System.String,System.String,int):ubyte
        test     eax, eax
-       je       G_M1639_IG10
+       je       G_M1639_IG16
        mov      rdi, gword ptr [rbx+0x40]
        mov      rsi, gword ptr [r15+0x40]
        mov      edx, 4
        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):ubyte
        call     [rax]System.String:Equals(System.String,System.String,int):ubyte
        test     eax, eax
-       je       SHORT G_M1639_IG10
+       je       G_M1639_IG16
        mov      rdi, gword ptr [rbx+0x28]
        mov      rsi, gword ptr [r15+0x28]
        mov      edx, 4
        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):ubyte
        call     [rax]System.String:Equals(System.String,System.String,int):ubyte
        test     eax, eax
-       je       SHORT G_M1639_IG10
+       je       G_M1639_IG16
        mov      rdi, gword ptr [rbx+0x18]
        test     rdi, rdi
        je       SHORT G_M1639_IG05
        lea      rsi, bword ptr [rdi+0x0C]
        mov      edi, dword ptr [rdi+0x08]
-       mov      edx, edi
        jmp      SHORT G_M1639_IG06
-						;; size=114 bbWeight=0.50 PerfScore 17.25
+						;; size=120 bbWeight=0.50 PerfScore 17.12
 G_M1639_IG05:
        xor      rsi, rsi
-       xor      edx, edx
+       xor      edi, edi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M1639_IG06:
-       mov      rdi, gword ptr [r15+0x18]
-       test     rdi, rdi
+       mov      rdx, gword ptr [r15+0x18]
+       test     rdx, rdx
        je       SHORT G_M1639_IG07
-       lea      rcx, bword ptr [rdi+0x0C]
-       mov      edi, dword ptr [rdi+0x08]
-       mov      eax, edi
+       lea      rax, bword ptr [rdx+0x0C]
+       mov      edx, dword ptr [rdx+0x08]
        jmp      SHORT G_M1639_IG08
-						;; size=20 bbWeight=0.50 PerfScore 4.00
+						;; size=18 bbWeight=0.50 PerfScore 3.88
 G_M1639_IG07:
-       xor      rcx, rcx
-       xor      eax, eax
+       xor      rax, rax
+       xor      edx, edx
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M1639_IG08:
-       mov      rdi, rsi
-       mov      esi, edx
-       mov      rdx, rcx
-       mov      ecx, eax
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.CookieComparer:EqualDomains(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):ubyte
-       call     [rax]System.Net.CookieComparer:EqualDomains(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):ubyte
-       test     eax, eax
+       mov      rcx, rsi
+       mov      r8d, edi
+       mov      r9, rax
+       mov      r10d, edx
+       test     r8d, r8d
+       je       SHORT G_M1639_IG09
+       cmp      word  ptr [rcx], 46
+       jne      SHORT G_M1639_IG09
+       add      rsi, 2
+       dec      edi
+       mov      rcx, rsi
+       mov      r8d, edi
+						;; size=35 bbWeight=0.50 PerfScore 3.62
+G_M1639_IG09:
+       test     r10d, r10d
        je       SHORT G_M1639_IG10
+       cmp      word  ptr [r9], 46
+       jne      SHORT G_M1639_IG10
+       add      rax, 2
+       dec      edx
+       mov      r9, rax
+       mov      r10d, edx
+						;; size=24 bbWeight=0.50 PerfScore 3.12
+G_M1639_IG10:
+       cmp      r8d, r10d
+       jne      SHORT G_M1639_IG16
+       test     r10d, r10d
+       je       SHORT G_M1639_IG14
+       cmp      r10d, 8
+       jl       SHORT G_M1639_IG12
+       cmp      r10d, 16
+       jge      SHORT G_M1639_IG11
+       mov      rdi, rcx
+       mov      rsi, r9
+       mov      edx, r10d
+       mov      rax, 0xD1FFAB1E      ; code for System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector128`1[ushort]](byref,byref,int):ubyte
+       call     [rax]System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector128`1[ushort]](byref,byref,int):ubyte
+       jmp      SHORT G_M1639_IG13
+						;; size=45 bbWeight=0.50 PerfScore 5.50
+G_M1639_IG11:
+       mov      rdi, rcx
+       mov      rsi, r9
+       mov      edx, r10d
+       mov      rax, 0xD1FFAB1E      ; code for System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector256`1[ushort]](byref,byref,int):ubyte
+       call     [rax]System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector256`1[ushort]](byref,byref,int):ubyte
+       jmp      SHORT G_M1639_IG13
+						;; size=23 bbWeight=0.50 PerfScore 3.00
+G_M1639_IG12:
+       mov      rdi, rcx
+       mov      rsi, r9
+       mov      edx, r10d
+       mov      rax, 0xD1FFAB1E      ; code for System.Globalization.Ordinal:EqualsIgnoreCase_Scalar(byref,byref,int):ubyte
+       call     [rax]System.Globalization.Ordinal:EqualsIgnoreCase_Scalar(byref,byref,int):ubyte
+						;; size=21 bbWeight=0.50 PerfScore 2.00
+G_M1639_IG13:
+       test     eax, eax
+       je       SHORT G_M1639_IG16
+						;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M1639_IG14:
        mov      eax, dword ptr [rbx+0x54]
        cmp      eax, dword ptr [r15+0x54]
        sete     al
        movzx    rax, al
-						;; size=39 bbWeight=0.50 PerfScore 5.88
-G_M1639_IG09:
+						;; size=13 bbWeight=0.50 PerfScore 3.12
+G_M1639_IG15:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=0.50 PerfScore 1.25
-G_M1639_IG10:
+G_M1639_IG16:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M1639_IG11:
+G_M1639_IG17:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=0.50 PerfScore 1.25
 
-; Total bytes of code 233, prolog size 9, PerfScore 36.31, instruction count 71, allocated bytes for code 233 (MethodHash=fcf9f998) for method System.Net.Cookie:Equals(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 363, prolog size 9, PerfScore 51.19, instruction count 108, allocated bytes for code 363 (MethodHash=fcf9f998) for method System.Net.Cookie:Equals(System.Object):ubyte:this (FullOpts)
126 (80.77 % of base) - System.Net.CookieComparer:Equals(System.Net.Cookie,System.Net.Cookie):ubyte
 ; Assembly listing for method System.Net.CookieComparer:Equals(System.Net.Cookie,System.Net.Cookie):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 16 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rbx         class-hnd single-def <System.Net.Cookie>
 ;  V01 arg1         [V01,T01] (  5,  4   )     ref  ->  r15         class-hnd single-def <System.Net.Cookie>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
-;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
+;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
-;  V07 tmp5         [V07,T02] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V07 tmp5         [V07,T03] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V08 tmp6         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V09 tmp7         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V10 tmp8         [V10,T04] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
-;  V11 tmp9         [V11,T06] (  2,  2   )     int  ->  rdi         "Inlining Arg"
-;* V12 tmp10        [V12    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V13 tmp11        [V13,T03] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V10 tmp8         [V10,T14] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V11 tmp9         [V11,T18] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;* V12 tmp10        [V12    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;  V13 tmp11        [V13,T04] (  4,  4   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V14 tmp12        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp13        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V16 tmp14        [V16,T05] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V17 tmp15        [V17,T07] (  2,  2   )     int  ->  rdi         "Inlining Arg"
-;  V18 tmp16        [V18,T08] (  3,  1.50)   byref  ->  rsi         "field V04._reference (fldOffset=0x0)" P-INDEP
-;  V19 tmp17        [V19,T10] (  3,  1.50)     int  ->  rdx         "field V04._length (fldOffset=0x8)" P-INDEP
-;* V20 tmp18        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V21 tmp19        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp20        [V22,T12] (  2,  1   )   byref  ->  rsi         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V23 tmp21        [V23,T14] (  2,  1   )     int  ->  rdi         "field V08._length (fldOffset=0x8)" P-INDEP
-;* V24 tmp22        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-;* V25 tmp23        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
-;  V26 tmp24        [V26,T09] (  3,  1.50)   byref  ->  rcx         "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp25        [V27,T11] (  3,  1.50)     int  ->  rax         "field V12._length (fldOffset=0x8)" P-INDEP
-;  V28 tmp26        [V28,T13] (  2,  1   )   byref  ->  rcx         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V29 tmp27        [V29,T15] (  2,  1   )     int  ->  rdi         "field V14._length (fldOffset=0x8)" P-INDEP
-;* V30 tmp28        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V31 tmp29        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
+;  V16 tmp14        [V16,T15] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V17 tmp15        [V17,T19] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;* V18 tmp16        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V19 tmp17        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V20 tmp18        [V20,T30] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V21 tmp19        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V22 tmp20        [V22    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
+;* V23 tmp21        [V23    ] (  0,  0   )   byref  ->  zero-ref   
+;* V24 tmp22        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;  V25 tmp23        [V25,T16] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
+;  V26 tmp24        [V26,T20] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;* V27 tmp25        [V27,T31] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V28 tmp26        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V29 tmp27        [V29    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
+;* V30 tmp28        [V30    ] (  0,  0   )   byref  ->  zero-ref   
+;* V31 tmp29        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;  V32 tmp30        [V32,T17] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V33 tmp31        [V33,T21] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;* V34 tmp32        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V35 tmp33        [V35    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V36 tmp34        [V36    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;  V37 tmp35        [V37,T09] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;* V38 tmp36        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V39 tmp37        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V40 tmp38        [V40    ] (  0,  0   )   byref  ->  zero-ref    single-def "impAppendStmt"
+;* V41 tmp39        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V42 tmp40        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;  V43 tmp41        [V43,T10] (  4,  2   )   ubyte  ->  rax         "Inline return value spill temp"
+;* V44 tmp42        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V45 tmp43        [V45    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
+;  V46 tmp44        [V46,T07] (  4,  2   )   byref  ->  rsi         "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V47 tmp45        [V47,T11] (  4,  2   )     int  ->  rdi         "field V04._length (fldOffset=0x8)" P-INDEP
+;* V48 tmp46        [V48    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V49 tmp47        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;  V50 tmp48        [V50,T22] (  2,  1   )   byref  ->  rsi         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V51 tmp49        [V51,T26] (  2,  1   )     int  ->  rdi         "field V08._length (fldOffset=0x8)" P-INDEP
+;* V52 tmp50        [V52    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;* V53 tmp51        [V53    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
+;  V54 tmp52        [V54,T08] (  4,  2   )   byref  ->  rax         "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V55 tmp53        [V55,T12] (  4,  2   )     int  ->  rdx         "field V12._length (fldOffset=0x8)" P-INDEP
+;  V56 tmp54        [V56,T23] (  2,  1   )   byref  ->  rax         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V57 tmp55        [V57,T27] (  2,  1   )     int  ->  rdx         "field V14._length (fldOffset=0x8)" P-INDEP
+;* V58 tmp56        [V58    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V59 tmp57        [V59    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
+;  V60 tmp58        [V60,T05] (  6,  3   )   byref  ->  rcx         "field V18._reference (fldOffset=0x0)" P-INDEP
+;  V61 tmp59        [V61,T13] (  4,  2   )     int  ->   r8         "field V18._length (fldOffset=0x8)" P-INDEP
+;  V62 tmp60        [V62,T06] (  6,  3   )   byref  ->   r9         "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V63 tmp61        [V63,T02] ( 10,  5   )     int  ->  r10         "field V19._length (fldOffset=0x8)" P-INDEP
+;* V64 tmp62        [V64    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V65 tmp63        [V65    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x8)" P-INDEP
+;  V66 tmp64        [V66,T24] (  2,  1   )   byref  ->  rcx         single-def "field V24._reference (fldOffset=0x0)" P-INDEP
+;  V67 tmp65        [V67,T28] (  2,  1   )     int  ->   r8         "field V24._length (fldOffset=0x8)" P-INDEP
+;* V68 tmp66        [V68    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+;* V69 tmp67        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
+;  V70 tmp68        [V70,T25] (  2,  1   )   byref  ->   r9         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+;  V71 tmp69        [V71,T29] (  2,  1   )     int  ->  r10         "field V31._length (fldOffset=0x8)" P-INDEP
+;* V72 tmp70        [V72    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V35._reference (fldOffset=0x0)" P-INDEP
+;* V73 tmp71        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V35._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp72        [V74    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V75 tmp73        [V75    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
+;* V76 tmp74        [V76    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V38._reference (fldOffset=0x0)" P-INDEP
+;* V77 tmp75        [V77    ] (  0,  0   )     int  ->  zero-ref    "field V38._length (fldOffset=0x8)" P-INDEP
+;* V78 tmp76        [V78    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp77        [V79    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
+;* V80 tmp78        [V80    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V41._reference (fldOffset=0x0)" P-INDEP
+;* V81 tmp79        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
+;* V82 tmp80        [V82    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V83 tmp81        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 0
 
 G_M47132_IG01:
        push     rbp
        push     r15
        push     rbx
        lea      rbp, [rsp+0x10]
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=15 bbWeight=1 PerfScore 4.00
 G_M47132_IG02:
        mov      rdi, gword ptr [rbx+0x20]
        mov      rsi, gword ptr [r15+0x20]
        mov      edx, 5
        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):ubyte
        call     [rax]System.String:Equals(System.String,System.String,int):ubyte
        test     eax, eax
-       je       SHORT G_M47132_IG09
-						;; size=29 bbWeight=1 PerfScore 8.75
+       je       G_M47132_IG15
+						;; size=33 bbWeight=1 PerfScore 8.75
 G_M47132_IG03:
        mov      rdi, gword ptr [rbx+0x18]
        test     rdi, rdi
        je       SHORT G_M47132_IG04
        lea      rsi, bword ptr [rdi+0x0C]
        mov      edi, dword ptr [rdi+0x08]
-       mov      edx, edi
        jmp      SHORT G_M47132_IG05
-						;; size=20 bbWeight=0.50 PerfScore 4.00
+						;; size=18 bbWeight=0.50 PerfScore 3.88
 G_M47132_IG04:
        xor      rsi, rsi
-       xor      edx, edx
+       xor      edi, edi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M47132_IG05:
-       mov      rdi, gword ptr [r15+0x18]
-       test     rdi, rdi
+       mov      rdx, gword ptr [r15+0x18]
+       test     rdx, rdx
        je       SHORT G_M47132_IG06
-       lea      rcx, bword ptr [rdi+0x0C]
-       mov      edi, dword ptr [rdi+0x08]
-       mov      eax, edi
+       lea      rax, bword ptr [rdx+0x0C]
+       mov      edx, dword ptr [rdx+0x08]
        jmp      SHORT G_M47132_IG07
-						;; size=20 bbWeight=0.50 PerfScore 4.00
+						;; size=18 bbWeight=0.50 PerfScore 3.88
 G_M47132_IG06:
-       xor      rcx, rcx
-       xor      eax, eax
+       xor      rax, rax
+       xor      edx, edx
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M47132_IG07:
-       mov      rdi, rsi
-       mov      esi, edx
-       mov      rdx, rcx
-       mov      ecx, eax
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.CookieComparer:EqualDomains(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):ubyte
-       call     [rax]System.Net.CookieComparer:EqualDomains(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):ubyte
-       test     eax, eax
+       mov      rcx, rsi
+       mov      r8d, edi
+       mov      r9, rax
+       mov      r10d, edx
+       test     r8d, r8d
+       je       SHORT G_M47132_IG08
+       cmp      word  ptr [rcx], 46
+       jne      SHORT G_M47132_IG08
+       add      rsi, 2
+       dec      edi
+       mov      rcx, rsi
+       mov      r8d, edi
+						;; size=35 bbWeight=0.50 PerfScore 3.62
+G_M47132_IG08:
+       test     r10d, r10d
        je       SHORT G_M47132_IG09
+       cmp      word  ptr [r9], 46
+       jne      SHORT G_M47132_IG09
+       add      rax, 2
+       dec      edx
+       mov      r9, rax
+       mov      r10d, edx
+						;; size=24 bbWeight=0.50 PerfScore 3.12
+G_M47132_IG09:
+       cmp      r8d, r10d
+       jne      SHORT G_M47132_IG15
+       test     r10d, r10d
+       je       SHORT G_M47132_IG13
+       cmp      r10d, 8
+       jl       SHORT G_M47132_IG11
+       cmp      r10d, 16
+       jge      SHORT G_M47132_IG10
+       mov      rdi, rcx
+       mov      rsi, r9
+       mov      edx, r10d
+       mov      rax, 0xD1FFAB1E      ; code for System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector128`1[ushort]](byref,byref,int):ubyte
+       call     [rax]System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector128`1[ushort]](byref,byref,int):ubyte
+       jmp      SHORT G_M47132_IG12
+						;; size=45 bbWeight=0.50 PerfScore 5.50
+G_M47132_IG10:
+       mov      rdi, rcx
+       mov      rsi, r9
+       mov      edx, r10d
+       mov      rax, 0xD1FFAB1E      ; code for System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector256`1[ushort]](byref,byref,int):ubyte
+       call     [rax]System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector256`1[ushort]](byref,byref,int):ubyte
+       jmp      SHORT G_M47132_IG12
+						;; size=23 bbWeight=0.50 PerfScore 3.00
+G_M47132_IG11:
+       mov      rdi, rcx
+       mov      rsi, r9
+       mov      edx, r10d
+       mov      rax, 0xD1FFAB1E      ; code for System.Globalization.Ordinal:EqualsIgnoreCase_Scalar(byref,byref,int):ubyte
+       call     [rax]System.Globalization.Ordinal:EqualsIgnoreCase_Scalar(byref,byref,int):ubyte
+						;; size=21 bbWeight=0.50 PerfScore 2.00
+G_M47132_IG12:
+       test     eax, eax
+       je       SHORT G_M47132_IG15
+						;; size=4 bbWeight=0.50 PerfScore 0.62
+G_M47132_IG13:
        mov      rdi, gword ptr [rbx+0x28]
        mov      rsi, gword ptr [r15+0x28]
        mov      edx, 4
        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):ubyte
        call     [rax]System.String:Equals(System.String,System.String,int):ubyte
        nop      
-						;; size=52 bbWeight=0.50 PerfScore 6.62
-G_M47132_IG08:
+						;; size=26 bbWeight=0.50 PerfScore 3.88
+G_M47132_IG14:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=0.50 PerfScore 1.25
-G_M47132_IG09:
+G_M47132_IG15:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M47132_IG10:
+G_M47132_IG16:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=0.50 PerfScore 1.25
 
-; Total bytes of code 156, prolog size 9, PerfScore 30.50, instruction count 54, allocated bytes for code 156 (MethodHash=629147e3) for method System.Net.CookieComparer:Equals(System.Net.Cookie,System.Net.Cookie):ubyte (FullOpts)
+; Total bytes of code 282, prolog size 9, PerfScore 45.38, instruction count 91, allocated bytes for code 282 (MethodHash=629147e3) for method System.Net.CookieComparer:Equals(System.Net.Cookie,System.Net.Cookie):ubyte (FullOpts)
26 (8.02 % of base) - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this
 ; Assembly listing for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T10] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
-;  V01 arg1         [V01,T08] (  3,  4   )     ref  ->  [rbp-0x38]  class-hnd single-def <System.Array>
-;  V02 loc0         [V02,T09] (  3,  6   )     ref  ->  [rbp-0x40]  class-hnd exact spill-single-def <System.Buffers.SharedArrayPoolPartitions+Partition[]>
-;  V03 loc1         [V03,T01] (  7, 23   )     int  ->  rbx        
-;  V04 loc2         [V04,T05] (  4, 13   )     int  ->  r15        
+;  V00 this         [V00,T11] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
+;  V01 arg1         [V01,T09] (  3,  4   )     ref  ->  rbx         class-hnd single-def <System.Array>
+;  V02 loc0         [V02,T10] (  3,  6   )     ref  ->  r15         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V03 loc1         [V03,T01] (  7, 23   )     int  ->  r14        
+;  V04 loc2         [V04,T05] (  4, 13   )     int  ->  r13        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T02] (  2, 16   )     int  ->  rbx         "dup spill"
+;  V06 tmp1         [V06,T02] (  2, 16   )     int  ->  r14         "dup spill"
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V08 tmp3         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T07] (  3, 10   )   ubyte  ->  [rbp-0x2C]  "Inline stloc first use temp"
-;  V10 tmp5         [V10,T00] (  8, 56   )     ref  ->  r12         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V11 tmp6         [V11,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V12 tmp7         [V12,T03] (  5, 14   )     int  ->  [rbp-0x30]  spill-single-def "Inline stloc first use temp"
-;  V13 cse0         [V13,T04] (  5, 14   )     int  ->  r13         "CSE #01: aggressive"
-;  V14 rat0         [V14,T11] (  2,  4   )     int  ->  rbx         "Spilling to split statement for tree"
+;  V08 tmp3         [V08,T15] (  3,  2   )     int  ->  r14         "Inline return value spill temp"
+;  V09 tmp4         [V09,T08] (  4,  7   )     int  ->  r14         "dup spill"
+;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V11 tmp6         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V12 tmp7         [V12,T07] (  3, 10   )   ubyte  ->  [rbp-0x2C]  "Inline stloc first use temp"
+;  V13 tmp8         [V13,T00] (  8, 56   )     ref  ->  [rbp-0x38]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V14 tmp9         [V14,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V15 tmp10        [V15,T03] (  5, 14   )     int  ->  [rbp-0x30]  spill-single-def "Inline stloc first use temp"
+;  V16 cse0         [V16,T14] (  3,  3   )    long  ->  rax         "CSE #01: moderate"
+;  V17 cse1         [V17,T04] (  5, 14   )     int  ->  r12         "CSE #02: aggressive"
+;  V18 rat0         [V18,T12] (  2,  4   )    long  ->  rax         "TLS field access"
+;  V19 rat1         [V19,T13] (  2,  4   )    long  ->  rax         "TLS access"
 ;
 ; Lcl frame size = 24
 
 G_M28192_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 24
-       vzeroupper 
        lea      rbp, [rsp+0x40]
-       mov      gword ptr [rbp-0x38], rsi
-						;; size=26 bbWeight=1 PerfScore 8.75
+       mov      rbx, rsi
+						;; size=22 bbWeight=1 PerfScore 7.00
 G_M28192_IG02:
        mov      r15, gword ptr [rdi+0x08]
-       mov      gword ptr [rbp-0x40], r15
+       mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
-						;; size=18 bbWeight=1 PerfScore 3.25
+       call     rax
+       add      rax, 76
+       mov      r14d, dword ptr [rax+0x10]
+       lea      ecx, [r14-0x01]
+       mov      dword ptr [rax+0x10], ecx
+       movzx    rax, r14w
+       test     eax, eax
+       je       SHORT G_M28192_IG04
+						;; size=49 bbWeight=1 PerfScore 10.75
 G_M28192_IG03:
-       call     rax ; Interop+Sys:SchedGetCpu():int
-       mov      ebx, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       jne      G_M28192_IG16
-						;; size=23 bbWeight=1 PerfScore 7.50
+       sar      r14d, 16
+       jmp      SHORT G_M28192_IG05
+						;; size=6 bbWeight=0.50 PerfScore 1.25
 G_M28192_IG04:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       mov      r14d, eax
+						;; size=15 bbWeight=0.50 PerfScore 1.75
+G_M28192_IG05:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M28192_IG17
+       je       G_M28192_IG19
 						;; size=19 bbWeight=1 PerfScore 4.25
-G_M28192_IG05:
+G_M28192_IG06:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
-       mov      eax, ebx
+       mov      eax, r14d
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
-       mov      ebx, edx
-       xor      r15d, r15d
-       mov      r14, gword ptr [rbp-0x40]
-       mov      r13d, dword ptr [r14+0x08]
-       test     r13d, r13d
-       jle      G_M28192_IG12
-						;; size=38 bbWeight=1 PerfScore 30.50
-G_M28192_IG06:
-       cmp      ebx, r13d
-       jae      G_M28192_IG18
-       mov      edi, ebx
-       mov      r12, gword ptr [r14+8*rdi+0x10]
-       cmp      byte  ptr [r12], r12b
-       xor      eax, eax
-       mov      dword ptr [rbp-0x2C], eax
-       mov      rdi, r12
-       call     System.Threading.Monitor:Enter(System.Object)
-       mov      rdi, gword ptr [r12+0x08]
-       mov      eax, dword ptr [r12+0x10]
-       mov      dword ptr [rbp-0x30], eax
-       cmp      dword ptr [rdi+0x08], eax
-       jbe      SHORT G_M28192_IG09
-						;; size=51 bbWeight=4 PerfScore 72.00
+       mov      r14d, edx
+       xor      r13d, r13d
+       mov      r12d, dword ptr [r15+0x08]
+       test     r12d, r12d
+       jle      G_M28192_IG15
+						;; size=36 bbWeight=1 PerfScore 29.50
 G_M28192_IG07:
-       test     eax, eax
-       jne      SHORT G_M28192_IG08
-       xor      esi, esi
-       mov      dword ptr [r12+0x14], esi
-						;; size=11 bbWeight=2 PerfScore 5.00
+       cmp      r14d, r12d
+       jae      G_M28192_IG20
+       mov      edi, r14d
+       mov      rax, gword ptr [r15+8*rdi+0x10]
+       mov      gword ptr [rbp-0x38], rax
+       cmp      byte  ptr [rax], al
+       xor      ecx, ecx
+       mov      dword ptr [rbp-0x2C], ecx
+       mov      rdi, rax
+       call     System.Threading.Monitor:Enter(System.Object)
+       mov      rax, gword ptr [rbp-0x38]
+       mov      rdi, gword ptr [rax+0x08]
+       mov      ecx, dword ptr [rax+0x10]
+       mov      dword ptr [rbp-0x30], ecx
+       cmp      dword ptr [rdi+0x08], ecx
+       jbe      SHORT G_M28192_IG10
+						;; size=55 bbWeight=4 PerfScore 80.00
 G_M28192_IG08:
-       movsxd   rsi, eax
+       test     ecx, ecx
+       jne      SHORT G_M28192_IG11
+       xor      esi, esi
+       mov      dword ptr [rax+0x14], esi
+						;; size=9 bbWeight=2 PerfScore 5.00
+G_M28192_IG09:
+       movsxd   rsi, ecx
        lea      rdi, bword ptr [rdi+8*rsi+0x10]
-       mov      rsi, gword ptr [rbp-0x38]
+       mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        mov      edi, dword ptr [rbp-0x30]
        inc      edi
-       mov      dword ptr [r12+0x10], edi
+       mov      rax, gword ptr [rbp-0x38]
+       mov      dword ptr [rax+0x10], edi
        mov      dword ptr [rbp-0x2C], 1
-						;; size=34 bbWeight=2 PerfScore 13.00
-G_M28192_IG09:
-       mov      rdi, r12
+						;; size=35 bbWeight=2 PerfScore 13.50
+G_M28192_IG10:
+       mov      rdi, rax
        call     System.Threading.Monitor:Exit(System.Object)
        cmp      dword ptr [rbp-0x2C], 0
-       jne      SHORT G_M28192_IG14
-       inc      ebx
-       cmp      r13d, ebx
-       jne      SHORT G_M28192_IG11
-						;; size=21 bbWeight=4 PerfScore 23.00
-G_M28192_IG10:
-       xor      ebx, ebx
-						;; size=2 bbWeight=2 PerfScore 0.50
+       je       SHORT G_M28192_IG12
+       jmp      SHORT G_M28192_IG17
+						;; size=16 bbWeight=4 PerfScore 25.00
 G_M28192_IG11:
-       inc      r15d
-       cmp      r13d, r15d
-       jg       SHORT G_M28192_IG06
-						;; size=8 bbWeight=4 PerfScore 6.00
+       jmp      SHORT G_M28192_IG09
+						;; size=2 bbWeight=1 PerfScore 2.00
 G_M28192_IG12:
+       inc      r14d
+       cmp      r12d, r14d
+       jne      SHORT G_M28192_IG14
+						;; size=8 bbWeight=4 PerfScore 6.00
+G_M28192_IG13:
+       xor      r14d, r14d
+						;; size=3 bbWeight=2 PerfScore 0.50
+G_M28192_IG14:
+       inc      r13d
+       cmp      r12d, r13d
+       jg       G_M28192_IG07
+						;; size=12 bbWeight=4 PerfScore 6.00
+G_M28192_IG15:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M28192_IG13:
+G_M28192_IG16:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M28192_IG14:
+G_M28192_IG17:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M28192_IG15:
+G_M28192_IG18:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M28192_IG16:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M28192_IG04
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M28192_IG17:
+G_M28192_IG19:
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
-       jmp      G_M28192_IG05
+       jmp      G_M28192_IG06
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M28192_IG18:
+G_M28192_IG20:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 324, prolog size 26, PerfScore 178.25, instruction count 93, allocated bytes for code 324 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
+; Total bytes of code 350, prolog size 22, PerfScore 197.00, instruction count 102, allocated bytes for code 350 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
26 (59.09 % of base) - System.Threading.Thread:GetCurrentProcessorId():int
 ; Assembly listing for method System.Threading.Thread:GetCurrentProcessorId():int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; partially interruptible
+; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;# V00 OutArgs      [V00    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V01 tmp1         [V01,T04] (  2,  1   )     int  ->  rax         "Inline return value spill temp"
+;  V02 tmp2         [V02,T00] (  4,  7   )     int  ->  rcx         "dup spill"
+;* V03 tmp3         [V03    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V04 cse0         [V04,T03] (  3,  3   )    long  ->  rax         "CSE #01: aggressive"
+;  V05 rat0         [V05,T01] (  2,  4   )    long  ->  rax         "TLS field access"
+;  V06 rat1         [V06,T02] (  2,  4   )    long  ->  rax         "TLS access"
 ;
 ; Lcl frame size = 8
 
 G_M31145_IG01:
        push     rax
-       vzeroupper 
-						;; size=4 bbWeight=1 PerfScore 2.00
+						;; size=1 bbWeight=1 PerfScore 1.00
 G_M31145_IG02:
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       jne      SHORT G_M31145_IG06
-						;; size=15 bbWeight=1 PerfScore 4.25
-G_M31145_IG03:
+       mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
-						;; size=10 bbWeight=1 PerfScore 0.25
+       call     rax
+       add      rax, 76
+       mov      ecx, dword ptr [rax+0x10]
+       lea      edx, [rcx-0x01]
+       mov      dword ptr [rax+0x10], edx
+       movzx    rax, cx
+       test     eax, eax
+       je       SHORT G_M31145_IG05
+						;; size=42 bbWeight=1 PerfScore 8.75
+G_M31145_IG03:
+       mov      eax, ecx
+       sar      eax, 16
+						;; size=5 bbWeight=0.50 PerfScore 0.38
 G_M31145_IG04:
-       call     rax ; Interop+Sys:SchedGetCpu():int
-       nop      
-						;; size=3 bbWeight=1 PerfScore 3.25
-G_M31145_IG05:
        add      rsp, 8
        ret      
-						;; size=5 bbWeight=1 PerfScore 1.25
+						;; size=5 bbWeight=0.50 PerfScore 0.62
+G_M31145_IG05:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M31145_IG06:
-       call     CORINFO_HELP_POLL_GC
-       jmp      SHORT G_M31145_IG03
-						;; size=7 bbWeight=0 PerfScore 0.00
+       add      rsp, 8
+       tail.jmp [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+						;; size=7 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 44, prolog size 4, PerfScore 11.00, instruction count 12, allocated bytes for code 44 (MethodHash=d4fe8656) for method System.Threading.Thread:GetCurrentProcessorId():int (FullOpts)
+; Total bytes of code 70, prolog size 1, PerfScore 12.00, instruction count 18, allocated bytes for code 70 (MethodHash=d4fe8656) for method System.Threading.Thread:GetCurrentProcessorId():int (FullOpts)
20 (1.07 % of base) - System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
 ; Assembly listing for method System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  8,  5   )     ref  ->  [rbp-0x50]  this class-hnd single-def <System.Buffers.SharedArrayPool`1[ubyte]>
-;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  [rbp-0x58]  class-hnd single-def <ubyte[]>
+;  V00 this         [V00,T09] (  8,  5   )     ref  ->  r15         this class-hnd single-def <System.Buffers.SharedArrayPool`1[ubyte]>
+;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  rbx         class-hnd single-def <ubyte[]>
 ;  V02 arg2         [V02,T14] (  3,  2.50)   ubyte  ->  r14         single-def
 ;  V03 loc0         [V03,T12] (  8,  5   )     int  ->  r12        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T23] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
-;  V06 loc3         [V06,T25] (  3,  2   )   ubyte  ->  [rbp-0x30] 
-;  V07 loc4         [V07,T20] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T21] (  3,  3   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <System.Array>
+;  V05 loc2         [V05,T24] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
+;  V06 loc3         [V06,T26] (  3,  2   )   ubyte  ->  [rbp-0x30] 
+;  V07 loc4         [V07,T21] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T22] (  3,  3   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <System.Array>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T19] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V11 tmp2         [V11,T16] (  5,  4   )     ref  ->  [rbp-0x68] 
-;  V12 tmp3         [V12,T27] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
-;  V13 tmp4         [V13,T28] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
-;  V14 tmp5         [V14,T29] (  2,  2   )     int  ->  rbx         "impAppendStmt"
-;  V15 tmp6         [V15,T30] (  2,  2   )     int  ->  r13         "impAppendStmt"
+;  V10 tmp1         [V10,T20] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V11 tmp2         [V11,T16] (  5,  4   )     ref  ->  [rbp-0x60] 
+;  V12 tmp3         [V12,T28] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
+;  V13 tmp4         [V13,T29] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
+;  V14 tmp5         [V14,T30] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V15 tmp6         [V15,T31] (  2,  2   )     int  ->  r13         "impAppendStmt"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
-;  V19 tmp10        [V19,T36] (  2,  1   )     int  ->  rcx        
+;  V19 tmp10        [V19,T40] (  2,  1   )     int  ->  rcx        
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
-;  V24 tmp15        [V24,T33] (  3,  1.50)     int  ->   r8        
+;  V24 tmp15        [V24,T35] (  3,  1.50)     int  ->   r8        
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;  V35 tmp26        [V35,T34] (  3,  1.50)     int  ->   r9        
+;  V35 tmp26        [V35,T36] (  3,  1.50)     int  ->   r9        
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V37 tmp28        [V37,T17] (  4,  4   )   byref  ->  r14         single-def "dup spill"
 ;* V38 tmp29        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V39 tmp30        [V39,T26] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V40 tmp31        [V40,T24] (  4,  2   )     ref  ->  rax        
-;  V41 tmp32        [V41,T39] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V39 tmp30        [V39,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V40 tmp31        [V40,T25] (  4,  2   )     ref  ->  rax        
+;  V41 tmp32        [V41,T43] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp36        [V45,T35] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
-;  V46 tmp37        [V46,T13] (  3,  5   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
-;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  rbx         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  r15         "Inline stloc first use temp"
-;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rbx         "dup spill"
+;  V45 tmp36        [V45,T37] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
+;  V46 tmp37        [V46,T13] (  3,  5   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  [rbp-0x3C]  "Inline stloc first use temp"
+;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  [rbp-0x40]  "Inline stloc first use temp"
+;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rax         "dup spill"
 ;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V51 tmp42        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V52 tmp43        [V52,T07] (  3, 10   )   ubyte  ->  [rbp-0x3C]  "Inline stloc first use temp"
-;  V53 tmp44        [V53,T00] (  8, 56   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V54 tmp45        [V54,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V55 tmp46        [V55,T03] (  5, 14   )     int  ->  [rbp-0x40]  spill-single-def "Inline stloc first use temp"
-;  V56 tmp47        [V56,T31] (  2,  2   )     int  ->   r8         "Inlining Arg"
-;* V57 tmp48        [V57,T37] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
-;* V58 tmp49        [V58,T38] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
-;  V59 tmp50        [V59,T22] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V60 tmp51        [V60,T40] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
-;  V61 tmp52        [V61,T41] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V62 cse0         [V62,T04] (  5, 13   )     int  ->  [rbp-0x44]  spill-single-def "CSE #04: aggressive"
-;  V63 cse1         [V63,T15] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
-;  V64 rat0         [V64,T32] (  2,  2   )     int  ->  rbx         "Spilling to split statement for tree"
-;  V65 rat1         [V65,T18] (  3,  4   )   byref  ->  rax         "TLS field access"
-;  V66 rat2         [V66,T11] (  3,  6   )    long  ->  rax         "TLS access"
-;  V67 rat3         [V67,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V51 tmp42        [V51,T38] (  3,  1.50)     int  ->  [rbp-0x44]  "Inline return value spill temp"
+;  V52 tmp43        [V52,T18] (  4,  4   )     int  ->  rcx         "dup spill"
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V54 tmp45        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V55 tmp46        [V55,T07] (  3, 10   )   ubyte  ->  [rbp-0x48]  "Inline stloc first use temp"
+;  V56 tmp47        [V56,T00] (  8, 56   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V57 tmp48        [V57,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V58 tmp49        [V58,T03] (  5, 14   )     int  ->  [rbp-0x4C]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp50        [V59,T32] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;* V60 tmp51        [V60,T41] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
+;* V61 tmp52        [V61,T42] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
+;  V62 tmp53        [V62,T23] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V63 tmp54        [V63,T44] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
+;  V64 tmp55        [V64,T45] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V65 cse0         [V65,T39] (  3,  1.50)    long  ->  rax         "CSE #04: moderate"
+;  V66 cse1         [V66,T04] (  5, 13   )     int  ->  [rbp-0x50]  spill-single-def "CSE #05: aggressive"
+;  V67 cse2         [V67,T15] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
+;  V68 rat0         [V68,T19] (  3,  4   )   byref  ->  rax         "TLS field access"
+;  V69 rat1         [V69,T11] (  3,  6   )    long  ->  rax         "TLS access"
+;  V70 rat2         [V70,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V71 rat3         [V71,T33] (  2,  2   )    long  ->  rax         "TLS field access"
+;  V72 rat4         [V72,T34] (  2,  2   )    long  ->  rax         "TLS access"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M60175_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 88
-       vzeroupper 
-       lea      rbp, [rsp+0x80]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        mov      r15, rdi
        mov      rbx, rsi
        mov      r14d, edx
-						;; size=34 bbWeight=1 PerfScore 8.50
+						;; size=28 bbWeight=1 PerfScore 7.50
 G_M60175_IG02:
        test     rbx, rbx
-       je       G_M60175_IG35
+       je       G_M60175_IG34
        mov      r13d, dword ptr [rbx+0x08]
        lea      edi, [r13-0x01]
        or       edi, 15
        xor      r12d, r12d
        lzcnt    r12d, edi
        xor      r12d, 31
        add      r12d, -3
        mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
        call     rax
        cmp      dword ptr [rax], 10
        jle      G_M60175_IG31
        mov      rdi, gword ptr [rax+0x08]
        mov      rax, bword ptr [rdi+0x50]
        test     rax, rax
        je       G_M60175_IG31
 						;; size=84 bbWeight=1 PerfScore 19.50
 G_M60175_IG03:
        mov      rax, gword ptr [rax+0x10]
        test     rax, rax
        jne      SHORT G_M60175_IG05
 						;; size=9 bbWeight=1 PerfScore 3.25
 G_M60175_IG04:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[ubyte]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
        call     [rax]System.Buffers.SharedArrayPool`1[ubyte]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
 						;; size=15 bbWeight=0.50 PerfScore 1.75
 G_M60175_IG05:
        xor      ecx, ecx
        mov      dword ptr [rbp-0x30], 1
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x60], rax
        cmp      dword ptr [rax+0x08], r12d
        jbe      G_M60175_IG25
 						;; size=23 bbWeight=1 PerfScore 6.25
 G_M60175_IG06:
        mov      dword ptr [rbp-0x2C], 1
        test     r14b, r14b
        je       SHORT G_M60175_IG07
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; code for System.Array:Clear(System.Array)
        call     [rsi]System.Array:Clear(System.Array)
 						;; size=27 bbWeight=0.50 PerfScore 2.88
 G_M60175_IG07:
        mov      edi, 16
        shlx     edi, edi, r12d
        cmp      r13d, edi
-       jne      G_M60175_IG34
+       jne      G_M60175_IG33
        mov      edi, r12d
        shl      rdi, 4
-       mov      rax, gword ptr [rbp-0x68]
+       mov      rax, gword ptr [rbp-0x60]
        lea      r14, bword ptr [rax+rdi+0x10]
        mov      rax, gword ptr [r14]
-       mov      gword ptr [rbp-0x60], rax
-       mov      gword ptr [rbp-0x58], rbx
+       mov      gword ptr [rbp-0x58], rax
        mov      rdi, r14
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        xor      edi, edi
        mov      dword ptr [r14+0x08], edi
-       cmp      gword ptr [rbp-0x60], 0
-       mov      rbx, gword ptr [rbp-0x58]
-       je       SHORT G_M60175_IG11
+       mov      r14, gword ptr [rbp-0x58]
+       test     r14, r14
+       je       SHORT G_M60175_IG09
        mov      rdi, gword ptr [r15+0x10]
        cmp      r12d, dword ptr [rdi+0x08]
-       jae      G_M60175_IG36
+       jae      G_M60175_IG35
        mov      esi, r12d
        mov      rax, gword ptr [rdi+8*rsi+0x10]
        test     rax, rax
-       jne      SHORT G_M60175_IG10
-       mov      gword ptr [rbp-0x50], r15
+       jne      SHORT G_M60175_IG08
        mov      rdi, r15
        mov      esi, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[ubyte]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
        call     [rax]System.Buffers.SharedArrayPool`1[ubyte]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
-       mov      gword ptr [rbp-0x58], rbx
-						;; size=127 bbWeight=0.50 PerfScore 15.38
+						;; size=113 bbWeight=0.50 PerfScore 13.00
 G_M60175_IG08:
        mov      rax, gword ptr [rax+0x08]
-       mov      gword ptr [rbp-0x70], rax
+       mov      gword ptr [rbp-0x68], rax
+       mov      rdi, 0xD1FFAB1E
        mov      rcx, 0xD1FFAB1E      ; function address
-						;; size=18 bbWeight=0.50 PerfScore 1.62
+       call     rcx
+       add      rax, 76
+       mov      ecx, dword ptr [rax+0x10]
+       lea      edx, [rcx-0x01]
+       mov      dword ptr [rax+0x10], edx
+       movzx    rax, cx
+       test     eax, eax
+       jne      SHORT G_M60175_IG10
+       jmp      SHORT G_M60175_IG11
+						;; size=52 bbWeight=0.50 PerfScore 6.88
 G_M60175_IG09:
-       call     rcx ; Interop+Sys:SchedGetCpu():int
-       mov      ebx, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       je       SHORT G_M60175_IG12
-       jmp      G_M60175_IG32
-						;; size=24 bbWeight=0.50 PerfScore 4.75
-G_M60175_IG10:
-       mov      gword ptr [rbp-0x58], rbx
-       mov      gword ptr [rbp-0x50], r15
-       jmp      SHORT G_M60175_IG08
-						;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M60175_IG11:
        mov      ecx, dword ptr [rbp-0x2C]
        jmp      G_M60175_IG25
 						;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M60175_IG10:
+       mov      eax, ecx
+       sar      eax, 16
+       mov      edx, eax
+       jmp      SHORT G_M60175_IG12
+						;; size=9 bbWeight=0.50 PerfScore 1.50
+G_M60175_IG11:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       mov      edx, eax
+						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M60175_IG12:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M60175_IG33
+       je       G_M60175_IG32
 						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M60175_IG13:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
-       mov      eax, ebx
+       mov      eax, edx
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
-       mov      ebx, edx
-       xor      r15d, r15d
-       mov      r14, gword ptr [rbp-0x70]
-       mov      eax, dword ptr [r14+0x08]
-       mov      dword ptr [rbp-0x44], eax
-       test     eax, eax
+       mov      eax, edx
+       xor      ecx, ecx
+       mov      dword ptr [rbp-0x40], ecx
+       mov      rdx, gword ptr [rbp-0x68]
+       mov      esi, dword ptr [rdx+0x08]
+       mov      dword ptr [rbp-0x50], esi
+       test     esi, esi
        jle      G_M60175_IG22
-						;; size=40 bbWeight=0.50 PerfScore 15.75
+						;; size=41 bbWeight=0.50 PerfScore 16.25
 G_M60175_IG14:
-       cmp      ebx, eax
-       jae      G_M60175_IG36
-       mov      edi, ebx
-       mov      rcx, gword ptr [r14+8*rdi+0x10]
-       mov      gword ptr [rbp-0x78], rcx
-       cmp      byte  ptr [rcx], cl
-       xor      edx, edx
-       mov      dword ptr [rbp-0x3C], edx
-       mov      rdi, rcx
+       cmp      eax, esi
+       jae      G_M60175_IG35
+       mov      dword ptr [rbp-0x3C], eax
+       mov      edi, eax
+       mov      r8, gword ptr [rdx+8*rdi+0x10]
+       mov      gword ptr [rbp-0x70], r8
+       cmp      byte  ptr [r8], r8b
+       xor      r9d, r9d
+       mov      dword ptr [rbp-0x48], r9d
+       mov      rdi, r8
        call     System.Threading.Monitor:Enter(System.Object)
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      rdi, gword ptr [rax+0x08]
        mov      ecx, dword ptr [rax+0x10]
-       mov      dword ptr [rbp-0x40], ecx
+       mov      dword ptr [rbp-0x4C], ecx
        cmp      dword ptr [rdi+0x08], ecx
        jbe      SHORT G_M60175_IG17
-						;; size=53 bbWeight=4 PerfScore 80.00
+						;; size=59 bbWeight=4 PerfScore 84.00
 G_M60175_IG15:
        test     ecx, ecx
        jne      SHORT G_M60175_IG18
        xor      esi, esi
        mov      dword ptr [rax+0x14], esi
 						;; size=9 bbWeight=2 PerfScore 5.00
 G_M60175_IG16:
        movsxd   rsi, ecx
        lea      rdi, bword ptr [rdi+8*rsi+0x10]
-       mov      rsi, gword ptr [rbp-0x60]
+       mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
-       mov      edi, dword ptr [rbp-0x40]
+       mov      edi, dword ptr [rbp-0x4C]
        inc      edi
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      dword ptr [rax+0x10], edi
-       mov      dword ptr [rbp-0x3C], 1
-						;; size=36 bbWeight=2 PerfScore 15.00
+       mov      dword ptr [rbp-0x48], 1
+						;; size=35 bbWeight=2 PerfScore 13.50
 G_M60175_IG17:
        mov      rdi, rax
        call     System.Threading.Monitor:Exit(System.Object)
-       cmp      dword ptr [rbp-0x3C], 0
+       cmp      dword ptr [rbp-0x48], 0
        je       SHORT G_M60175_IG19
        jmp      SHORT G_M60175_IG23
 						;; size=16 bbWeight=4 PerfScore 25.00
 G_M60175_IG18:
        jmp      SHORT G_M60175_IG16
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M60175_IG19:
-       inc      ebx
-       mov      edi, dword ptr [rbp-0x44]
-       cmp      edi, ebx
+       mov      eax, dword ptr [rbp-0x3C]
+       inc      eax
+       mov      edi, eax
+       mov      esi, dword ptr [rbp-0x50]
+       cmp      esi, edi
        jne      SHORT G_M60175_IG21
-						;; size=9 bbWeight=4 PerfScore 10.00
+						;; size=14 bbWeight=4 PerfScore 15.00
 G_M60175_IG20:
-       xor      ebx, ebx
+       xor      edi, edi
 						;; size=2 bbWeight=2 PerfScore 0.50
 G_M60175_IG21:
-       inc      r15d
-       cmp      edi, r15d
+       mov      ecx, dword ptr [rbp-0x40]
+       inc      ecx
+       cmp      esi, ecx
+       mov      dword ptr [rbp-0x40], ecx
        mov      eax, edi
+       mov      rdx, gword ptr [rbp-0x68]
        jg       G_M60175_IG14
-						;; size=14 bbWeight=4 PerfScore 7.00
+						;; size=22 bbWeight=4 PerfScore 19.00
 G_M60175_IG22:
        xor      edx, edx
        jmp      SHORT G_M60175_IG24
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M60175_IG23:
        mov      edx, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M60175_IG24:
        mov      dword ptr [rbp-0x30], edx
        mov      ecx, dword ptr [rbp-0x2C]
-       mov      rbx, gword ptr [rbp-0x58]
-       mov      r15, gword ptr [rbp-0x50]
-						;; size=14 bbWeight=0.50 PerfScore 2.00
+						;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M60175_IG25:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       G_M60175_IG29
 						;; size=27 bbWeight=1 PerfScore 6.25
 G_M60175_IG26:
        test     r13d, r13d
        mov      dword ptr [rbp-0x2C], ecx
        je       G_M60175_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      dword ptr [rbp-0x34], eax
        mov      dword ptr [rbp-0x38], r13d
        cmp      byte  ptr [r15], r15b
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r8d, eax
        mov      rdi, r14
        mov      edx, dword ptr [rbp-0x34]
        mov      ecx, dword ptr [rbp-0x38]
        mov      esi, 3
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        mov      eax, dword ptr [rbp-0x2C]
        test     eax, dword ptr [rbp-0x30]
        jne      SHORT G_M60175_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ebx, eax
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        cmp      dword ptr [rbp-0x2C], 0
        je       SHORT G_M60175_IG27
        mov      r8d, r12d
        xor      r9d, r9d
        jmp      SHORT G_M60175_IG28
 						;; size=109 bbWeight=0.50 PerfScore 14.12
 G_M60175_IG27:
        mov      r8d, -1
        mov      r9d, 1
 						;; size=12 bbWeight=0.50 PerfScore 0.25
 G_M60175_IG28:
        mov      rdi, r14
        mov      esi, ebx
        mov      edx, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M60175_IG29:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M60175_IG30:
-       add      rsp, 88
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M60175_IG31:
        mov      edi, 10
        call     CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
        jmp      G_M60175_IG03
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M60175_IG32:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M60175_IG12
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M60175_IG33:
+       mov      dword ptr [rbp-0x44], edx
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
+       mov      edx, dword ptr [rbp-0x44]
        jmp      G_M60175_IG13
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M60175_IG34:
+						;; size=26 bbWeight=0 PerfScore 0.00
+G_M60175_IG33:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_ArgumentException_BufferNotFromPool():System.String
        call     [rax]System.SR:get_ArgumentException_BufferNotFromPool():System.String
        mov      r15, rax
        mov      edi, 987
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
-G_M60175_IG35:
+G_M60175_IG34:
        mov      edi, 2
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M60175_IG36:
+G_M60175_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 938, prolog size 34, PerfScore 258.38, instruction count 240, allocated bytes for code 938 (MethodHash=78a414f0) for method System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (FullOpts)
+; Total bytes of code 948, prolog size 28, PerfScore 276.75, instruction count 249, allocated bytes for code 948 (MethodHash=78a414f0) for method System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (FullOpts)
16 (4.03 % of base) - Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:.ctor():this
 ; Assembly listing for method Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:.ctor():this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 11 single block inlinees; 9 inlinees without PGO data
+; 0 inlinees with PGO data; 12 single block inlinees; 8 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  5,  5   )     ref  ->  rbx         this class-hnd single-def <Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener>
+;  V00 this         [V00,T02] (  5,  5   )     ref  ->  [rbp-0x28]  this class-hnd single-def <Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T01] (  4,  8   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Threading.TimerCallback>
-;  V03 tmp2         [V03,T04] (  3,  6   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Timer>
-;* V04 tmp3         [V04,T12] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V05 tmp4         [V05,T15] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V06 tmp5         [V06,T13] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V07 tmp6         [V07,T16] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V08 tmp7         [V08,T00] (  7, 14   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Threading.TimerQueueTimer>
-;  V09 tmp8         [V09,T05] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Threading.TimerHolder>
-;  V10 tmp9         [V10,T06] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "impAppendStmt" <System.Threading.TimerQueue[]>
-;* V11 tmp10        [V11    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
+;  V03 tmp2         [V03,T03] (  3,  6   )     ref  ->  [rbp-0x30]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Threading.Timer>
+;* V04 tmp3         [V04,T08] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V05 tmp4         [V05,T11] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V06 tmp5         [V06,T09] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V07 tmp6         [V07,T12] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;  V08 tmp7         [V08,T00] (  7, 14   )     ref  ->  [rbp-0x38]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Threading.TimerQueueTimer>
+;  V09 tmp8         [V09,T04] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Threading.TimerHolder>
+;  V10 tmp9         [V10,T05] (  3,  6   )     ref  ->  [rbp-0x40]  class-hnd exact spill-single-def "impAppendStmt" <System.Threading.TimerQueue[]>
+;  V11 tmp10        [V11,T07] (  2,  4   )    long  ->  rax         "impAppendStmt"
 ;* V12 tmp11        [V12    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V13 tmp12        [V13,T11] (  3,  2   )     int  ->  rcx         "Inline return value spill temp"
-;  V14 tmp13        [V14,T03] (  4,  7   )     int  ->  rcx         "dup spill"
-;* V15 tmp14        [V15    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V16 tmp15        [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V17 tmp16        [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V18 tmp17        [V18,T07] (  3,  6   )    long  ->  rdx         "index expr"
-;* V19 cse0         [V19,T14] (  0,  0   )   byref  ->  zero-ref    "CSE #03: moderate"
-;  V20 cse1         [V20,T10] (  3,  3   )    long  ->  rax         "CSE #01: moderate"
-;  V21 rat0         [V21,T08] (  2,  4   )    long  ->  rax         "TLS field access"
-;  V22 rat1         [V22,T09] (  2,  4   )    long  ->  rax         "TLS access"
+;* V13 tmp12        [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V14 tmp13        [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V15 tmp14        [V15,T06] (  3,  6   )    long  ->  rdx         "index expr"
+;* V16 cse0         [V16,T10] (  0,  0   )   byref  ->  zero-ref    "CSE #02: moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 32
 
 G_M37176_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
-       lea      rbp, [rsp+0x20]
+       sub      rsp, 32
+       vzeroupper 
+       lea      rbp, [rsp+0x40]
        mov      rbx, rdi
-						;; size=16 bbWeight=1 PerfScore 5.75
+						;; size=23 bbWeight=1 PerfScore 7.00
 G_M37176_IG02:
        mov      rdi, 0xD1FFAB1E      ; System.Threading.TimerCallback
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
        test     rbx, rbx
-       je       G_M37176_IG09
+       je       G_M37176_IG08
        lea      rdi, bword ptr [r15+0x08]
+       mov      gword ptr [rbp-0x28], rbx
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, 0xD1FFAB1E      ; code for Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:OnTimer(System.Object):this
        mov      qword ptr [r15+0x18], rdi
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Timer
        call     CORINFO_HELP_NEWSFAST
-       mov      r14, rax
+       mov      gword ptr [rbp-0x30], rax
        mov      rdi, 0xD1FFAB1E      ; System.Threading.TimerQueueTimer
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
+       mov      gword ptr [rbp-0x38], r13
        lea      rdi, bword ptr [r13+0x20]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        xor      rax, rax
        mov      gword ptr [r13+0x28], rax
        mov      qword ptr [r13+0x48], -1
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
        call     [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
        lea      rdi, bword ptr [r13+0x30]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, 0xD1FFAB1E      ; global ptr
-       test     byte  ptr [rdi], 1
-       je       G_M37176_IG08
-						;; size=158 bbWeight=1 PerfScore 22.00
+       mov      rax, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rax], 1
+       je       G_M37176_IG06
+						;; size=167 bbWeight=1 PerfScore 24.75
 G_M37176_IG03:
-       mov      rdi, 0xD1FFAB1E      ; data for System.Threading.TimerQueue:<Instances>k__BackingField
-       mov      r15, gword ptr [rdi]
-       mov      rdi, 0xD1FFAB1E
+       mov      rax, 0xD1FFAB1E      ; data for System.Threading.TimerQueue:<Instances>k__BackingField
+       mov      r15, gword ptr [rax]
+       mov      gword ptr [rbp-0x40], r15
        mov      rax, 0xD1FFAB1E      ; function address
-       call     rax
-       add      rax, 76
-       mov      ecx, dword ptr [rax+0x10]
-       lea      edx, [rcx-0x01]
-       mov      dword ptr [rax+0x10], edx
-       movzx    rax, cx
-       test     eax, eax
-       je       SHORT G_M37176_IG05
-						;; size=55 bbWeight=1 PerfScore 11.00
+						;; size=27 bbWeight=1 PerfScore 3.50
 G_M37176_IG04:
-       sar      ecx, 16
-       jmp      SHORT G_M37176_IG06
-						;; size=5 bbWeight=0.50 PerfScore 1.25
-G_M37176_IG05:
-       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
-       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
-       mov      ecx, eax
-						;; size=14 bbWeight=0.50 PerfScore 1.75
-G_M37176_IG06:
-       mov      eax, ecx
+       call     rax ; Interop+Sys:SchedGetCpu():int
+       mov      eax, eax
        mov      rdx, 0xD1FFAB1E      ; data for System.Threading.TimerQueue:<Instances>k__BackingField
        mov      rdx, gword ptr [rdx]
        mov      edi, dword ptr [rdx+0x08]
-       xor      edx, edx
-       div      rdx:rax, rdi
+       cqo      
+       idiv     rdx:rax, rdi
+       mov      r15, gword ptr [rbp-0x40]
        mov      edi, dword ptr [r15+0x08]
        cmp      rdx, rdi
-       jae      SHORT G_M37176_IG10
+       jae      G_M37176_IG09
        mov      rsi, gword ptr [r15+8*rdx+0x10]
+       mov      r13, gword ptr [rbp-0x38]
        lea      rdi, bword ptr [r13+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, 0xD1FFAB1E      ; System.Threading.TimerHolder
        call     CORINFO_HELP_NEWFAST
-       mov      r15, rax
-       lea      rdi, bword ptr [r15+0x08]
+       mov      rbx, rax
+       lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, r13
        call     CORINFO_HELP_ASSIGN_REF
+       mov      r14, gword ptr [rbp-0x30]
        lea      rdi, bword ptr [r14+0x08]
-       mov      rsi, r15
+       mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
+       mov      rbx, gword ptr [rbp-0x28]
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
-       nop      
-						;; size=101 bbWeight=1 PerfScore 79.50
-G_M37176_IG07:
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       cmp      dword ptr [rdi], 0
+       jne      SHORT G_M37176_IG07
+						;; size=137 bbWeight=1 PerfScore 97.75
+G_M37176_IG05:
+       add      rsp, 32
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=1 PerfScore 3.50
-G_M37176_IG08:
+						;; size=13 bbWeight=1 PerfScore 3.75
+G_M37176_IG06:
        mov      rdi, 0xD1FFAB1E      ; System.Threading.TimerQueue
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      G_M37176_IG03
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M37176_IG09:
+G_M37176_IG07:
+       call     CORINFO_HELP_POLL_GC
+       jmp      SHORT G_M37176_IG05
+						;; size=7 bbWeight=0 PerfScore 0.00
+G_M37176_IG08:
        mov      rax, 0xD1FFAB1E      ; code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
        call     [rax]System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M37176_IG10:
+G_M37176_IG09:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 397, prolog size 13, PerfScore 124.75, instruction count 93, allocated bytes for code 397 (MethodHash=cb6b6ec7) for method Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:.ctor():this (FullOpts)
+; Total bytes of code 413, prolog size 20, PerfScore 136.75, instruction count 94, allocated bytes for code 413 (MethodHash=cb6b6ec7) for method Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:.ctor():this (FullOpts)
14 (4.68 % of base) - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this
 ; Assembly listing for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T10] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
+;  V00 this         [V00,T11] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Array>
-;  V02 loc1         [V02,T09] (  3,  6   )     ref  ->  [rbp-0x30]  class-hnd exact spill-single-def <System.Buffers.SharedArrayPoolPartitions+Partition[]>
-;  V03 loc2         [V03,T01] (  7, 23   )     int  ->  rbx        
-;  V04 loc3         [V04,T05] (  4, 13   )     int  ->  r15        
+;  V02 loc1         [V02,T10] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V03 loc2         [V03,T01] (  7, 23   )     int  ->  r15        
+;  V04 loc3         [V04,T05] (  4, 13   )     int  ->  r14        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
-;  V07 tmp2         [V07,T02] (  2, 16   )     int  ->  rbx         "dup spill"
+;  V07 tmp2         [V07,T02] (  2, 16   )     int  ->  r15         "dup spill"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V09 tmp4         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V10 tmp5         [V10,T07] (  4, 10.50)     ref  ->  [rbp-0x38]  class-hnd "Inline stloc first use temp" <System.Array>
-;  V11 tmp6         [V11,T00] (  7, 52   )     ref  ->  r12         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V12 tmp7         [V12,T06] (  4, 12   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V13 tmp8         [V13,T03] (  5, 14   )     int  ->  rax         "Inline stloc first use temp"
-;  V14 cse0         [V14,T04] (  5, 14   )     int  ->  r13         "CSE #01: moderate"
-;  V15 cse1         [V15,T08] (  2,  8   )     int  ->  rcx         "CSE #02: moderate"
-;  V16 rat0         [V16,T11] (  2,  4   )     int  ->  rbx         "Spilling to split statement for tree"
+;  V09 tmp4         [V09,T15] (  3,  2   )     int  ->  r15         "Inline return value spill temp"
+;  V10 tmp5         [V10,T09] (  4,  7   )     int  ->  r15         "dup spill"
+;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
+;  V13 tmp8         [V13,T07] (  4, 10.50)     ref  ->  [rbp-0x30]  class-hnd "Inline stloc first use temp" <System.Array>
+;  V14 tmp9         [V14,T00] (  7, 52   )     ref  ->  r12         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V15 tmp10        [V15,T06] (  4, 12   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V16 tmp11        [V16,T03] (  5, 14   )     int  ->  rax         "Inline stloc first use temp"
+;  V17 cse0         [V17,T14] (  3,  3   )    long  ->  rax         "CSE #01: moderate"
+;  V18 cse1         [V18,T04] (  5, 14   )     int  ->  r13         "CSE #02: moderate"
+;  V19 cse2         [V19,T08] (  2,  8   )     int  ->  rcx         "CSE #03: moderate"
+;  V20 rat0         [V20,T12] (  2,  4   )    long  ->  rax         "TLS field access"
+;  V21 rat1         [V21,T13] (  2,  4   )    long  ->  rax         "TLS access"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M10734_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 24
-       vzeroupper 
-       lea      rbp, [rsp+0x40]
-						;; size=22 bbWeight=1 PerfScore 7.75
+       push     rax
+       lea      rbp, [rsp+0x30]
+						;; size=16 bbWeight=1 PerfScore 7.50
 G_M10734_IG02:
        mov      rbx, gword ptr [rdi+0x08]
-       mov      gword ptr [rbp-0x30], rbx
+       mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
-						;; size=18 bbWeight=1 PerfScore 3.25
+       call     rax
+       add      rax, 76
+       mov      r15d, dword ptr [rax+0x10]
+       lea      ecx, [r15-0x01]
+       mov      dword ptr [rax+0x10], ecx
+       movzx    rax, r15w
+       test     eax, eax
+       je       SHORT G_M10734_IG04
+						;; size=49 bbWeight=1 PerfScore 10.75
 G_M10734_IG03:
-       call     rax ; Interop+Sys:SchedGetCpu():int
-       mov      ebx, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       jne      G_M10734_IG15
-						;; size=23 bbWeight=1 PerfScore 7.50
+       sar      r15d, 16
+       jmp      SHORT G_M10734_IG05
+						;; size=6 bbWeight=0.50 PerfScore 1.25
 G_M10734_IG04:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       mov      r15d, eax
+						;; size=15 bbWeight=0.50 PerfScore 1.75
+G_M10734_IG05:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
        je       G_M10734_IG16
 						;; size=19 bbWeight=1 PerfScore 4.25
-G_M10734_IG05:
+G_M10734_IG06:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
-       mov      eax, ebx
+       mov      eax, r15d
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
-       mov      ebx, edx
-       xor      r15d, r15d
-       mov      r14, gword ptr [rbp-0x30]
-       mov      r13d, dword ptr [r14+0x08]
+       mov      r15d, edx
+       xor      r14d, r14d
+       mov      r13d, dword ptr [rbx+0x08]
        test     r13d, r13d
-       jle      SHORT G_M10734_IG11
-						;; size=34 bbWeight=1 PerfScore 30.50
-G_M10734_IG06:
-       cmp      ebx, r13d
+       jle      SHORT G_M10734_IG12
+						;; size=32 bbWeight=1 PerfScore 29.50
+G_M10734_IG07:
+       cmp      r15d, r13d
        jae      G_M10734_IG17
-       mov      edi, ebx
-       mov      r12, gword ptr [r14+8*rdi+0x10]
+       mov      edi, r15d
+       mov      r12, gword ptr [rbx+8*rdi+0x10]
        cmp      byte  ptr [r12], r12b
        xor      rax, rax
-       mov      gword ptr [rbp-0x38], rax
+       mov      gword ptr [rbp-0x30], rax
        mov      rdi, r12
        call     System.Threading.Monitor:Enter(System.Object)
        mov      rdi, gword ptr [r12+0x08]
        mov      eax, dword ptr [r12+0x10]
        dec      eax
        mov      ecx, dword ptr [rdi+0x08]
        cmp      ecx, eax
-       jbe      SHORT G_M10734_IG08
-						;; size=53 bbWeight=4 PerfScore 66.00
-G_M10734_IG07:
+       jbe      SHORT G_M10734_IG09
+						;; size=54 bbWeight=4 PerfScore 66.00
+G_M10734_IG08:
        mov      ecx, eax
        mov      rcx, gword ptr [rdi+8*rcx+0x10]
-       mov      gword ptr [rbp-0x38], rcx
+       mov      gword ptr [rbp-0x30], rcx
        mov      edx, eax
        xor      rsi, rsi
        mov      gword ptr [rdi+8*rdx+0x10], rsi
        mov      dword ptr [r12+0x10], eax
 						;; size=25 bbWeight=2 PerfScore 11.50
-G_M10734_IG08:
+G_M10734_IG09:
        mov      rdi, r12
        call     System.Threading.Monitor:Exit(System.Object)
-       mov      r12, gword ptr [rbp-0x38]
+       mov      r12, gword ptr [rbp-0x30]
        test     r12, r12
-       jne      SHORT G_M10734_IG13
-       inc      ebx
-       cmp      r13d, ebx
-       jne      SHORT G_M10734_IG10
-						;; size=24 bbWeight=4 PerfScore 20.00
-G_M10734_IG09:
-       xor      ebx, ebx
-						;; size=2 bbWeight=2 PerfScore 0.50
-G_M10734_IG10:
+       jne      SHORT G_M10734_IG14
        inc      r15d
        cmp      r13d, r15d
-       jg       SHORT G_M10734_IG06
-						;; size=8 bbWeight=4 PerfScore 6.00
+       jne      SHORT G_M10734_IG11
+						;; size=25 bbWeight=4 PerfScore 20.00
+G_M10734_IG10:
+       xor      r15d, r15d
+						;; size=3 bbWeight=2 PerfScore 0.50
 G_M10734_IG11:
+       inc      r14d
+       cmp      r13d, r14d
+       jg       SHORT G_M10734_IG07
+						;; size=8 bbWeight=4 PerfScore 6.00
+G_M10734_IG12:
        xor      rax, rax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M10734_IG12:
-       add      rsp, 24
+G_M10734_IG13:
+       add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M10734_IG13:
+G_M10734_IG14:
        mov      rax, r12
 						;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M10734_IG14:
-       add      rsp, 24
+G_M10734_IG15:
+       add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M10734_IG15:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M10734_IG04
-						;; size=10 bbWeight=0 PerfScore 0.00
 G_M10734_IG16:
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
-       jmp      G_M10734_IG05
+       jmp      G_M10734_IG06
 						;; size=20 bbWeight=0 PerfScore 0.00
 G_M10734_IG17:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 299, prolog size 22, PerfScore 161.75, instruction count 89, allocated bytes for code 299 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
+; Total bytes of code 313, prolog size 16, PerfScore 163.50, instruction count 93, allocated bytes for code 313 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
13 (1.47 % of base) - System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this
 ; Assembly listing for method System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  8,  5.50)     ref  ->  [rbp-0x58]  this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
-;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  [rbp-0x60]  class-hnd single-def <System.__Canon[]>
+;  V00 this         [V00,T09] (  8,  5.50)     ref  ->  r15         this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
+;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  rbx         class-hnd single-def <System.__Canon[]>
 ;  V02 arg2         [V02,T12] (  3,  2.50)   ubyte  ->  r14         single-def
 ;  V03 loc0         [V03,T10] (  8,  5   )     int  ->  r12        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T20] (  4,  2.50)   ubyte  ->  [rbp-0x34] 
-;  V06 loc3         [V06,T22] (  3,  2   )   ubyte  ->  [rbp-0x38] 
-;  V07 loc4         [V07,T17] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T18] (  3,  3   )     ref  ->  [rbp-0x68]  class-hnd spill-single-def <System.Array>
+;  V05 loc2         [V05,T21] (  4,  2.50)   ubyte  ->  [rbp-0x34] 
+;  V06 loc3         [V06,T23] (  3,  2   )   ubyte  ->  [rbp-0x38] 
+;  V07 loc4         [V07,T18] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T19] (  3,  3   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <System.Array>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T16] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V11 tmp2         [V11,T14] (  5,  4   )     ref  ->  [rbp-0x70] 
-;  V12 tmp3         [V12,T24] (  2,  2   )     int  ->  [rbp-0x3C]  spill-single-def "impAppendStmt"
-;  V13 tmp4         [V13,T25] (  2,  2   )     int  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
-;  V14 tmp5         [V14,T26] (  2,  2   )     int  ->  rbx         "impAppendStmt"
-;  V15 tmp6         [V15,T27] (  2,  2   )     int  ->  r13         "impAppendStmt"
+;  V10 tmp1         [V10,T17] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V11 tmp2         [V11,T14] (  5,  4   )     ref  ->  [rbp-0x68] 
+;  V12 tmp3         [V12,T25] (  2,  2   )     int  ->  [rbp-0x3C]  spill-single-def "impAppendStmt"
+;  V13 tmp4         [V13,T26] (  2,  2   )     int  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
+;  V14 tmp5         [V14,T27] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V15 tmp6         [V15,T28] (  2,  2   )     int  ->  r13         "impAppendStmt"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
-;  V19 tmp10        [V19,T33] (  2,  1   )     int  ->  rcx        
+;  V19 tmp10        [V19,T37] (  2,  1   )     int  ->  rcx        
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
-;  V24 tmp15        [V24,T30] (  3,  1.50)     int  ->   r8        
+;  V24 tmp15        [V24,T32] (  3,  1.50)     int  ->   r8        
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;  V35 tmp26        [V35,T31] (  3,  1.50)     int  ->   r9        
+;  V35 tmp26        [V35,T33] (  3,  1.50)     int  ->   r9        
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V37 tmp28        [V37,T15] (  4,  4   )   byref  ->  r14         single-def "dup spill"
 ;* V38 tmp29        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V39 tmp30        [V39,T23] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V40 tmp31        [V40,T21] (  4,  2   )     ref  ->  rax        
-;  V41 tmp32        [V41,T36] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V39 tmp30        [V39,T24] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V40 tmp31        [V40,T22] (  4,  2   )     ref  ->  rax        
+;  V41 tmp32        [V41,T40] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp36        [V45,T32] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
-;  V46 tmp37        [V46,T11] (  3,  5   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
-;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  rbx         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  r15         "Inline stloc first use temp"
-;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rbx         "dup spill"
+;  V45 tmp36        [V45,T34] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
+;  V46 tmp37        [V46,T11] (  3,  5   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  [rbp-0x44]  "Inline stloc first use temp"
+;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  [rbp-0x48]  "Inline stloc first use temp"
+;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rax         "dup spill"
 ;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V51 tmp42        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V52 tmp43        [V52,T07] (  3, 10   )   ubyte  ->  [rbp-0x44]  "Inline stloc first use temp"
-;  V53 tmp44        [V53,T00] (  8, 56   )     ref  ->  [rbp-0x80]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V54 tmp45        [V54,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V55 tmp46        [V55,T03] (  5, 14   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
-;  V56 tmp47        [V56,T28] (  2,  2   )     int  ->   r8         "Inlining Arg"
-;* V57 tmp48        [V57,T34] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
-;* V58 tmp49        [V58,T35] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
-;  V59 tmp50        [V59,T19] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V60 tmp51        [V60,T37] (  2,  0   )     ref  ->  r14         single-def "argument with side effect"
-;  V61 tmp52        [V61,T38] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V62 cse0         [V62,T04] (  5, 13   )     int  ->  [rbp-0x4C]  spill-single-def "CSE #04: aggressive"
-;  V63 cse1         [V63,T13] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
-;  V64 rat0         [V64,T29] (  2,  2   )     int  ->  rbx         "Spilling to split statement for tree"
+;  V51 tmp42        [V51,T35] (  3,  1.50)     int  ->  [rbp-0x4C]  "Inline return value spill temp"
+;  V52 tmp43        [V52,T16] (  4,  4   )     int  ->  rcx         "dup spill"
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V54 tmp45        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V55 tmp46        [V55,T07] (  3, 10   )   ubyte  ->  [rbp-0x50]  "Inline stloc first use temp"
+;  V56 tmp47        [V56,T00] (  8, 56   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V57 tmp48        [V57,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V58 tmp49        [V58,T03] (  5, 14   )     int  ->  [rbp-0x54]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp50        [V59,T29] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;* V60 tmp51        [V60,T38] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
+;* V61 tmp52        [V61,T39] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
+;  V62 tmp53        [V62,T20] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V63 tmp54        [V63,T41] (  2,  0   )     ref  ->  r14         single-def "argument with side effect"
+;  V64 tmp55        [V64,T42] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V65 cse0         [V65,T36] (  3,  1.50)    long  ->  rax         "CSE #04: moderate"
+;  V66 cse1         [V66,T04] (  5, 13   )     int  ->  [rbp-0x58]  spill-single-def "CSE #05: aggressive"
+;  V67 cse2         [V67,T13] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
+;  V68 rat0         [V68,T30] (  2,  2   )    long  ->  rax         "TLS field access"
+;  V69 rat1         [V69,T31] (  2,  2   )    long  ->  rax         "TLS access"
 ;
 ; Lcl frame size = 88
 
 G_M26159_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
-       vzeroupper 
        lea      rbp, [rsp+0x80]
        mov      qword ptr [rbp-0x30], rdi
        mov      r15, rdi
        mov      rbx, rsi
        mov      r14d, edx
-						;; size=38 bbWeight=1 PerfScore 9.50
+						;; size=35 bbWeight=1 PerfScore 8.50
 G_M26159_IG02:
        test     rbx, rbx
-       je       G_M26159_IG33
+       je       G_M26159_IG32
        mov      r13d, dword ptr [rbx+0x08]
        lea      edi, [r13-0x01]
        or       edi, 15
        xor      r12d, r12d
        lzcnt    r12d, edi
        xor      r12d, 31
        add      r12d, -3
        mov      rdi, qword ptr [r15]
        call     CORINFO_HELP_GET_GCTHREADSTATIC_BASE
        mov      rax, gword ptr [rax+0x10]
        test     rax, rax
        jne      SHORT G_M26159_IG04
 						;; size=53 bbWeight=1 PerfScore 13.00
 G_M26159_IG03:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.__Canon]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
        call     [rax]System.Buffers.SharedArrayPool`1[System.__Canon]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
 						;; size=15 bbWeight=0.50 PerfScore 1.75
 G_M26159_IG04:
        xor      ecx, ecx
        mov      dword ptr [rbp-0x38], 1
-       mov      gword ptr [rbp-0x70], rax
+       mov      gword ptr [rbp-0x68], rax
        cmp      dword ptr [rax+0x08], r12d
        jbe      G_M26159_IG24
 						;; size=23 bbWeight=1 PerfScore 6.25
 G_M26159_IG05:
        mov      dword ptr [rbp-0x34], 1
        test     r14b, r14b
        je       SHORT G_M26159_IG06
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; code for System.Array:Clear(System.Array)
        call     [rsi]System.Array:Clear(System.Array)
 						;; size=27 bbWeight=0.50 PerfScore 2.88
 G_M26159_IG06:
        mov      edi, 16
        shlx     edi, edi, r12d
        cmp      r13d, edi
-       jne      G_M26159_IG32
+       jne      G_M26159_IG31
        mov      edi, r12d
        shl      rdi, 4
-       mov      rax, gword ptr [rbp-0x70]
+       mov      rax, gword ptr [rbp-0x68]
        lea      r14, bword ptr [rax+rdi+0x10]
        mov      rax, gword ptr [r14]
-       mov      gword ptr [rbp-0x68], rax
-       mov      gword ptr [rbp-0x60], rbx
+       mov      gword ptr [rbp-0x60], rax
        mov      rdi, r14
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        xor      edi, edi
        mov      dword ptr [r14+0x08], edi
-       cmp      gword ptr [rbp-0x68], 0
-       mov      rbx, gword ptr [rbp-0x60]
-       je       SHORT G_M26159_IG10
+       mov      r14, gword ptr [rbp-0x60]
+       test     r14, r14
+       je       SHORT G_M26159_IG08
        mov      rdi, gword ptr [r15+0x10]
        cmp      r12d, dword ptr [rdi+0x08]
-       jae      G_M26159_IG34
+       jae      G_M26159_IG33
        mov      esi, r12d
        mov      rax, gword ptr [rdi+8*rsi+0x10]
        test     rax, rax
-       jne      SHORT G_M26159_IG09
-       mov      gword ptr [rbp-0x58], r15
+       jne      SHORT G_M26159_IG07
        mov      rdi, r15
        mov      esi, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.__Canon]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
        call     [rax]System.Buffers.SharedArrayPool`1[System.__Canon]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
-       mov      gword ptr [rbp-0x60], rbx
-						;; size=127 bbWeight=0.50 PerfScore 15.38
+						;; size=113 bbWeight=0.50 PerfScore 13.00
 G_M26159_IG07:
        mov      rax, gword ptr [rax+0x08]
-       mov      gword ptr [rbp-0x78], rax
+       mov      gword ptr [rbp-0x70], rax
+       mov      rdi, 0xD1FFAB1E
        mov      rcx, 0xD1FFAB1E      ; function address
-						;; size=18 bbWeight=0.50 PerfScore 1.62
+       call     rcx
+       add      rax, 76
+       mov      ecx, dword ptr [rax+0x10]
+       lea      edx, [rcx-0x01]
+       mov      dword ptr [rax+0x10], edx
+       movzx    rax, cx
+       test     eax, eax
+       jne      SHORT G_M26159_IG09
+       jmp      SHORT G_M26159_IG10
+						;; size=52 bbWeight=0.50 PerfScore 6.88
 G_M26159_IG08:
-       call     rcx ; Interop+Sys:SchedGetCpu():int
-       mov      ebx, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       je       SHORT G_M26159_IG11
-       jmp      G_M26159_IG30
-						;; size=24 bbWeight=0.50 PerfScore 4.75
-G_M26159_IG09:
-       mov      gword ptr [rbp-0x60], rbx
-       mov      gword ptr [rbp-0x58], r15
-       jmp      SHORT G_M26159_IG07
-						;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M26159_IG10:
        mov      ecx, dword ptr [rbp-0x34]
        jmp      G_M26159_IG24
 						;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M26159_IG09:
+       mov      eax, ecx
+       sar      eax, 16
+       mov      edx, eax
+       jmp      SHORT G_M26159_IG11
+						;; size=9 bbWeight=0.50 PerfScore 1.50
+G_M26159_IG10:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       mov      edx, eax
+						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M26159_IG11:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M26159_IG31
+       je       G_M26159_IG30
 						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M26159_IG12:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
-       mov      eax, ebx
+       mov      eax, edx
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
-       mov      ebx, edx
-       xor      r15d, r15d
-       mov      r14, gword ptr [rbp-0x78]
-       mov      eax, dword ptr [r14+0x08]
-       mov      dword ptr [rbp-0x4C], eax
-       test     eax, eax
+       mov      eax, edx
+       xor      ecx, ecx
+       mov      dword ptr [rbp-0x48], ecx
+       mov      rdx, gword ptr [rbp-0x70]
+       mov      esi, dword ptr [rdx+0x08]
+       mov      dword ptr [rbp-0x58], esi
+       test     esi, esi
        jle      G_M26159_IG21
-						;; size=40 bbWeight=0.50 PerfScore 15.75
+						;; size=41 bbWeight=0.50 PerfScore 16.25
 G_M26159_IG13:
-       cmp      ebx, eax
-       jae      G_M26159_IG34
-       mov      edi, ebx
-       mov      rcx, gword ptr [r14+8*rdi+0x10]
-       mov      gword ptr [rbp-0x80], rcx
-       cmp      byte  ptr [rcx], cl
-       xor      edx, edx
-       mov      dword ptr [rbp-0x44], edx
-       mov      rdi, rcx
+       cmp      eax, esi
+       jae      G_M26159_IG33
+       mov      dword ptr [rbp-0x44], eax
+       mov      edi, eax
+       mov      r8, gword ptr [rdx+8*rdi+0x10]
+       mov      gword ptr [rbp-0x78], r8
+       cmp      byte  ptr [r8], r8b
+       xor      r9d, r9d
+       mov      dword ptr [rbp-0x50], r9d
+       mov      rdi, r8
        call     System.Threading.Monitor:Enter(System.Object)
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x78]
        mov      rdi, gword ptr [rax+0x08]
        mov      ecx, dword ptr [rax+0x10]
-       mov      dword ptr [rbp-0x48], ecx
+       mov      dword ptr [rbp-0x54], ecx
        cmp      dword ptr [rdi+0x08], ecx
        jbe      SHORT G_M26159_IG16
-						;; size=53 bbWeight=4 PerfScore 80.00
+						;; size=59 bbWeight=4 PerfScore 84.00
 G_M26159_IG14:
        test     ecx, ecx
        jne      SHORT G_M26159_IG17
        xor      esi, esi
        mov      dword ptr [rax+0x14], esi
 						;; size=9 bbWeight=2 PerfScore 5.00
 G_M26159_IG15:
        movsxd   rsi, ecx
        lea      rdi, bword ptr [rdi+8*rsi+0x10]
-       mov      rsi, gword ptr [rbp-0x68]
+       mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
-       mov      edi, dword ptr [rbp-0x48]
+       mov      edi, dword ptr [rbp-0x54]
        inc      edi
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x78]
        mov      dword ptr [rax+0x10], edi
-       mov      dword ptr [rbp-0x44], 1
-						;; size=36 bbWeight=2 PerfScore 15.00
+       mov      dword ptr [rbp-0x50], 1
+						;; size=35 bbWeight=2 PerfScore 13.50
 G_M26159_IG16:
        mov      rdi, rax
        call     System.Threading.Monitor:Exit(System.Object)
-       cmp      dword ptr [rbp-0x44], 0
+       cmp      dword ptr [rbp-0x50], 0
        je       SHORT G_M26159_IG18
        jmp      SHORT G_M26159_IG22
 						;; size=16 bbWeight=4 PerfScore 25.00
 G_M26159_IG17:
        jmp      SHORT G_M26159_IG15
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M26159_IG18:
-       inc      ebx
-       mov      edi, dword ptr [rbp-0x4C]
-       cmp      edi, ebx
+       mov      eax, dword ptr [rbp-0x44]
+       inc      eax
+       mov      edi, eax
+       mov      esi, dword ptr [rbp-0x58]
+       cmp      esi, edi
        jne      SHORT G_M26159_IG20
-						;; size=9 bbWeight=4 PerfScore 10.00
+						;; size=14 bbWeight=4 PerfScore 15.00
 G_M26159_IG19:
-       xor      ebx, ebx
+       xor      edi, edi
 						;; size=2 bbWeight=2 PerfScore 0.50
 G_M26159_IG20:
-       inc      r15d
-       cmp      edi, r15d
+       mov      ecx, dword ptr [rbp-0x48]
+       inc      ecx
+       cmp      esi, ecx
+       mov      dword ptr [rbp-0x48], ecx
        mov      eax, edi
+       mov      rdx, gword ptr [rbp-0x70]
        jg       G_M26159_IG13
-						;; size=14 bbWeight=4 PerfScore 7.00
+						;; size=22 bbWeight=4 PerfScore 19.00
 G_M26159_IG21:
        xor      edx, edx
        jmp      SHORT G_M26159_IG23
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M26159_IG22:
        mov      edx, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M26159_IG23:
        mov      dword ptr [rbp-0x38], edx
        mov      ecx, dword ptr [rbp-0x34]
-       mov      rbx, gword ptr [rbp-0x60]
-       mov      r15, gword ptr [rbp-0x58]
-						;; size=14 bbWeight=0.50 PerfScore 2.00
+						;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M26159_IG24:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       G_M26159_IG28
 						;; size=27 bbWeight=1 PerfScore 6.25
 G_M26159_IG25:
        test     r13d, r13d
        mov      dword ptr [rbp-0x34], ecx
        je       G_M26159_IG28
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      dword ptr [rbp-0x3C], eax
        mov      dword ptr [rbp-0x40], r13d
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r8d, eax
        mov      rdi, r14
        mov      edx, dword ptr [rbp-0x3C]
        mov      ecx, dword ptr [rbp-0x40]
        mov      esi, 3
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        mov      eax, dword ptr [rbp-0x34]
        test     eax, dword ptr [rbp-0x38]
        jne      SHORT G_M26159_IG28
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ebx, eax
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        cmp      dword ptr [rbp-0x34], 0
        je       SHORT G_M26159_IG26
        mov      r8d, r12d
        xor      r9d, r9d
        jmp      SHORT G_M26159_IG27
 						;; size=106 bbWeight=0.50 PerfScore 12.62
 G_M26159_IG26:
        mov      r8d, -1
        mov      r9d, 1
 						;; size=12 bbWeight=0.50 PerfScore 0.25
 G_M26159_IG27:
        mov      rdi, r14
        mov      esi, ebx
        mov      edx, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M26159_IG28:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M26159_IG29:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M26159_IG30:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M26159_IG11
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M26159_IG31:
+       mov      dword ptr [rbp-0x4C], edx
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
+       mov      edx, dword ptr [rbp-0x4C]
        jmp      G_M26159_IG12
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M26159_IG32:
+						;; size=26 bbWeight=0 PerfScore 0.00
+G_M26159_IG31:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_ArgumentException_BufferNotFromPool():System.String
        call     [rax]System.SR:get_ArgumentException_BufferNotFromPool():System.String
        mov      r14, rax
        mov      edi, 987
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r14
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
-G_M26159_IG33:
+G_M26159_IG32:
        mov      edi, 2
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M26159_IG34:
+G_M26159_IG33:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 884, prolog size 38, PerfScore 248.12, instruction count 230, allocated bytes for code 884 (MethodHash=d01d99d0) for method System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this (FullOpts)
+; Total bytes of code 897, prolog size 35, PerfScore 266.50, instruction count 239, allocated bytes for code 897 (MethodHash=d01d99d0) for method System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this (FullOpts)
10 (1.07 % of base) - System.Buffers.SharedArrayPool`1[double]:Return(double[],ubyte):this
 ; Assembly listing for method System.Buffers.SharedArrayPool`1[double]:Return(double[],ubyte):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  8,  5   )     ref  ->  [rbp-0x50]  this class-hnd single-def <System.Buffers.SharedArrayPool`1[double]>
-;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  [rbp-0x58]  class-hnd single-def <double[]>
+;  V00 this         [V00,T09] (  8,  5   )     ref  ->  r15         this class-hnd single-def <System.Buffers.SharedArrayPool`1[double]>
+;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  rbx         class-hnd single-def <double[]>
 ;  V02 arg2         [V02,T14] (  3,  2.50)   ubyte  ->  r14         single-def
 ;  V03 loc0         [V03,T12] (  8,  5   )     int  ->  r12        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T23] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
-;  V06 loc3         [V06,T25] (  3,  2   )   ubyte  ->  [rbp-0x30] 
-;  V07 loc4         [V07,T20] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T21] (  3,  3   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <System.Array>
+;  V05 loc2         [V05,T24] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
+;  V06 loc3         [V06,T26] (  3,  2   )   ubyte  ->  [rbp-0x30] 
+;  V07 loc4         [V07,T21] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T22] (  3,  3   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <System.Array>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T19] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V11 tmp2         [V11,T16] (  5,  4   )     ref  ->  [rbp-0x68] 
-;  V12 tmp3         [V12,T27] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
-;  V13 tmp4         [V13,T28] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
-;  V14 tmp5         [V14,T29] (  2,  2   )     int  ->  rbx         "impAppendStmt"
-;  V15 tmp6         [V15,T30] (  2,  2   )     int  ->  r13         "impAppendStmt"
+;  V10 tmp1         [V10,T20] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V11 tmp2         [V11,T16] (  5,  4   )     ref  ->  [rbp-0x60] 
+;  V12 tmp3         [V12,T28] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
+;  V13 tmp4         [V13,T29] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
+;  V14 tmp5         [V14,T30] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V15 tmp6         [V15,T31] (  2,  2   )     int  ->  r13         "impAppendStmt"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
-;  V19 tmp10        [V19,T36] (  2,  1   )     int  ->  rcx        
+;  V19 tmp10        [V19,T40] (  2,  1   )     int  ->  rcx        
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
-;  V24 tmp15        [V24,T33] (  3,  1.50)     int  ->   r8        
+;  V24 tmp15        [V24,T35] (  3,  1.50)     int  ->   r8        
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;  V35 tmp26        [V35,T34] (  3,  1.50)     int  ->   r9        
+;  V35 tmp26        [V35,T36] (  3,  1.50)     int  ->   r9        
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V37 tmp28        [V37,T17] (  4,  4   )   byref  ->  r14         single-def "dup spill"
 ;* V38 tmp29        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V39 tmp30        [V39,T26] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V40 tmp31        [V40,T24] (  4,  2   )     ref  ->  rax        
-;  V41 tmp32        [V41,T39] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V39 tmp30        [V39,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V40 tmp31        [V40,T25] (  4,  2   )     ref  ->  rax        
+;  V41 tmp32        [V41,T43] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp36        [V45,T35] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
-;  V46 tmp37        [V46,T13] (  3,  5   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
-;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  rbx         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  r15         "Inline stloc first use temp"
-;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rbx         "dup spill"
+;  V45 tmp36        [V45,T37] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
+;  V46 tmp37        [V46,T13] (  3,  5   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  [rbp-0x3C]  "Inline stloc first use temp"
+;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  [rbp-0x40]  "Inline stloc first use temp"
+;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rax         "dup spill"
 ;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V51 tmp42        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V52 tmp43        [V52,T07] (  3, 10   )   ubyte  ->  [rbp-0x3C]  "Inline stloc first use temp"
-;  V53 tmp44        [V53,T00] (  8, 56   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V54 tmp45        [V54,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V55 tmp46        [V55,T03] (  5, 14   )     int  ->  [rbp-0x40]  spill-single-def "Inline stloc first use temp"
-;  V56 tmp47        [V56,T31] (  2,  2   )     int  ->   r8         "Inlining Arg"
-;* V57 tmp48        [V57,T37] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
-;* V58 tmp49        [V58,T38] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
-;  V59 tmp50        [V59,T22] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V60 tmp51        [V60,T40] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
-;  V61 tmp52        [V61,T41] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V62 cse0         [V62,T04] (  5, 13   )     int  ->  [rbp-0x44]  spill-single-def "CSE #04: aggressive"
-;  V63 cse1         [V63,T15] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
-;  V64 rat0         [V64,T32] (  2,  2   )     int  ->  rbx         "Spilling to split statement for tree"
-;  V65 rat1         [V65,T18] (  3,  4   )   byref  ->  rax         "TLS field access"
-;  V66 rat2         [V66,T11] (  3,  6   )    long  ->  rax         "TLS access"
-;  V67 rat3         [V67,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V51 tmp42        [V51,T38] (  3,  1.50)     int  ->  [rbp-0x44]  "Inline return value spill temp"
+;  V52 tmp43        [V52,T18] (  4,  4   )     int  ->  rcx         "dup spill"
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V54 tmp45        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V55 tmp46        [V55,T07] (  3, 10   )   ubyte  ->  [rbp-0x48]  "Inline stloc first use temp"
+;  V56 tmp47        [V56,T00] (  8, 56   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V57 tmp48        [V57,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V58 tmp49        [V58,T03] (  5, 14   )     int  ->  [rbp-0x4C]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp50        [V59,T32] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;* V60 tmp51        [V60,T41] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
+;* V61 tmp52        [V61,T42] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
+;  V62 tmp53        [V62,T23] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V63 tmp54        [V63,T44] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
+;  V64 tmp55        [V64,T45] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V65 cse0         [V65,T39] (  3,  1.50)    long  ->  rax         "CSE #04: moderate"
+;  V66 cse1         [V66,T04] (  5, 13   )     int  ->  [rbp-0x50]  spill-single-def "CSE #05: aggressive"
+;  V67 cse2         [V67,T15] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
+;  V68 rat0         [V68,T19] (  3,  4   )   byref  ->  rax         "TLS field access"
+;  V69 rat1         [V69,T11] (  3,  6   )    long  ->  rax         "TLS access"
+;  V70 rat2         [V70,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V71 rat3         [V71,T33] (  2,  2   )    long  ->  rax         "TLS field access"
+;  V72 rat4         [V72,T34] (  2,  2   )    long  ->  rax         "TLS access"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M46671_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 88
-       vzeroupper 
-       lea      rbp, [rsp+0x80]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        mov      r15, rdi
        mov      rbx, rsi
        mov      r14d, edx
-						;; size=34 bbWeight=1 PerfScore 8.50
+						;; size=28 bbWeight=1 PerfScore 7.50
 G_M46671_IG02:
        test     rbx, rbx
-       je       G_M46671_IG35
+       je       G_M46671_IG34
        mov      r13d, dword ptr [rbx+0x08]
        lea      edi, [r13-0x01]
        or       edi, 15
        xor      r12d, r12d
        lzcnt    r12d, edi
        xor      r12d, 31
        add      r12d, -3
        mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
        call     rax
        cmp      dword ptr [rax], 14
        jle      G_M46671_IG31
        mov      rdi, gword ptr [rax+0x08]
        mov      rax, bword ptr [rdi+0x70]
        test     rax, rax
        je       G_M46671_IG31
 						;; size=84 bbWeight=1 PerfScore 19.50
 G_M46671_IG03:
        mov      rax, gword ptr [rax+0x10]
        test     rax, rax
        jne      SHORT G_M46671_IG05
 						;; size=9 bbWeight=1 PerfScore 3.25
 G_M46671_IG04:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[double]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
        call     [rax]System.Buffers.SharedArrayPool`1[double]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
 						;; size=15 bbWeight=0.50 PerfScore 1.75
 G_M46671_IG05:
        xor      ecx, ecx
        mov      dword ptr [rbp-0x30], 1
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x60], rax
        cmp      dword ptr [rax+0x08], r12d
        jbe      G_M46671_IG25
 						;; size=23 bbWeight=1 PerfScore 6.25
 G_M46671_IG06:
        mov      dword ptr [rbp-0x2C], 1
        test     r14b, r14b
        je       SHORT G_M46671_IG07
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; code for System.Array:Clear(System.Array)
        call     [rsi]System.Array:Clear(System.Array)
 						;; size=27 bbWeight=0.50 PerfScore 2.88
 G_M46671_IG07:
        mov      edi, 16
        shlx     edi, edi, r12d
        cmp      r13d, edi
-       jne      G_M46671_IG34
+       jne      G_M46671_IG33
        mov      edi, r12d
        shl      rdi, 4
-       mov      rax, gword ptr [rbp-0x68]
+       mov      rax, gword ptr [rbp-0x60]
        lea      r14, bword ptr [rax+rdi+0x10]
        mov      rax, gword ptr [r14]
-       mov      gword ptr [rbp-0x60], rax
-       mov      gword ptr [rbp-0x58], rbx
+       mov      gword ptr [rbp-0x58], rax
        mov      rdi, r14
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        xor      edi, edi
        mov      dword ptr [r14+0x08], edi
-       cmp      gword ptr [rbp-0x60], 0
-       mov      rbx, gword ptr [rbp-0x58]
-       je       SHORT G_M46671_IG11
+       mov      r14, gword ptr [rbp-0x58]
+       test     r14, r14
+       je       SHORT G_M46671_IG09
        mov      rdi, gword ptr [r15+0x10]
        cmp      r12d, dword ptr [rdi+0x08]
-       jae      G_M46671_IG36
+       jae      G_M46671_IG35
        mov      esi, r12d
        mov      rax, gword ptr [rdi+8*rsi+0x10]
        test     rax, rax
-       jne      SHORT G_M46671_IG10
-       mov      gword ptr [rbp-0x50], r15
+       jne      SHORT G_M46671_IG08
        mov      rdi, r15
        mov      esi, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[double]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
        call     [rax]System.Buffers.SharedArrayPool`1[double]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
-       mov      gword ptr [rbp-0x58], rbx
-						;; size=127 bbWeight=0.50 PerfScore 15.38
+						;; size=113 bbWeight=0.50 PerfScore 13.00
 G_M46671_IG08:
        mov      rax, gword ptr [rax+0x08]
-       mov      gword ptr [rbp-0x70], rax
+       mov      gword ptr [rbp-0x68], rax
+       mov      rdi, 0xD1FFAB1E
        mov      rcx, 0xD1FFAB1E      ; function address
-						;; size=18 bbWeight=0.50 PerfScore 1.62
+       call     rcx
+       add      rax, 76
+       mov      ecx, dword ptr [rax+0x10]
+       lea      edx, [rcx-0x01]
+       mov      dword ptr [rax+0x10], edx
+       movzx    rax, cx
+       test     eax, eax
+       jne      SHORT G_M46671_IG10
+       jmp      SHORT G_M46671_IG11
+						;; size=52 bbWeight=0.50 PerfScore 6.88
 G_M46671_IG09:
-       call     rcx ; Interop+Sys:SchedGetCpu():int
-       mov      ebx, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       je       SHORT G_M46671_IG12
-       jmp      G_M46671_IG32
-						;; size=24 bbWeight=0.50 PerfScore 4.75
-G_M46671_IG10:
-       mov      gword ptr [rbp-0x58], rbx
-       mov      gword ptr [rbp-0x50], r15
-       jmp      SHORT G_M46671_IG08
-						;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M46671_IG11:
        mov      ecx, dword ptr [rbp-0x2C]
        jmp      G_M46671_IG25
 						;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M46671_IG10:
+       mov      eax, ecx
+       sar      eax, 16
+       mov      edx, eax
+       jmp      SHORT G_M46671_IG12
+						;; size=9 bbWeight=0.50 PerfScore 1.50
+G_M46671_IG11:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       mov      edx, eax
+						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M46671_IG12:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M46671_IG33
+       je       G_M46671_IG32
 						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M46671_IG13:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
-       mov      eax, ebx
+       mov      eax, edx
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
-       mov      ebx, edx
-       xor      r15d, r15d
-       mov      r14, gword ptr [rbp-0x70]
-       mov      eax, dword ptr [r14+0x08]
-       mov      dword ptr [rbp-0x44], eax
-       test     eax, eax
+       mov      eax, edx
+       xor      ecx, ecx
+       mov      dword ptr [rbp-0x40], ecx
+       mov      rdx, gword ptr [rbp-0x68]
+       mov      esi, dword ptr [rdx+0x08]
+       mov      dword ptr [rbp-0x50], esi
+       test     esi, esi
        jle      G_M46671_IG22
-						;; size=40 bbWeight=0.50 PerfScore 15.75
+						;; size=41 bbWeight=0.50 PerfScore 16.25
 G_M46671_IG14:
-       cmp      ebx, eax
-       jae      G_M46671_IG36
-       mov      edi, ebx
-       mov      rcx, gword ptr [r14+8*rdi+0x10]
-       mov      gword ptr [rbp-0x78], rcx
-       cmp      byte  ptr [rcx], cl
-       xor      edx, edx
-       mov      dword ptr [rbp-0x3C], edx
-       mov      rdi, rcx
+       cmp      eax, esi
+       jae      G_M46671_IG35
+       mov      dword ptr [rbp-0x3C], eax
+       mov      edi, eax
+       mov      r8, gword ptr [rdx+8*rdi+0x10]
+       mov      gword ptr [rbp-0x70], r8
+       cmp      byte  ptr [r8], r8b
+       xor      r9d, r9d
+       mov      dword ptr [rbp-0x48], r9d
+       mov      rdi, r8
        call     System.Threading.Monitor:Enter(System.Object)
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      rdi, gword ptr [rax+0x08]
        mov      ecx, dword ptr [rax+0x10]
-       mov      dword ptr [rbp-0x40], ecx
+       mov      dword ptr [rbp-0x4C], ecx
        cmp      dword ptr [rdi+0x08], ecx
        jbe      SHORT G_M46671_IG17
-						;; size=53 bbWeight=4 PerfScore 80.00
+						;; size=59 bbWeight=4 PerfScore 84.00
 G_M46671_IG15:
        test     ecx, ecx
        jne      SHORT G_M46671_IG18
        xor      esi, esi
        mov      dword ptr [rax+0x14], esi
 						;; size=9 bbWeight=2 PerfScore 5.00
 G_M46671_IG16:
        movsxd   rsi, ecx
        lea      rdi, bword ptr [rdi+8*rsi+0x10]
-       mov      rsi, gword ptr [rbp-0x60]
+       mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
-       mov      edi, dword ptr [rbp-0x40]
+       mov      edi, dword ptr [rbp-0x4C]
        inc      edi
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      dword ptr [rax+0x10], edi
-       mov      dword ptr [rbp-0x3C], 1
-						;; size=36 bbWeight=2 PerfScore 15.00
+       mov      dword ptr [rbp-0x48], 1
+						;; size=35 bbWeight=2 PerfScore 13.50
 G_M46671_IG17:
        mov      rdi, rax
        call     System.Threading.Monitor:Exit(System.Object)
-       cmp      dword ptr [rbp-0x3C], 0
+       cmp      dword ptr [rbp-0x48], 0
        je       SHORT G_M46671_IG19
        jmp      SHORT G_M46671_IG23
 						;; size=16 bbWeight=4 PerfScore 25.00
 G_M46671_IG18:
        jmp      SHORT G_M46671_IG16
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M46671_IG19:
-       inc      ebx
-       mov      edi, dword ptr [rbp-0x44]
-       cmp      edi, ebx
+       mov      eax, dword ptr [rbp-0x3C]
+       inc      eax
+       mov      edi, eax
+       mov      esi, dword ptr [rbp-0x50]
+       cmp      esi, edi
        jne      SHORT G_M46671_IG21
-						;; size=9 bbWeight=4 PerfScore 10.00
+						;; size=14 bbWeight=4 PerfScore 15.00
 G_M46671_IG20:
-       xor      ebx, ebx
+       xor      edi, edi
 						;; size=2 bbWeight=2 PerfScore 0.50
 G_M46671_IG21:
-       inc      r15d
-       cmp      edi, r15d
+       mov      ecx, dword ptr [rbp-0x40]
+       inc      ecx
+       cmp      esi, ecx
+       mov      dword ptr [rbp-0x40], ecx
        mov      eax, edi
+       mov      rdx, gword ptr [rbp-0x68]
        jg       G_M46671_IG14
-						;; size=14 bbWeight=4 PerfScore 7.00
+						;; size=22 bbWeight=4 PerfScore 19.00
 G_M46671_IG22:
        xor      edx, edx
        jmp      SHORT G_M46671_IG24
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M46671_IG23:
        mov      edx, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M46671_IG24:
        mov      dword ptr [rbp-0x30], edx
        mov      ecx, dword ptr [rbp-0x2C]
-       mov      rbx, gword ptr [rbp-0x58]
-       mov      r15, gword ptr [rbp-0x50]
-						;; size=14 bbWeight=0.50 PerfScore 2.00
+						;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M46671_IG25:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       G_M46671_IG29
 						;; size=27 bbWeight=1 PerfScore 6.25
 G_M46671_IG26:
        test     r13d, r13d
        mov      dword ptr [rbp-0x2C], ecx
        je       G_M46671_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      dword ptr [rbp-0x34], eax
        mov      dword ptr [rbp-0x38], r13d
        cmp      byte  ptr [r15], r15b
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r8d, eax
        mov      rdi, r14
        mov      edx, dword ptr [rbp-0x34]
        mov      ecx, dword ptr [rbp-0x38]
        mov      esi, 3
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        mov      eax, dword ptr [rbp-0x2C]
        test     eax, dword ptr [rbp-0x30]
        jne      SHORT G_M46671_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ebx, eax
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        cmp      dword ptr [rbp-0x2C], 0
        je       SHORT G_M46671_IG27
        mov      r8d, r12d
        xor      r9d, r9d
        jmp      SHORT G_M46671_IG28
 						;; size=109 bbWeight=0.50 PerfScore 14.12
 G_M46671_IG27:
        mov      r8d, -1
        mov      r9d, 1
 						;; size=12 bbWeight=0.50 PerfScore 0.25
 G_M46671_IG28:
        mov      rdi, r14
        mov      esi, ebx
        mov      edx, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M46671_IG29:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M46671_IG30:
-       add      rsp, 88
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M46671_IG31:
        mov      edi, 14
        call     CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
        jmp      G_M46671_IG03
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M46671_IG32:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M46671_IG12
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M46671_IG33:
+       mov      dword ptr [rbp-0x44], edx
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
+       mov      edx, dword ptr [rbp-0x44]
        jmp      G_M46671_IG13
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M46671_IG34:
+						;; size=26 bbWeight=0 PerfScore 0.00
+G_M46671_IG33:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_ArgumentException_BufferNotFromPool():System.String
        call     [rax]System.SR:get_ArgumentException_BufferNotFromPool():System.String
        mov      r15, rax
        mov      edi, 987
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
-G_M46671_IG35:
+G_M46671_IG34:
        mov      edi, 2
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M46671_IG36:
+G_M46671_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 938, prolog size 34, PerfScore 258.38, instruction count 240, allocated bytes for code 938 (MethodHash=711b49b0) for method System.Buffers.SharedArrayPool`1[double]:Return(double[],ubyte):this (FullOpts)
+; Total bytes of code 948, prolog size 28, PerfScore 276.75, instruction count 249, allocated bytes for code 948 (MethodHash=711b49b0) for method System.Buffers.SharedArrayPool`1[double]:Return(double[],ubyte):this (FullOpts)
10 (1.06 % of base) - System.Buffers.SharedArrayPool`1[long]:Return(long[],ubyte):this
 ; Assembly listing for method System.Buffers.SharedArrayPool`1[long]:Return(long[],ubyte):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  8,  5   )     ref  ->  [rbp-0x50]  this class-hnd single-def <System.Buffers.SharedArrayPool`1[long]>
-;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  [rbp-0x58]  class-hnd single-def <long[]>
+;  V00 this         [V00,T09] (  8,  5   )     ref  ->  r15         this class-hnd single-def <System.Buffers.SharedArrayPool`1[long]>
+;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  rbx         class-hnd single-def <long[]>
 ;  V02 arg2         [V02,T14] (  3,  2.50)   ubyte  ->  r14         single-def
 ;  V03 loc0         [V03,T12] (  8,  5   )     int  ->  r12        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T23] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
-;  V06 loc3         [V06,T25] (  3,  2   )   ubyte  ->  [rbp-0x30] 
-;  V07 loc4         [V07,T20] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T21] (  3,  3   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <System.Array>
+;  V05 loc2         [V05,T24] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
+;  V06 loc3         [V06,T26] (  3,  2   )   ubyte  ->  [rbp-0x30] 
+;  V07 loc4         [V07,T21] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T22] (  3,  3   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <System.Array>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T19] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V11 tmp2         [V11,T16] (  5,  4   )     ref  ->  [rbp-0x68] 
-;  V12 tmp3         [V12,T27] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
-;  V13 tmp4         [V13,T28] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
-;  V14 tmp5         [V14,T29] (  2,  2   )     int  ->  rbx         "impAppendStmt"
-;  V15 tmp6         [V15,T30] (  2,  2   )     int  ->  r13         "impAppendStmt"
+;  V10 tmp1         [V10,T20] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V11 tmp2         [V11,T16] (  5,  4   )     ref  ->  [rbp-0x60] 
+;  V12 tmp3         [V12,T28] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
+;  V13 tmp4         [V13,T29] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
+;  V14 tmp5         [V14,T30] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V15 tmp6         [V15,T31] (  2,  2   )     int  ->  r13         "impAppendStmt"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
-;  V19 tmp10        [V19,T36] (  2,  1   )     int  ->  rcx        
+;  V19 tmp10        [V19,T40] (  2,  1   )     int  ->  rcx        
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
-;  V24 tmp15        [V24,T33] (  3,  1.50)     int  ->   r8        
+;  V24 tmp15        [V24,T35] (  3,  1.50)     int  ->   r8        
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;  V35 tmp26        [V35,T34] (  3,  1.50)     int  ->   r9        
+;  V35 tmp26        [V35,T36] (  3,  1.50)     int  ->   r9        
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V37 tmp28        [V37,T17] (  4,  4   )   byref  ->  r14         single-def "dup spill"
 ;* V38 tmp29        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V39 tmp30        [V39,T26] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V40 tmp31        [V40,T24] (  4,  2   )     ref  ->  rax        
-;  V41 tmp32        [V41,T39] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V39 tmp30        [V39,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V40 tmp31        [V40,T25] (  4,  2   )     ref  ->  rax        
+;  V41 tmp32        [V41,T43] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp36        [V45,T35] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
-;  V46 tmp37        [V46,T13] (  3,  5   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
-;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  rbx         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  r15         "Inline stloc first use temp"
-;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rbx         "dup spill"
+;  V45 tmp36        [V45,T37] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
+;  V46 tmp37        [V46,T13] (  3,  5   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  [rbp-0x3C]  "Inline stloc first use temp"
+;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  [rbp-0x40]  "Inline stloc first use temp"
+;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rax         "dup spill"
 ;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V51 tmp42        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V52 tmp43        [V52,T07] (  3, 10   )   ubyte  ->  [rbp-0x3C]  "Inline stloc first use temp"
-;  V53 tmp44        [V53,T00] (  8, 56   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V54 tmp45        [V54,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V55 tmp46        [V55,T03] (  5, 14   )     int  ->  [rbp-0x40]  spill-single-def "Inline stloc first use temp"
-;  V56 tmp47        [V56,T31] (  2,  2   )     int  ->   r8         "Inlining Arg"
-;* V57 tmp48        [V57,T37] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
-;* V58 tmp49        [V58,T38] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
-;  V59 tmp50        [V59,T22] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V60 tmp51        [V60,T40] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
-;  V61 tmp52        [V61,T41] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V62 cse0         [V62,T04] (  5, 13   )     int  ->  [rbp-0x44]  spill-single-def "CSE #04: aggressive"
-;  V63 cse1         [V63,T15] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
-;  V64 rat0         [V64,T32] (  2,  2   )     int  ->  rbx         "Spilling to split statement for tree"
-;  V65 rat1         [V65,T18] (  3,  4   )   byref  ->  rax         "TLS field access"
-;  V66 rat2         [V66,T11] (  3,  6   )    long  ->  rax         "TLS access"
-;  V67 rat3         [V67,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V51 tmp42        [V51,T38] (  3,  1.50)     int  ->  [rbp-0x44]  "Inline return value spill temp"
+;  V52 tmp43        [V52,T18] (  4,  4   )     int  ->  rcx         "dup spill"
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V54 tmp45        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V55 tmp46        [V55,T07] (  3, 10   )   ubyte  ->  [rbp-0x48]  "Inline stloc first use temp"
+;  V56 tmp47        [V56,T00] (  8, 56   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V57 tmp48        [V57,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V58 tmp49        [V58,T03] (  5, 14   )     int  ->  [rbp-0x4C]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp50        [V59,T32] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;* V60 tmp51        [V60,T41] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
+;* V61 tmp52        [V61,T42] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
+;  V62 tmp53        [V62,T23] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V63 tmp54        [V63,T44] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
+;  V64 tmp55        [V64,T45] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V65 cse0         [V65,T39] (  3,  1.50)    long  ->  rax         "CSE #04: moderate"
+;  V66 cse1         [V66,T04] (  5, 13   )     int  ->  [rbp-0x50]  spill-single-def "CSE #05: aggressive"
+;  V67 cse2         [V67,T15] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
+;  V68 rat0         [V68,T19] (  3,  4   )   byref  ->  rax         "TLS field access"
+;  V69 rat1         [V69,T11] (  3,  6   )    long  ->  rax         "TLS access"
+;  V70 rat2         [V70,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V71 rat3         [V71,T33] (  2,  2   )    long  ->  rax         "TLS field access"
+;  V72 rat4         [V72,T34] (  2,  2   )    long  ->  rax         "TLS access"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M62767_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 88
-       vzeroupper 
-       lea      rbp, [rsp+0x80]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        mov      r15, rdi
        mov      rbx, rsi
        mov      r14d, edx
-						;; size=34 bbWeight=1 PerfScore 8.50
+						;; size=28 bbWeight=1 PerfScore 7.50
 G_M62767_IG02:
        test     rbx, rbx
-       je       G_M62767_IG35
+       je       G_M62767_IG34
        mov      r13d, dword ptr [rbx+0x08]
        lea      edi, [r13-0x01]
        or       edi, 15
        xor      r12d, r12d
        lzcnt    r12d, edi
        xor      r12d, 31
        add      r12d, -3
        mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
        call     rax
        cmp      dword ptr [rax], 16
        jle      G_M62767_IG31
        mov      rdi, gword ptr [rax+0x08]
        mov      rax, bword ptr [rdi+0x80]
        test     rax, rax
        je       G_M62767_IG31
 						;; size=87 bbWeight=1 PerfScore 19.50
 G_M62767_IG03:
        mov      rax, gword ptr [rax+0x10]
        test     rax, rax
        jne      SHORT G_M62767_IG05
 						;; size=9 bbWeight=1 PerfScore 3.25
 G_M62767_IG04:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[long]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
        call     [rax]System.Buffers.SharedArrayPool`1[long]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
 						;; size=15 bbWeight=0.50 PerfScore 1.75
 G_M62767_IG05:
        xor      ecx, ecx
        mov      dword ptr [rbp-0x30], 1
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x60], rax
        cmp      dword ptr [rax+0x08], r12d
        jbe      G_M62767_IG25
 						;; size=23 bbWeight=1 PerfScore 6.25
 G_M62767_IG06:
        mov      dword ptr [rbp-0x2C], 1
        test     r14b, r14b
        je       SHORT G_M62767_IG07
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; code for System.Array:Clear(System.Array)
        call     [rsi]System.Array:Clear(System.Array)
 						;; size=27 bbWeight=0.50 PerfScore 2.88
 G_M62767_IG07:
        mov      edi, 16
        shlx     edi, edi, r12d
        cmp      r13d, edi
-       jne      G_M62767_IG34
+       jne      G_M62767_IG33
        mov      edi, r12d
        shl      rdi, 4
-       mov      rax, gword ptr [rbp-0x68]
+       mov      rax, gword ptr [rbp-0x60]
        lea      r14, bword ptr [rax+rdi+0x10]
        mov      rax, gword ptr [r14]
-       mov      gword ptr [rbp-0x60], rax
-       mov      gword ptr [rbp-0x58], rbx
+       mov      gword ptr [rbp-0x58], rax
        mov      rdi, r14
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        xor      edi, edi
        mov      dword ptr [r14+0x08], edi
-       cmp      gword ptr [rbp-0x60], 0
-       mov      rbx, gword ptr [rbp-0x58]
-       je       SHORT G_M62767_IG11
+       mov      r14, gword ptr [rbp-0x58]
+       test     r14, r14
+       je       SHORT G_M62767_IG09
        mov      rdi, gword ptr [r15+0x10]
        cmp      r12d, dword ptr [rdi+0x08]
-       jae      G_M62767_IG36
+       jae      G_M62767_IG35
        mov      esi, r12d
        mov      rax, gword ptr [rdi+8*rsi+0x10]
        test     rax, rax
-       jne      SHORT G_M62767_IG10
-       mov      gword ptr [rbp-0x50], r15
+       jne      SHORT G_M62767_IG08
        mov      rdi, r15
        mov      esi, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[long]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
        call     [rax]System.Buffers.SharedArrayPool`1[long]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
-       mov      gword ptr [rbp-0x58], rbx
-						;; size=127 bbWeight=0.50 PerfScore 15.38
+						;; size=113 bbWeight=0.50 PerfScore 13.00
 G_M62767_IG08:
        mov      rax, gword ptr [rax+0x08]
-       mov      gword ptr [rbp-0x70], rax
+       mov      gword ptr [rbp-0x68], rax
+       mov      rdi, 0xD1FFAB1E
        mov      rcx, 0xD1FFAB1E      ; function address
-						;; size=18 bbWeight=0.50 PerfScore 1.62
+       call     rcx
+       add      rax, 76
+       mov      ecx, dword ptr [rax+0x10]
+       lea      edx, [rcx-0x01]
+       mov      dword ptr [rax+0x10], edx
+       movzx    rax, cx
+       test     eax, eax
+       jne      SHORT G_M62767_IG10
+       jmp      SHORT G_M62767_IG11
+						;; size=52 bbWeight=0.50 PerfScore 6.88
 G_M62767_IG09:
-       call     rcx ; Interop+Sys:SchedGetCpu():int
-       mov      ebx, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       je       SHORT G_M62767_IG12
-       jmp      G_M62767_IG32
-						;; size=24 bbWeight=0.50 PerfScore 4.75
-G_M62767_IG10:
-       mov      gword ptr [rbp-0x58], rbx
-       mov      gword ptr [rbp-0x50], r15
-       jmp      SHORT G_M62767_IG08
-						;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M62767_IG11:
        mov      ecx, dword ptr [rbp-0x2C]
        jmp      G_M62767_IG25
 						;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M62767_IG10:
+       mov      eax, ecx
+       sar      eax, 16
+       mov      edx, eax
+       jmp      SHORT G_M62767_IG12
+						;; size=9 bbWeight=0.50 PerfScore 1.50
+G_M62767_IG11:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       mov      edx, eax
+						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M62767_IG12:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M62767_IG33
+       je       G_M62767_IG32
 						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M62767_IG13:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
-       mov      eax, ebx
+       mov      eax, edx
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
-       mov      ebx, edx
-       xor      r15d, r15d
-       mov      r14, gword ptr [rbp-0x70]
-       mov      eax, dword ptr [r14+0x08]
-       mov      dword ptr [rbp-0x44], eax
-       test     eax, eax
+       mov      eax, edx
+       xor      ecx, ecx
+       mov      dword ptr [rbp-0x40], ecx
+       mov      rdx, gword ptr [rbp-0x68]
+       mov      esi, dword ptr [rdx+0x08]
+       mov      dword ptr [rbp-0x50], esi
+       test     esi, esi
        jle      G_M62767_IG22
-						;; size=40 bbWeight=0.50 PerfScore 15.75
+						;; size=41 bbWeight=0.50 PerfScore 16.25
 G_M62767_IG14:
-       cmp      ebx, eax
-       jae      G_M62767_IG36
-       mov      edi, ebx
-       mov      rcx, gword ptr [r14+8*rdi+0x10]
-       mov      gword ptr [rbp-0x78], rcx
-       cmp      byte  ptr [rcx], cl
-       xor      edx, edx
-       mov      dword ptr [rbp-0x3C], edx
-       mov      rdi, rcx
+       cmp      eax, esi
+       jae      G_M62767_IG35
+       mov      dword ptr [rbp-0x3C], eax
+       mov      edi, eax
+       mov      r8, gword ptr [rdx+8*rdi+0x10]
+       mov      gword ptr [rbp-0x70], r8
+       cmp      byte  ptr [r8], r8b
+       xor      r9d, r9d
+       mov      dword ptr [rbp-0x48], r9d
+       mov      rdi, r8
        call     System.Threading.Monitor:Enter(System.Object)
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      rdi, gword ptr [rax+0x08]
        mov      ecx, dword ptr [rax+0x10]
-       mov      dword ptr [rbp-0x40], ecx
+       mov      dword ptr [rbp-0x4C], ecx
        cmp      dword ptr [rdi+0x08], ecx
        jbe      SHORT G_M62767_IG17
-						;; size=53 bbWeight=4 PerfScore 80.00
+						;; size=59 bbWeight=4 PerfScore 84.00
 G_M62767_IG15:
        test     ecx, ecx
        jne      SHORT G_M62767_IG18
        xor      esi, esi
        mov      dword ptr [rax+0x14], esi
 						;; size=9 bbWeight=2 PerfScore 5.00
 G_M62767_IG16:
        movsxd   rsi, ecx
        lea      rdi, bword ptr [rdi+8*rsi+0x10]
-       mov      rsi, gword ptr [rbp-0x60]
+       mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
-       mov      edi, dword ptr [rbp-0x40]
+       mov      edi, dword ptr [rbp-0x4C]
        inc      edi
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      dword ptr [rax+0x10], edi
-       mov      dword ptr [rbp-0x3C], 1
-						;; size=36 bbWeight=2 PerfScore 15.00
+       mov      dword ptr [rbp-0x48], 1
+						;; size=35 bbWeight=2 PerfScore 13.50
 G_M62767_IG17:
        mov      rdi, rax
        call     System.Threading.Monitor:Exit(System.Object)
-       cmp      dword ptr [rbp-0x3C], 0
+       cmp      dword ptr [rbp-0x48], 0
        je       SHORT G_M62767_IG19
        jmp      SHORT G_M62767_IG23
 						;; size=16 bbWeight=4 PerfScore 25.00
 G_M62767_IG18:
        jmp      SHORT G_M62767_IG16
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M62767_IG19:
-       inc      ebx
-       mov      edi, dword ptr [rbp-0x44]
-       cmp      edi, ebx
+       mov      eax, dword ptr [rbp-0x3C]
+       inc      eax
+       mov      edi, eax
+       mov      esi, dword ptr [rbp-0x50]
+       cmp      esi, edi
        jne      SHORT G_M62767_IG21
-						;; size=9 bbWeight=4 PerfScore 10.00
+						;; size=14 bbWeight=4 PerfScore 15.00
 G_M62767_IG20:
-       xor      ebx, ebx
+       xor      edi, edi
 						;; size=2 bbWeight=2 PerfScore 0.50
 G_M62767_IG21:
-       inc      r15d
-       cmp      edi, r15d
+       mov      ecx, dword ptr [rbp-0x40]
+       inc      ecx
+       cmp      esi, ecx
+       mov      dword ptr [rbp-0x40], ecx
        mov      eax, edi
+       mov      rdx, gword ptr [rbp-0x68]
        jg       G_M62767_IG14
-						;; size=14 bbWeight=4 PerfScore 7.00
+						;; size=22 bbWeight=4 PerfScore 19.00
 G_M62767_IG22:
        xor      edx, edx
        jmp      SHORT G_M62767_IG24
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M62767_IG23:
        mov      edx, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M62767_IG24:
        mov      dword ptr [rbp-0x30], edx
        mov      ecx, dword ptr [rbp-0x2C]
-       mov      rbx, gword ptr [rbp-0x58]
-       mov      r15, gword ptr [rbp-0x50]
-						;; size=14 bbWeight=0.50 PerfScore 2.00
+						;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M62767_IG25:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       G_M62767_IG29
 						;; size=27 bbWeight=1 PerfScore 6.25
 G_M62767_IG26:
        test     r13d, r13d
        mov      dword ptr [rbp-0x2C], ecx
        je       G_M62767_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      dword ptr [rbp-0x34], eax
        mov      dword ptr [rbp-0x38], r13d
        cmp      byte  ptr [r15], r15b
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r8d, eax
        mov      rdi, r14
        mov      edx, dword ptr [rbp-0x34]
        mov      ecx, dword ptr [rbp-0x38]
        mov      esi, 3
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        mov      eax, dword ptr [rbp-0x2C]
        test     eax, dword ptr [rbp-0x30]
        jne      SHORT G_M62767_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ebx, eax
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        cmp      dword ptr [rbp-0x2C], 0
        je       SHORT G_M62767_IG27
        mov      r8d, r12d
        xor      r9d, r9d
        jmp      SHORT G_M62767_IG28
 						;; size=109 bbWeight=0.50 PerfScore 14.12
 G_M62767_IG27:
        mov      r8d, -1
        mov      r9d, 1
 						;; size=12 bbWeight=0.50 PerfScore 0.25
 G_M62767_IG28:
        mov      rdi, r14
        mov      esi, ebx
        mov      edx, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M62767_IG29:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M62767_IG30:
-       add      rsp, 88
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M62767_IG31:
        mov      edi, 16
        call     CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
        jmp      G_M62767_IG03
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M62767_IG32:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M62767_IG12
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M62767_IG33:
+       mov      dword ptr [rbp-0x44], edx
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
+       mov      edx, dword ptr [rbp-0x44]
        jmp      G_M62767_IG13
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M62767_IG34:
+						;; size=26 bbWeight=0 PerfScore 0.00
+G_M62767_IG33:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_ArgumentException_BufferNotFromPool():System.String
        call     [rax]System.SR:get_ArgumentException_BufferNotFromPool():System.String
        mov      r15, rax
        mov      edi, 987
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
-G_M62767_IG35:
+G_M62767_IG34:
        mov      edi, 2
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M62767_IG36:
+G_M62767_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 941, prolog size 34, PerfScore 258.38, instruction count 240, allocated bytes for code 941 (MethodHash=2dda0ad0) for method System.Buffers.SharedArrayPool`1[long]:Return(long[],ubyte):this (FullOpts)
+; Total bytes of code 951, prolog size 28, PerfScore 276.75, instruction count 249, allocated bytes for code 951 (MethodHash=2dda0ad0) for method System.Buffers.SharedArrayPool`1[long]:Return(long[],ubyte):this (FullOpts)
10 (1.07 % of base) - System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this
 ; Assembly listing for method System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  8,  5   )     ref  ->  [rbp-0x50]  this class-hnd single-def <System.Buffers.SharedArrayPool`1[short]>
-;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  [rbp-0x58]  class-hnd single-def <short[]>
+;  V00 this         [V00,T09] (  8,  5   )     ref  ->  r15         this class-hnd single-def <System.Buffers.SharedArrayPool`1[short]>
+;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  rbx         class-hnd single-def <short[]>
 ;  V02 arg2         [V02,T14] (  3,  2.50)   ubyte  ->  r14         single-def
 ;  V03 loc0         [V03,T12] (  8,  5   )     int  ->  r12        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T23] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
-;  V06 loc3         [V06,T25] (  3,  2   )   ubyte  ->  [rbp-0x30] 
-;  V07 loc4         [V07,T20] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T21] (  3,  3   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <System.Array>
+;  V05 loc2         [V05,T24] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
+;  V06 loc3         [V06,T26] (  3,  2   )   ubyte  ->  [rbp-0x30] 
+;  V07 loc4         [V07,T21] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T22] (  3,  3   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <System.Array>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T19] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V11 tmp2         [V11,T16] (  5,  4   )     ref  ->  [rbp-0x68] 
-;  V12 tmp3         [V12,T27] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
-;  V13 tmp4         [V13,T28] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
-;  V14 tmp5         [V14,T29] (  2,  2   )     int  ->  rbx         "impAppendStmt"
-;  V15 tmp6         [V15,T30] (  2,  2   )     int  ->  r13         "impAppendStmt"
+;  V10 tmp1         [V10,T20] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V11 tmp2         [V11,T16] (  5,  4   )     ref  ->  [rbp-0x60] 
+;  V12 tmp3         [V12,T28] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
+;  V13 tmp4         [V13,T29] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
+;  V14 tmp5         [V14,T30] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V15 tmp6         [V15,T31] (  2,  2   )     int  ->  r13         "impAppendStmt"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
-;  V19 tmp10        [V19,T36] (  2,  1   )     int  ->  rcx        
+;  V19 tmp10        [V19,T40] (  2,  1   )     int  ->  rcx        
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
-;  V24 tmp15        [V24,T33] (  3,  1.50)     int  ->   r8        
+;  V24 tmp15        [V24,T35] (  3,  1.50)     int  ->   r8        
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;  V35 tmp26        [V35,T34] (  3,  1.50)     int  ->   r9        
+;  V35 tmp26        [V35,T36] (  3,  1.50)     int  ->   r9        
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V37 tmp28        [V37,T17] (  4,  4   )   byref  ->  r14         single-def "dup spill"
 ;* V38 tmp29        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V39 tmp30        [V39,T26] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V40 tmp31        [V40,T24] (  4,  2   )     ref  ->  rax        
-;  V41 tmp32        [V41,T39] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V39 tmp30        [V39,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V40 tmp31        [V40,T25] (  4,  2   )     ref  ->  rax        
+;  V41 tmp32        [V41,T43] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp36        [V45,T35] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
-;  V46 tmp37        [V46,T13] (  3,  5   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
-;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  rbx         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  r15         "Inline stloc first use temp"
-;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rbx         "dup spill"
+;  V45 tmp36        [V45,T37] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
+;  V46 tmp37        [V46,T13] (  3,  5   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  [rbp-0x3C]  "Inline stloc first use temp"
+;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  [rbp-0x40]  "Inline stloc first use temp"
+;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rax         "dup spill"
 ;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V51 tmp42        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V52 tmp43        [V52,T07] (  3, 10   )   ubyte  ->  [rbp-0x3C]  "Inline stloc first use temp"
-;  V53 tmp44        [V53,T00] (  8, 56   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V54 tmp45        [V54,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V55 tmp46        [V55,T03] (  5, 14   )     int  ->  [rbp-0x40]  spill-single-def "Inline stloc first use temp"
-;  V56 tmp47        [V56,T31] (  2,  2   )     int  ->   r8         "Inlining Arg"
-;* V57 tmp48        [V57,T37] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
-;* V58 tmp49        [V58,T38] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
-;  V59 tmp50        [V59,T22] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V60 tmp51        [V60,T40] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
-;  V61 tmp52        [V61,T41] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V62 cse0         [V62,T04] (  5, 13   )     int  ->  [rbp-0x44]  spill-single-def "CSE #04: aggressive"
-;  V63 cse1         [V63,T15] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
-;  V64 rat0         [V64,T32] (  2,  2   )     int  ->  rbx         "Spilling to split statement for tree"
-;  V65 rat1         [V65,T18] (  3,  4   )   byref  ->  rax         "TLS field access"
-;  V66 rat2         [V66,T11] (  3,  6   )    long  ->  rax         "TLS access"
-;  V67 rat3         [V67,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V51 tmp42        [V51,T38] (  3,  1.50)     int  ->  [rbp-0x44]  "Inline return value spill temp"
+;  V52 tmp43        [V52,T18] (  4,  4   )     int  ->  rcx         "dup spill"
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V54 tmp45        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V55 tmp46        [V55,T07] (  3, 10   )   ubyte  ->  [rbp-0x48]  "Inline stloc first use temp"
+;  V56 tmp47        [V56,T00] (  8, 56   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V57 tmp48        [V57,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V58 tmp49        [V58,T03] (  5, 14   )     int  ->  [rbp-0x4C]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp50        [V59,T32] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;* V60 tmp51        [V60,T41] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
+;* V61 tmp52        [V61,T42] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
+;  V62 tmp53        [V62,T23] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V63 tmp54        [V63,T44] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
+;  V64 tmp55        [V64,T45] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V65 cse0         [V65,T39] (  3,  1.50)    long  ->  rax         "CSE #04: moderate"
+;  V66 cse1         [V66,T04] (  5, 13   )     int  ->  [rbp-0x50]  spill-single-def "CSE #05: aggressive"
+;  V67 cse2         [V67,T15] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
+;  V68 rat0         [V68,T19] (  3,  4   )   byref  ->  rax         "TLS field access"
+;  V69 rat1         [V69,T11] (  3,  6   )    long  ->  rax         "TLS access"
+;  V70 rat2         [V70,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V71 rat3         [V71,T33] (  2,  2   )    long  ->  rax         "TLS field access"
+;  V72 rat4         [V72,T34] (  2,  2   )    long  ->  rax         "TLS access"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M62415_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 88
-       vzeroupper 
-       lea      rbp, [rsp+0x80]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        mov      r15, rdi
        mov      rbx, rsi
        mov      r14d, edx
-						;; size=34 bbWeight=1 PerfScore 8.50
+						;; size=28 bbWeight=1 PerfScore 7.50
 G_M62415_IG02:
        test     rbx, rbx
-       je       G_M62415_IG35
+       je       G_M62415_IG34
        mov      r13d, dword ptr [rbx+0x08]
        lea      edi, [r13-0x01]
        or       edi, 15
        xor      r12d, r12d
        lzcnt    r12d, edi
        xor      r12d, 31
        add      r12d, -3
        mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
        call     rax
        cmp      dword ptr [rax], 13
        jle      G_M62415_IG31
        mov      rdi, gword ptr [rax+0x08]
        mov      rax, bword ptr [rdi+0x68]
        test     rax, rax
        je       G_M62415_IG31
 						;; size=84 bbWeight=1 PerfScore 19.50
 G_M62415_IG03:
        mov      rax, gword ptr [rax+0x10]
        test     rax, rax
        jne      SHORT G_M62415_IG05
 						;; size=9 bbWeight=1 PerfScore 3.25
 G_M62415_IG04:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[short]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
        call     [rax]System.Buffers.SharedArrayPool`1[short]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
 						;; size=15 bbWeight=0.50 PerfScore 1.75
 G_M62415_IG05:
        xor      ecx, ecx
        mov      dword ptr [rbp-0x30], 1
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x60], rax
        cmp      dword ptr [rax+0x08], r12d
        jbe      G_M62415_IG25
 						;; size=23 bbWeight=1 PerfScore 6.25
 G_M62415_IG06:
        mov      dword ptr [rbp-0x2C], 1
        test     r14b, r14b
        je       SHORT G_M62415_IG07
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; code for System.Array:Clear(System.Array)
        call     [rsi]System.Array:Clear(System.Array)
 						;; size=27 bbWeight=0.50 PerfScore 2.88
 G_M62415_IG07:
        mov      edi, 16
        shlx     edi, edi, r12d
        cmp      r13d, edi
-       jne      G_M62415_IG34
+       jne      G_M62415_IG33
        mov      edi, r12d
        shl      rdi, 4
-       mov      rax, gword ptr [rbp-0x68]
+       mov      rax, gword ptr [rbp-0x60]
        lea      r14, bword ptr [rax+rdi+0x10]
        mov      rax, gword ptr [r14]
-       mov      gword ptr [rbp-0x60], rax
-       mov      gword ptr [rbp-0x58], rbx
+       mov      gword ptr [rbp-0x58], rax
        mov      rdi, r14
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        xor      edi, edi
        mov      dword ptr [r14+0x08], edi
-       cmp      gword ptr [rbp-0x60], 0
-       mov      rbx, gword ptr [rbp-0x58]
-       je       SHORT G_M62415_IG11
+       mov      r14, gword ptr [rbp-0x58]
+       test     r14, r14
+       je       SHORT G_M62415_IG09
        mov      rdi, gword ptr [r15+0x10]
        cmp      r12d, dword ptr [rdi+0x08]
-       jae      G_M62415_IG36
+       jae      G_M62415_IG35
        mov      esi, r12d
        mov      rax, gword ptr [rdi+8*rsi+0x10]
        test     rax, rax
-       jne      SHORT G_M62415_IG10
-       mov      gword ptr [rbp-0x50], r15
+       jne      SHORT G_M62415_IG08
        mov      rdi, r15
        mov      esi, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[short]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
        call     [rax]System.Buffers.SharedArrayPool`1[short]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
-       mov      gword ptr [rbp-0x58], rbx
-						;; size=127 bbWeight=0.50 PerfScore 15.38
+						;; size=113 bbWeight=0.50 PerfScore 13.00
 G_M62415_IG08:
        mov      rax, gword ptr [rax+0x08]
-       mov      gword ptr [rbp-0x70], rax
+       mov      gword ptr [rbp-0x68], rax
+       mov      rdi, 0xD1FFAB1E
        mov      rcx, 0xD1FFAB1E      ; function address
-						;; size=18 bbWeight=0.50 PerfScore 1.62
+       call     rcx
+       add      rax, 76
+       mov      ecx, dword ptr [rax+0x10]
+       lea      edx, [rcx-0x01]
+       mov      dword ptr [rax+0x10], edx
+       movzx    rax, cx
+       test     eax, eax
+       jne      SHORT G_M62415_IG10
+       jmp      SHORT G_M62415_IG11
+						;; size=52 bbWeight=0.50 PerfScore 6.88
 G_M62415_IG09:
-       call     rcx ; Interop+Sys:SchedGetCpu():int
-       mov      ebx, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       je       SHORT G_M62415_IG12
-       jmp      G_M62415_IG32
-						;; size=24 bbWeight=0.50 PerfScore 4.75
-G_M62415_IG10:
-       mov      gword ptr [rbp-0x58], rbx
-       mov      gword ptr [rbp-0x50], r15
-       jmp      SHORT G_M62415_IG08
-						;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M62415_IG11:
        mov      ecx, dword ptr [rbp-0x2C]
        jmp      G_M62415_IG25
 						;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M62415_IG10:
+       mov      eax, ecx
+       sar      eax, 16
+       mov      edx, eax
+       jmp      SHORT G_M62415_IG12
+						;; size=9 bbWeight=0.50 PerfScore 1.50
+G_M62415_IG11:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       mov      edx, eax
+						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M62415_IG12:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M62415_IG33
+       je       G_M62415_IG32
 						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M62415_IG13:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
-       mov      eax, ebx
+       mov      eax, edx
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
-       mov      ebx, edx
-       xor      r15d, r15d
-       mov      r14, gword ptr [rbp-0x70]
-       mov      eax, dword ptr [r14+0x08]
-       mov      dword ptr [rbp-0x44], eax
-       test     eax, eax
+       mov      eax, edx
+       xor      ecx, ecx
+       mov      dword ptr [rbp-0x40], ecx
+       mov      rdx, gword ptr [rbp-0x68]
+       mov      esi, dword ptr [rdx+0x08]
+       mov      dword ptr [rbp-0x50], esi
+       test     esi, esi
        jle      G_M62415_IG22
-						;; size=40 bbWeight=0.50 PerfScore 15.75
+						;; size=41 bbWeight=0.50 PerfScore 16.25
 G_M62415_IG14:
-       cmp      ebx, eax
-       jae      G_M62415_IG36
-       mov      edi, ebx
-       mov      rcx, gword ptr [r14+8*rdi+0x10]
-       mov      gword ptr [rbp-0x78], rcx
-       cmp      byte  ptr [rcx], cl
-       xor      edx, edx
-       mov      dword ptr [rbp-0x3C], edx
-       mov      rdi, rcx
+       cmp      eax, esi
+       jae      G_M62415_IG35
+       mov      dword ptr [rbp-0x3C], eax
+       mov      edi, eax
+       mov      r8, gword ptr [rdx+8*rdi+0x10]
+       mov      gword ptr [rbp-0x70], r8
+       cmp      byte  ptr [r8], r8b
+       xor      r9d, r9d
+       mov      dword ptr [rbp-0x48], r9d
+       mov      rdi, r8
        call     System.Threading.Monitor:Enter(System.Object)
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      rdi, gword ptr [rax+0x08]
        mov      ecx, dword ptr [rax+0x10]
-       mov      dword ptr [rbp-0x40], ecx
+       mov      dword ptr [rbp-0x4C], ecx
        cmp      dword ptr [rdi+0x08], ecx
        jbe      SHORT G_M62415_IG17
-						;; size=53 bbWeight=4 PerfScore 80.00
+						;; size=59 bbWeight=4 PerfScore 84.00
 G_M62415_IG15:
        test     ecx, ecx
        jne      SHORT G_M62415_IG18
        xor      esi, esi
        mov      dword ptr [rax+0x14], esi
 						;; size=9 bbWeight=2 PerfScore 5.00
 G_M62415_IG16:
        movsxd   rsi, ecx
        lea      rdi, bword ptr [rdi+8*rsi+0x10]
-       mov      rsi, gword ptr [rbp-0x60]
+       mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
-       mov      edi, dword ptr [rbp-0x40]
+       mov      edi, dword ptr [rbp-0x4C]
        inc      edi
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      dword ptr [rax+0x10], edi
-       mov      dword ptr [rbp-0x3C], 1
-						;; size=36 bbWeight=2 PerfScore 15.00
+       mov      dword ptr [rbp-0x48], 1
+						;; size=35 bbWeight=2 PerfScore 13.50
 G_M62415_IG17:
        mov      rdi, rax
        call     System.Threading.Monitor:Exit(System.Object)
-       cmp      dword ptr [rbp-0x3C], 0
+       cmp      dword ptr [rbp-0x48], 0
        je       SHORT G_M62415_IG19
        jmp      SHORT G_M62415_IG23
 						;; size=16 bbWeight=4 PerfScore 25.00
 G_M62415_IG18:
        jmp      SHORT G_M62415_IG16
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M62415_IG19:
-       inc      ebx
-       mov      edi, dword ptr [rbp-0x44]
-       cmp      edi, ebx
+       mov      eax, dword ptr [rbp-0x3C]
+       inc      eax
+       mov      edi, eax
+       mov      esi, dword ptr [rbp-0x50]
+       cmp      esi, edi
        jne      SHORT G_M62415_IG21
-						;; size=9 bbWeight=4 PerfScore 10.00
+						;; size=14 bbWeight=4 PerfScore 15.00
 G_M62415_IG20:
-       xor      ebx, ebx
+       xor      edi, edi
 						;; size=2 bbWeight=2 PerfScore 0.50
 G_M62415_IG21:
-       inc      r15d
-       cmp      edi, r15d
+       mov      ecx, dword ptr [rbp-0x40]
+       inc      ecx
+       cmp      esi, ecx
+       mov      dword ptr [rbp-0x40], ecx
        mov      eax, edi
+       mov      rdx, gword ptr [rbp-0x68]
        jg       G_M62415_IG14
-						;; size=14 bbWeight=4 PerfScore 7.00
+						;; size=22 bbWeight=4 PerfScore 19.00
 G_M62415_IG22:
        xor      edx, edx
        jmp      SHORT G_M62415_IG24
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M62415_IG23:
        mov      edx, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M62415_IG24:
        mov      dword ptr [rbp-0x30], edx
        mov      ecx, dword ptr [rbp-0x2C]
-       mov      rbx, gword ptr [rbp-0x58]
-       mov      r15, gword ptr [rbp-0x50]
-						;; size=14 bbWeight=0.50 PerfScore 2.00
+						;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M62415_IG25:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       G_M62415_IG29
 						;; size=27 bbWeight=1 PerfScore 6.25
 G_M62415_IG26:
        test     r13d, r13d
        mov      dword ptr [rbp-0x2C], ecx
        je       G_M62415_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      dword ptr [rbp-0x34], eax
        mov      dword ptr [rbp-0x38], r13d
        cmp      byte  ptr [r15], r15b
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r8d, eax
        mov      rdi, r14
        mov      edx, dword ptr [rbp-0x34]
        mov      ecx, dword ptr [rbp-0x38]
        mov      esi, 3
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        mov      eax, dword ptr [rbp-0x2C]
        test     eax, dword ptr [rbp-0x30]
        jne      SHORT G_M62415_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ebx, eax
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        cmp      dword ptr [rbp-0x2C], 0
        je       SHORT G_M62415_IG27
        mov      r8d, r12d
        xor      r9d, r9d
        jmp      SHORT G_M62415_IG28
 						;; size=109 bbWeight=0.50 PerfScore 14.12
 G_M62415_IG27:
        mov      r8d, -1
        mov      r9d, 1
 						;; size=12 bbWeight=0.50 PerfScore 0.25
 G_M62415_IG28:
        mov      rdi, r14
        mov      esi, ebx
        mov      edx, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M62415_IG29:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M62415_IG30:
-       add      rsp, 88
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M62415_IG31:
        mov      edi, 13
        call     CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
        jmp      G_M62415_IG03
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M62415_IG32:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M62415_IG12
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M62415_IG33:
+       mov      dword ptr [rbp-0x44], edx
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
+       mov      edx, dword ptr [rbp-0x44]
        jmp      G_M62415_IG13
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M62415_IG34:
+						;; size=26 bbWeight=0 PerfScore 0.00
+G_M62415_IG33:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_ArgumentException_BufferNotFromPool():System.String
        call     [rax]System.SR:get_ArgumentException_BufferNotFromPool():System.String
        mov      r15, rax
        mov      edi, 987
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
-G_M62415_IG35:
+G_M62415_IG34:
        mov      edi, 2
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M62415_IG36:
+G_M62415_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 938, prolog size 34, PerfScore 258.38, instruction count 240, allocated bytes for code 938 (MethodHash=23430c30) for method System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
+; Total bytes of code 948, prolog size 28, PerfScore 276.75, instruction count 249, allocated bytes for code 948 (MethodHash=23430c30) for method System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
10 (1.05 % of base) - System.Buffers.SharedArrayPool`1[System.Nullable`1[int]]:Return(System.Nullable`1[int][],ubyte):this
 ; Assembly listing for method System.Buffers.SharedArrayPool`1[System.Nullable`1[int]]:Return(System.Nullable`1[int][],ubyte):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  8,  5   )     ref  ->  [rbp-0x50]  this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.Nullable`1[int]]>
-;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  [rbp-0x58]  class-hnd single-def <System.Nullable`1[int][]>
+;  V00 this         [V00,T09] (  8,  5   )     ref  ->  r15         this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.Nullable`1[int]]>
+;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  rbx         class-hnd single-def <System.Nullable`1[int][]>
 ;  V02 arg2         [V02,T15] (  3,  2.50)   ubyte  ->  r14         single-def
 ;  V03 loc0         [V03,T13] (  8,  5   )     int  ->  r12        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T24] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
-;  V06 loc3         [V06,T26] (  3,  2   )   ubyte  ->  [rbp-0x30] 
-;  V07 loc4         [V07,T21] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T22] (  3,  3   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <System.Array>
+;  V05 loc2         [V05,T25] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
+;  V06 loc3         [V06,T27] (  3,  2   )   ubyte  ->  [rbp-0x30] 
+;  V07 loc4         [V07,T22] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T23] (  3,  3   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <System.Array>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T20] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V11 tmp2         [V11,T17] (  5,  4   )     ref  ->  [rbp-0x68] 
-;  V12 tmp3         [V12,T28] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
-;  V13 tmp4         [V13,T29] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
-;  V14 tmp5         [V14,T30] (  2,  2   )     int  ->  rbx         "impAppendStmt"
-;  V15 tmp6         [V15,T31] (  2,  2   )     int  ->  r13         "impAppendStmt"
+;  V10 tmp1         [V10,T21] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V11 tmp2         [V11,T17] (  5,  4   )     ref  ->  [rbp-0x60] 
+;  V12 tmp3         [V12,T29] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
+;  V13 tmp4         [V13,T30] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
+;  V14 tmp5         [V14,T31] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V15 tmp6         [V15,T32] (  2,  2   )     int  ->  r13         "impAppendStmt"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
-;  V19 tmp10        [V19,T37] (  2,  1   )     int  ->  rcx        
+;  V19 tmp10        [V19,T41] (  2,  1   )     int  ->  rcx        
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
-;  V24 tmp15        [V24,T34] (  3,  1.50)     int  ->   r8        
+;  V24 tmp15        [V24,T36] (  3,  1.50)     int  ->   r8        
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;  V35 tmp26        [V35,T35] (  3,  1.50)     int  ->   r9        
+;  V35 tmp26        [V35,T37] (  3,  1.50)     int  ->   r9        
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V37 tmp28        [V37,T18] (  4,  4   )   byref  ->  r14         single-def "dup spill"
 ;* V38 tmp29        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V39 tmp30        [V39,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V40 tmp31        [V40,T25] (  4,  2   )     ref  ->  rax        
-;  V41 tmp32        [V41,T40] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V39 tmp30        [V39,T28] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V40 tmp31        [V40,T26] (  4,  2   )     ref  ->  rax        
+;  V41 tmp32        [V41,T44] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp36        [V45,T36] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
-;  V46 tmp37        [V46,T14] (  3,  5   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
-;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  rbx         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  r15         "Inline stloc first use temp"
-;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rbx         "dup spill"
+;  V45 tmp36        [V45,T38] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
+;  V46 tmp37        [V46,T14] (  3,  5   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  [rbp-0x3C]  "Inline stloc first use temp"
+;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  [rbp-0x40]  "Inline stloc first use temp"
+;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rax         "dup spill"
 ;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V51 tmp42        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V52 tmp43        [V52,T07] (  3, 10   )   ubyte  ->  [rbp-0x3C]  "Inline stloc first use temp"
-;  V53 tmp44        [V53,T00] (  8, 56   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V54 tmp45        [V54,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V55 tmp46        [V55,T03] (  5, 14   )     int  ->  [rbp-0x40]  spill-single-def "Inline stloc first use temp"
-;  V56 tmp47        [V56,T32] (  2,  2   )     int  ->   r8         "Inlining Arg"
-;* V57 tmp48        [V57,T38] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
-;* V58 tmp49        [V58,T39] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
-;  V59 tmp50        [V59,T23] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V60 tmp51        [V60,T41] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
-;  V61 tmp52        [V61,T42] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V62 cse0         [V62,T04] (  5, 13   )     int  ->  [rbp-0x44]  spill-single-def "CSE #04: aggressive"
-;  V63 cse1         [V63,T16] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
-;  V64 rat0         [V64,T33] (  2,  2   )     int  ->  rbx         "Spilling to split statement for tree"
-;  V65 rat1         [V65,T19] (  3,  4   )   byref  ->  rax         "TLS field access"
-;  V66 rat2         [V66,T11] (  3,  6   )    long  ->  rax         "TLS access"
-;  V67 rat3         [V67,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
-;  V68 rat4         [V68,T12] (  3,  6   )     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
+;  V51 tmp42        [V51,T39] (  3,  1.50)     int  ->  [rbp-0x44]  "Inline return value spill temp"
+;  V52 tmp43        [V52,T19] (  4,  4   )     int  ->  rcx         "dup spill"
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V54 tmp45        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V55 tmp46        [V55,T07] (  3, 10   )   ubyte  ->  [rbp-0x48]  "Inline stloc first use temp"
+;  V56 tmp47        [V56,T00] (  8, 56   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V57 tmp48        [V57,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V58 tmp49        [V58,T03] (  5, 14   )     int  ->  [rbp-0x4C]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp50        [V59,T33] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;* V60 tmp51        [V60,T42] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
+;* V61 tmp52        [V61,T43] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
+;  V62 tmp53        [V62,T24] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V63 tmp54        [V63,T45] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
+;  V64 tmp55        [V64,T46] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V65 cse0         [V65,T40] (  3,  1.50)    long  ->  rax         "CSE #04: moderate"
+;  V66 cse1         [V66,T04] (  5, 13   )     int  ->  [rbp-0x50]  spill-single-def "CSE #05: aggressive"
+;  V67 cse2         [V67,T16] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
+;  V68 rat0         [V68,T20] (  3,  4   )   byref  ->  rax         "TLS field access"
+;  V69 rat1         [V69,T11] (  3,  6   )    long  ->  rax         "TLS access"
+;  V70 rat2         [V70,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V71 rat3         [V71,T34] (  2,  2   )    long  ->  rax         "TLS field access"
+;  V72 rat4         [V72,T35] (  2,  2   )    long  ->  rax         "TLS access"
+;  V73 rat5         [V73,T12] (  3,  6   )     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M35503_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 88
-       vzeroupper 
-       lea      rbp, [rsp+0x80]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        mov      r15, rdi
        mov      rbx, rsi
        mov      r14d, edx
-						;; size=34 bbWeight=1 PerfScore 8.50
+						;; size=28 bbWeight=1 PerfScore 7.50
 G_M35503_IG02:
        test     rbx, rbx
-       je       G_M35503_IG35
+       je       G_M35503_IG34
        mov      r13d, dword ptr [rbx+0x08]
        lea      edi, [r13-0x01]
        or       edi, 15
        xor      r12d, r12d
        lzcnt    r12d, edi
        xor      r12d, 31
        add      r12d, -3
        mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
        call     rax
        cmp      dword ptr [rax], 17
        jle      G_M35503_IG31
        mov      rdi, gword ptr [rax+0x08]
        mov      eax, 8
        mov      ecx, eax
        shl      ecx, 4
        add      ecx, eax
        mov      rax, bword ptr [rdi+rcx]
        test     rax, rax
        je       G_M35503_IG31
 						;; size=96 bbWeight=1 PerfScore 20.75
 G_M35503_IG03:
        mov      rax, gword ptr [rax+0x10]
        test     rax, rax
        jne      SHORT G_M35503_IG05
 						;; size=9 bbWeight=1 PerfScore 3.25
 G_M35503_IG04:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.Nullable`1[int]]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
        call     [rax]System.Buffers.SharedArrayPool`1[System.Nullable`1[int]]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
 						;; size=15 bbWeight=0.50 PerfScore 1.75
 G_M35503_IG05:
        xor      ecx, ecx
        mov      dword ptr [rbp-0x30], 1
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x60], rax
        cmp      dword ptr [rax+0x08], r12d
        jbe      G_M35503_IG25
 						;; size=23 bbWeight=1 PerfScore 6.25
 G_M35503_IG06:
        mov      dword ptr [rbp-0x2C], 1
        test     r14b, r14b
        je       SHORT G_M35503_IG07
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; code for System.Array:Clear(System.Array)
        call     [rsi]System.Array:Clear(System.Array)
 						;; size=27 bbWeight=0.50 PerfScore 2.88
 G_M35503_IG07:
        mov      edi, 16
        shlx     edi, edi, r12d
        cmp      r13d, edi
-       jne      G_M35503_IG34
+       jne      G_M35503_IG33
        mov      edi, r12d
        shl      rdi, 4
-       mov      rax, gword ptr [rbp-0x68]
+       mov      rax, gword ptr [rbp-0x60]
        lea      r14, bword ptr [rax+rdi+0x10]
        mov      rax, gword ptr [r14]
-       mov      gword ptr [rbp-0x60], rax
-       mov      gword ptr [rbp-0x58], rbx
+       mov      gword ptr [rbp-0x58], rax
        mov      rdi, r14
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        xor      edi, edi
        mov      dword ptr [r14+0x08], edi
-       cmp      gword ptr [rbp-0x60], 0
-       mov      rbx, gword ptr [rbp-0x58]
-       je       SHORT G_M35503_IG11
+       mov      r14, gword ptr [rbp-0x58]
+       test     r14, r14
+       je       SHORT G_M35503_IG09
        mov      rdi, gword ptr [r15+0x10]
        cmp      r12d, dword ptr [rdi+0x08]
-       jae      G_M35503_IG36
+       jae      G_M35503_IG35
        mov      esi, r12d
        mov      rax, gword ptr [rdi+8*rsi+0x10]
        test     rax, rax
-       jne      SHORT G_M35503_IG10
-       mov      gword ptr [rbp-0x50], r15
+       jne      SHORT G_M35503_IG08
        mov      rdi, r15
        mov      esi, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.Nullable`1[int]]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
        call     [rax]System.Buffers.SharedArrayPool`1[System.Nullable`1[int]]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
-       mov      gword ptr [rbp-0x58], rbx
-						;; size=127 bbWeight=0.50 PerfScore 15.38
+						;; size=113 bbWeight=0.50 PerfScore 13.00
 G_M35503_IG08:
        mov      rax, gword ptr [rax+0x08]
-       mov      gword ptr [rbp-0x70], rax
+       mov      gword ptr [rbp-0x68], rax
+       mov      rdi, 0xD1FFAB1E
        mov      rcx, 0xD1FFAB1E      ; function address
-						;; size=18 bbWeight=0.50 PerfScore 1.62
+       call     rcx
+       add      rax, 76
+       mov      ecx, dword ptr [rax+0x10]
+       lea      edx, [rcx-0x01]
+       mov      dword ptr [rax+0x10], edx
+       movzx    rax, cx
+       test     eax, eax
+       jne      SHORT G_M35503_IG10
+       jmp      SHORT G_M35503_IG11
+						;; size=52 bbWeight=0.50 PerfScore 6.88
 G_M35503_IG09:
-       call     rcx ; Interop+Sys:SchedGetCpu():int
-       mov      ebx, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       je       SHORT G_M35503_IG12
-       jmp      G_M35503_IG32
-						;; size=24 bbWeight=0.50 PerfScore 4.75
-G_M35503_IG10:
-       mov      gword ptr [rbp-0x58], rbx
-       mov      gword ptr [rbp-0x50], r15
-       jmp      SHORT G_M35503_IG08
-						;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M35503_IG11:
        mov      ecx, dword ptr [rbp-0x2C]
        jmp      G_M35503_IG25
 						;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M35503_IG10:
+       mov      eax, ecx
+       sar      eax, 16
+       mov      edx, eax
+       jmp      SHORT G_M35503_IG12
+						;; size=9 bbWeight=0.50 PerfScore 1.50
+G_M35503_IG11:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       mov      edx, eax
+						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M35503_IG12:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M35503_IG33
+       je       G_M35503_IG32
 						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M35503_IG13:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
-       mov      eax, ebx
+       mov      eax, edx
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
-       mov      ebx, edx
-       xor      r15d, r15d
-       mov      r14, gword ptr [rbp-0x70]
-       mov      eax, dword ptr [r14+0x08]
-       mov      dword ptr [rbp-0x44], eax
-       test     eax, eax
+       mov      eax, edx
+       xor      ecx, ecx
+       mov      dword ptr [rbp-0x40], ecx
+       mov      rdx, gword ptr [rbp-0x68]
+       mov      esi, dword ptr [rdx+0x08]
+       mov      dword ptr [rbp-0x50], esi
+       test     esi, esi
        jle      G_M35503_IG22
-						;; size=40 bbWeight=0.50 PerfScore 15.75
+						;; size=41 bbWeight=0.50 PerfScore 16.25
 G_M35503_IG14:
-       cmp      ebx, eax
-       jae      G_M35503_IG36
-       mov      edi, ebx
-       mov      rcx, gword ptr [r14+8*rdi+0x10]
-       mov      gword ptr [rbp-0x78], rcx
-       cmp      byte  ptr [rcx], cl
-       xor      edx, edx
-       mov      dword ptr [rbp-0x3C], edx
-       mov      rdi, rcx
+       cmp      eax, esi
+       jae      G_M35503_IG35
+       mov      dword ptr [rbp-0x3C], eax
+       mov      edi, eax
+       mov      r8, gword ptr [rdx+8*rdi+0x10]
+       mov      gword ptr [rbp-0x70], r8
+       cmp      byte  ptr [r8], r8b
+       xor      r9d, r9d
+       mov      dword ptr [rbp-0x48], r9d
+       mov      rdi, r8
        call     System.Threading.Monitor:Enter(System.Object)
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      rdi, gword ptr [rax+0x08]
        mov      ecx, dword ptr [rax+0x10]
-       mov      dword ptr [rbp-0x40], ecx
+       mov      dword ptr [rbp-0x4C], ecx
        cmp      dword ptr [rdi+0x08], ecx
        jbe      SHORT G_M35503_IG17
-						;; size=53 bbWeight=4 PerfScore 80.00
+						;; size=59 bbWeight=4 PerfScore 84.00
 G_M35503_IG15:
        test     ecx, ecx
        jne      SHORT G_M35503_IG18
        xor      esi, esi
        mov      dword ptr [rax+0x14], esi
 						;; size=9 bbWeight=2 PerfScore 5.00
 G_M35503_IG16:
        movsxd   rsi, ecx
        lea      rdi, bword ptr [rdi+8*rsi+0x10]
-       mov      rsi, gword ptr [rbp-0x60]
+       mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
-       mov      edi, dword ptr [rbp-0x40]
+       mov      edi, dword ptr [rbp-0x4C]
        inc      edi
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      dword ptr [rax+0x10], edi
-       mov      dword ptr [rbp-0x3C], 1
-						;; size=36 bbWeight=2 PerfScore 15.00
+       mov      dword ptr [rbp-0x48], 1
+						;; size=35 bbWeight=2 PerfScore 13.50
 G_M35503_IG17:
        mov      rdi, rax
        call     System.Threading.Monitor:Exit(System.Object)
-       cmp      dword ptr [rbp-0x3C], 0
+       cmp      dword ptr [rbp-0x48], 0
        je       SHORT G_M35503_IG19
        jmp      SHORT G_M35503_IG23
 						;; size=16 bbWeight=4 PerfScore 25.00
 G_M35503_IG18:
        jmp      SHORT G_M35503_IG16
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M35503_IG19:
-       inc      ebx
-       mov      edi, dword ptr [rbp-0x44]
-       cmp      edi, ebx
+       mov      eax, dword ptr [rbp-0x3C]
+       inc      eax
+       mov      edi, eax
+       mov      esi, dword ptr [rbp-0x50]
+       cmp      esi, edi
        jne      SHORT G_M35503_IG21
-						;; size=9 bbWeight=4 PerfScore 10.00
+						;; size=14 bbWeight=4 PerfScore 15.00
 G_M35503_IG20:
-       xor      ebx, ebx
+       xor      edi, edi
 						;; size=2 bbWeight=2 PerfScore 0.50
 G_M35503_IG21:
-       inc      r15d
-       cmp      edi, r15d
+       mov      ecx, dword ptr [rbp-0x40]
+       inc      ecx
+       cmp      esi, ecx
+       mov      dword ptr [rbp-0x40], ecx
        mov      eax, edi
+       mov      rdx, gword ptr [rbp-0x68]
        jg       G_M35503_IG14
-						;; size=14 bbWeight=4 PerfScore 7.00
+						;; size=22 bbWeight=4 PerfScore 19.00
 G_M35503_IG22:
        xor      edx, edx
        jmp      SHORT G_M35503_IG24
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M35503_IG23:
        mov      edx, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M35503_IG24:
        mov      dword ptr [rbp-0x30], edx
        mov      ecx, dword ptr [rbp-0x2C]
-       mov      rbx, gword ptr [rbp-0x58]
-       mov      r15, gword ptr [rbp-0x50]
-						;; size=14 bbWeight=0.50 PerfScore 2.00
+						;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M35503_IG25:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       G_M35503_IG29
 						;; size=27 bbWeight=1 PerfScore 6.25
 G_M35503_IG26:
        test     r13d, r13d
        mov      dword ptr [rbp-0x2C], ecx
        je       G_M35503_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      dword ptr [rbp-0x34], eax
        mov      dword ptr [rbp-0x38], r13d
        cmp      byte  ptr [r15], r15b
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r8d, eax
        mov      rdi, r14
        mov      edx, dword ptr [rbp-0x34]
        mov      ecx, dword ptr [rbp-0x38]
        mov      esi, 3
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        mov      eax, dword ptr [rbp-0x2C]
        test     eax, dword ptr [rbp-0x30]
        jne      SHORT G_M35503_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ebx, eax
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        cmp      dword ptr [rbp-0x2C], 0
        je       SHORT G_M35503_IG27
        mov      r8d, r12d
        xor      r9d, r9d
        jmp      SHORT G_M35503_IG28
 						;; size=109 bbWeight=0.50 PerfScore 14.12
 G_M35503_IG27:
        mov      r8d, -1
        mov      r9d, 1
 						;; size=12 bbWeight=0.50 PerfScore 0.25
 G_M35503_IG28:
        mov      rdi, r14
        mov      esi, ebx
        mov      edx, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M35503_IG29:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M35503_IG30:
-       add      rsp, 88
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M35503_IG31:
        mov      edi, 17
        call     CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
        jmp      G_M35503_IG03
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M35503_IG32:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M35503_IG12
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M35503_IG33:
+       mov      dword ptr [rbp-0x44], edx
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
+       mov      edx, dword ptr [rbp-0x44]
        jmp      G_M35503_IG13
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M35503_IG34:
+						;; size=26 bbWeight=0 PerfScore 0.00
+G_M35503_IG33:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_ArgumentException_BufferNotFromPool():System.String
        call     [rax]System.SR:get_ArgumentException_BufferNotFromPool():System.String
        mov      r15, rax
        mov      edi, 987
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
-G_M35503_IG35:
+G_M35503_IG34:
        mov      edi, 2
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M35503_IG36:
+G_M35503_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 950, prolog size 34, PerfScore 259.62, instruction count 244, allocated bytes for code 950 (MethodHash=a04e7550) for method System.Buffers.SharedArrayPool`1[System.Nullable`1[int]]:Return(System.Nullable`1[int][],ubyte):this (FullOpts)
+; Total bytes of code 960, prolog size 28, PerfScore 278.00, instruction count 253, allocated bytes for code 960 (MethodHash=a04e7550) for method System.Buffers.SharedArrayPool`1[System.Nullable`1[int]]:Return(System.Nullable`1[int][],ubyte):this (FullOpts)
10 (1.05 % of base) - System.Buffers.SharedArrayPool`1[System.Numerics.Vector`1[float]]:Return(System.Numerics.Vector`1[float][],ubyte):this
 ; Assembly listing for method System.Buffers.SharedArrayPool`1[System.Numerics.Vector`1[float]]:Return(System.Numerics.Vector`1[float][],ubyte):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  8,  5   )     ref  ->  [rbp-0x50]  this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.Numerics.Vector`1[float]]>
-;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  [rbp-0x58]  class-hnd single-def <System.Numerics.Vector`1[float][]>
+;  V00 this         [V00,T09] (  8,  5   )     ref  ->  r15         this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.Numerics.Vector`1[float]]>
+;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  rbx         class-hnd single-def <System.Numerics.Vector`1[float][]>
 ;  V02 arg2         [V02,T15] (  3,  2.50)   ubyte  ->  r14         single-def
 ;  V03 loc0         [V03,T13] (  8,  5   )     int  ->  r12        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T24] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
-;  V06 loc3         [V06,T26] (  3,  2   )   ubyte  ->  [rbp-0x30] 
-;  V07 loc4         [V07,T21] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T22] (  3,  3   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <System.Array>
+;  V05 loc2         [V05,T25] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
+;  V06 loc3         [V06,T27] (  3,  2   )   ubyte  ->  [rbp-0x30] 
+;  V07 loc4         [V07,T22] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T23] (  3,  3   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <System.Array>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T20] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V11 tmp2         [V11,T17] (  5,  4   )     ref  ->  [rbp-0x68] 
-;  V12 tmp3         [V12,T28] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
-;  V13 tmp4         [V13,T29] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
-;  V14 tmp5         [V14,T30] (  2,  2   )     int  ->  rbx         "impAppendStmt"
-;  V15 tmp6         [V15,T31] (  2,  2   )     int  ->  r13         "impAppendStmt"
+;  V10 tmp1         [V10,T21] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V11 tmp2         [V11,T17] (  5,  4   )     ref  ->  [rbp-0x60] 
+;  V12 tmp3         [V12,T29] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
+;  V13 tmp4         [V13,T30] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
+;  V14 tmp5         [V14,T31] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V15 tmp6         [V15,T32] (  2,  2   )     int  ->  r13         "impAppendStmt"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
-;  V19 tmp10        [V19,T37] (  2,  1   )     int  ->  rcx        
+;  V19 tmp10        [V19,T41] (  2,  1   )     int  ->  rcx        
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
-;  V24 tmp15        [V24,T34] (  3,  1.50)     int  ->   r8        
+;  V24 tmp15        [V24,T36] (  3,  1.50)     int  ->   r8        
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;  V35 tmp26        [V35,T35] (  3,  1.50)     int  ->   r9        
+;  V35 tmp26        [V35,T37] (  3,  1.50)     int  ->   r9        
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V37 tmp28        [V37,T18] (  4,  4   )   byref  ->  r14         single-def "dup spill"
 ;* V38 tmp29        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V39 tmp30        [V39,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V40 tmp31        [V40,T25] (  4,  2   )     ref  ->  rax        
-;  V41 tmp32        [V41,T40] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V39 tmp30        [V39,T28] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V40 tmp31        [V40,T26] (  4,  2   )     ref  ->  rax        
+;  V41 tmp32        [V41,T44] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp36        [V45,T36] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
-;  V46 tmp37        [V46,T14] (  3,  5   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
-;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  rbx         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  r15         "Inline stloc first use temp"
-;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rbx         "dup spill"
+;  V45 tmp36        [V45,T38] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
+;  V46 tmp37        [V46,T14] (  3,  5   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  [rbp-0x3C]  "Inline stloc first use temp"
+;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  [rbp-0x40]  "Inline stloc first use temp"
+;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rax         "dup spill"
 ;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V51 tmp42        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V52 tmp43        [V52,T07] (  3, 10   )   ubyte  ->  [rbp-0x3C]  "Inline stloc first use temp"
-;  V53 tmp44        [V53,T00] (  8, 56   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V54 tmp45        [V54,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V55 tmp46        [V55,T03] (  5, 14   )     int  ->  [rbp-0x40]  spill-single-def "Inline stloc first use temp"
-;  V56 tmp47        [V56,T32] (  2,  2   )     int  ->   r8         "Inlining Arg"
-;* V57 tmp48        [V57,T38] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
-;* V58 tmp49        [V58,T39] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
-;  V59 tmp50        [V59,T23] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V60 tmp51        [V60,T41] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
-;  V61 tmp52        [V61,T42] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V62 cse0         [V62,T04] (  5, 13   )     int  ->  [rbp-0x44]  spill-single-def "CSE #04: aggressive"
-;  V63 cse1         [V63,T16] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
-;  V64 rat0         [V64,T33] (  2,  2   )     int  ->  rbx         "Spilling to split statement for tree"
-;  V65 rat1         [V65,T19] (  3,  4   )   byref  ->  rax         "TLS field access"
-;  V66 rat2         [V66,T11] (  3,  6   )    long  ->  rax         "TLS access"
-;  V67 rat3         [V67,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
-;  V68 rat4         [V68,T12] (  3,  6   )     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
+;  V51 tmp42        [V51,T39] (  3,  1.50)     int  ->  [rbp-0x44]  "Inline return value spill temp"
+;  V52 tmp43        [V52,T19] (  4,  4   )     int  ->  rcx         "dup spill"
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V54 tmp45        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V55 tmp46        [V55,T07] (  3, 10   )   ubyte  ->  [rbp-0x48]  "Inline stloc first use temp"
+;  V56 tmp47        [V56,T00] (  8, 56   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V57 tmp48        [V57,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V58 tmp49        [V58,T03] (  5, 14   )     int  ->  [rbp-0x4C]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp50        [V59,T33] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;* V60 tmp51        [V60,T42] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
+;* V61 tmp52        [V61,T43] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
+;  V62 tmp53        [V62,T24] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V63 tmp54        [V63,T45] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
+;  V64 tmp55        [V64,T46] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V65 cse0         [V65,T40] (  3,  1.50)    long  ->  rax         "CSE #04: moderate"
+;  V66 cse1         [V66,T04] (  5, 13   )     int  ->  [rbp-0x50]  spill-single-def "CSE #05: aggressive"
+;  V67 cse2         [V67,T16] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
+;  V68 rat0         [V68,T20] (  3,  4   )   byref  ->  rax         "TLS field access"
+;  V69 rat1         [V69,T11] (  3,  6   )    long  ->  rax         "TLS access"
+;  V70 rat2         [V70,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V71 rat3         [V71,T34] (  2,  2   )    long  ->  rax         "TLS field access"
+;  V72 rat4         [V72,T35] (  2,  2   )    long  ->  rax         "TLS access"
+;  V73 rat5         [V73,T12] (  3,  6   )     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M39247_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 88
-       vzeroupper 
-       lea      rbp, [rsp+0x80]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        mov      r15, rdi
        mov      rbx, rsi
        mov      r14d, edx
-						;; size=34 bbWeight=1 PerfScore 8.50
+						;; size=28 bbWeight=1 PerfScore 7.50
 G_M39247_IG02:
        test     rbx, rbx
-       je       G_M39247_IG35
+       je       G_M39247_IG34
        mov      r13d, dword ptr [rbx+0x08]
        lea      edi, [r13-0x01]
        or       edi, 15
        xor      r12d, r12d
        lzcnt    r12d, edi
        xor      r12d, 31
        add      r12d, -3
        mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
        call     rax
        cmp      dword ptr [rax], 15
        jle      G_M39247_IG31
        mov      rdi, gword ptr [rax+0x08]
        mov      eax, 8
        mov      ecx, eax
        shl      ecx, 4
        sub      ecx, eax
        mov      rax, bword ptr [rdi+rcx]
        test     rax, rax
        je       G_M39247_IG31
 						;; size=96 bbWeight=1 PerfScore 20.75
 G_M39247_IG03:
        mov      rax, gword ptr [rax+0x10]
        test     rax, rax
        jne      SHORT G_M39247_IG05
 						;; size=9 bbWeight=1 PerfScore 3.25
 G_M39247_IG04:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.Numerics.Vector`1[float]]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
        call     [rax]System.Buffers.SharedArrayPool`1[System.Numerics.Vector`1[float]]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
 						;; size=15 bbWeight=0.50 PerfScore 1.75
 G_M39247_IG05:
        xor      ecx, ecx
        mov      dword ptr [rbp-0x30], 1
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x60], rax
        cmp      dword ptr [rax+0x08], r12d
        jbe      G_M39247_IG25
 						;; size=23 bbWeight=1 PerfScore 6.25
 G_M39247_IG06:
        mov      dword ptr [rbp-0x2C], 1
        test     r14b, r14b
        je       SHORT G_M39247_IG07
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; code for System.Array:Clear(System.Array)
        call     [rsi]System.Array:Clear(System.Array)
 						;; size=27 bbWeight=0.50 PerfScore 2.88
 G_M39247_IG07:
        mov      edi, 16
        shlx     edi, edi, r12d
        cmp      r13d, edi
-       jne      G_M39247_IG34
+       jne      G_M39247_IG33
        mov      edi, r12d
        shl      rdi, 4
-       mov      rax, gword ptr [rbp-0x68]
+       mov      rax, gword ptr [rbp-0x60]
        lea      r14, bword ptr [rax+rdi+0x10]
        mov      rax, gword ptr [r14]
-       mov      gword ptr [rbp-0x60], rax
-       mov      gword ptr [rbp-0x58], rbx
+       mov      gword ptr [rbp-0x58], rax
        mov      rdi, r14
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        xor      edi, edi
        mov      dword ptr [r14+0x08], edi
-       cmp      gword ptr [rbp-0x60], 0
-       mov      rbx, gword ptr [rbp-0x58]
-       je       SHORT G_M39247_IG11
+       mov      r14, gword ptr [rbp-0x58]
+       test     r14, r14
+       je       SHORT G_M39247_IG09
        mov      rdi, gword ptr [r15+0x10]
        cmp      r12d, dword ptr [rdi+0x08]
-       jae      G_M39247_IG36
+       jae      G_M39247_IG35
        mov      esi, r12d
        mov      rax, gword ptr [rdi+8*rsi+0x10]
        test     rax, rax
-       jne      SHORT G_M39247_IG10
-       mov      gword ptr [rbp-0x50], r15
+       jne      SHORT G_M39247_IG08
        mov      rdi, r15
        mov      esi, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[System.Numerics.Vector`1[float]]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
        call     [rax]System.Buffers.SharedArrayPool`1[System.Numerics.Vector`1[float]]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
-       mov      gword ptr [rbp-0x58], rbx
-						;; size=127 bbWeight=0.50 PerfScore 15.38
+						;; size=113 bbWeight=0.50 PerfScore 13.00
 G_M39247_IG08:
        mov      rax, gword ptr [rax+0x08]
-       mov      gword ptr [rbp-0x70], rax
+       mov      gword ptr [rbp-0x68], rax
+       mov      rdi, 0xD1FFAB1E
        mov      rcx, 0xD1FFAB1E      ; function address
-						;; size=18 bbWeight=0.50 PerfScore 1.62
+       call     rcx
+       add      rax, 76
+       mov      ecx, dword ptr [rax+0x10]
+       lea      edx, [rcx-0x01]
+       mov      dword ptr [rax+0x10], edx
+       movzx    rax, cx
+       test     eax, eax
+       jne      SHORT G_M39247_IG10
+       jmp      SHORT G_M39247_IG11
+						;; size=52 bbWeight=0.50 PerfScore 6.88
 G_M39247_IG09:
-       call     rcx ; Interop+Sys:SchedGetCpu():int
-       mov      ebx, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       je       SHORT G_M39247_IG12
-       jmp      G_M39247_IG32
-						;; size=24 bbWeight=0.50 PerfScore 4.75
-G_M39247_IG10:
-       mov      gword ptr [rbp-0x58], rbx
-       mov      gword ptr [rbp-0x50], r15
-       jmp      SHORT G_M39247_IG08
-						;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M39247_IG11:
        mov      ecx, dword ptr [rbp-0x2C]
        jmp      G_M39247_IG25
 						;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M39247_IG10:
+       mov      eax, ecx
+       sar      eax, 16
+       mov      edx, eax
+       jmp      SHORT G_M39247_IG12
+						;; size=9 bbWeight=0.50 PerfScore 1.50
+G_M39247_IG11:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       mov      edx, eax
+						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M39247_IG12:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M39247_IG33
+       je       G_M39247_IG32
 						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M39247_IG13:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
-       mov      eax, ebx
+       mov      eax, edx
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
-       mov      ebx, edx
-       xor      r15d, r15d
-       mov      r14, gword ptr [rbp-0x70]
-       mov      eax, dword ptr [r14+0x08]
-       mov      dword ptr [rbp-0x44], eax
-       test     eax, eax
+       mov      eax, edx
+       xor      ecx, ecx
+       mov      dword ptr [rbp-0x40], ecx
+       mov      rdx, gword ptr [rbp-0x68]
+       mov      esi, dword ptr [rdx+0x08]
+       mov      dword ptr [rbp-0x50], esi
+       test     esi, esi
        jle      G_M39247_IG22
-						;; size=40 bbWeight=0.50 PerfScore 15.75
+						;; size=41 bbWeight=0.50 PerfScore 16.25
 G_M39247_IG14:
-       cmp      ebx, eax
-       jae      G_M39247_IG36
-       mov      edi, ebx
-       mov      rcx, gword ptr [r14+8*rdi+0x10]
-       mov      gword ptr [rbp-0x78], rcx
-       cmp      byte  ptr [rcx], cl
-       xor      edx, edx
-       mov      dword ptr [rbp-0x3C], edx
-       mov      rdi, rcx
+       cmp      eax, esi
+       jae      G_M39247_IG35
+       mov      dword ptr [rbp-0x3C], eax
+       mov      edi, eax
+       mov      r8, gword ptr [rdx+8*rdi+0x10]
+       mov      gword ptr [rbp-0x70], r8
+       cmp      byte  ptr [r8], r8b
+       xor      r9d, r9d
+       mov      dword ptr [rbp-0x48], r9d
+       mov      rdi, r8
        call     System.Threading.Monitor:Enter(System.Object)
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      rdi, gword ptr [rax+0x08]
        mov      ecx, dword ptr [rax+0x10]
-       mov      dword ptr [rbp-0x40], ecx
+       mov      dword ptr [rbp-0x4C], ecx
        cmp      dword ptr [rdi+0x08], ecx
        jbe      SHORT G_M39247_IG17
-						;; size=53 bbWeight=4 PerfScore 80.00
+						;; size=59 bbWeight=4 PerfScore 84.00
 G_M39247_IG15:
        test     ecx, ecx
        jne      SHORT G_M39247_IG18
        xor      esi, esi
        mov      dword ptr [rax+0x14], esi
 						;; size=9 bbWeight=2 PerfScore 5.00
 G_M39247_IG16:
        movsxd   rsi, ecx
        lea      rdi, bword ptr [rdi+8*rsi+0x10]
-       mov      rsi, gword ptr [rbp-0x60]
+       mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
-       mov      edi, dword ptr [rbp-0x40]
+       mov      edi, dword ptr [rbp-0x4C]
        inc      edi
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      dword ptr [rax+0x10], edi
-       mov      dword ptr [rbp-0x3C], 1
-						;; size=36 bbWeight=2 PerfScore 15.00
+       mov      dword ptr [rbp-0x48], 1
+						;; size=35 bbWeight=2 PerfScore 13.50
 G_M39247_IG17:
        mov      rdi, rax
        call     System.Threading.Monitor:Exit(System.Object)
-       cmp      dword ptr [rbp-0x3C], 0
+       cmp      dword ptr [rbp-0x48], 0
        je       SHORT G_M39247_IG19
        jmp      SHORT G_M39247_IG23
 						;; size=16 bbWeight=4 PerfScore 25.00
 G_M39247_IG18:
        jmp      SHORT G_M39247_IG16
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M39247_IG19:
-       inc      ebx
-       mov      edi, dword ptr [rbp-0x44]
-       cmp      edi, ebx
+       mov      eax, dword ptr [rbp-0x3C]
+       inc      eax
+       mov      edi, eax
+       mov      esi, dword ptr [rbp-0x50]
+       cmp      esi, edi
        jne      SHORT G_M39247_IG21
-						;; size=9 bbWeight=4 PerfScore 10.00
+						;; size=14 bbWeight=4 PerfScore 15.00
 G_M39247_IG20:
-       xor      ebx, ebx
+       xor      edi, edi
 						;; size=2 bbWeight=2 PerfScore 0.50
 G_M39247_IG21:
-       inc      r15d
-       cmp      edi, r15d
+       mov      ecx, dword ptr [rbp-0x40]
+       inc      ecx
+       cmp      esi, ecx
+       mov      dword ptr [rbp-0x40], ecx
        mov      eax, edi
+       mov      rdx, gword ptr [rbp-0x68]
        jg       G_M39247_IG14
-						;; size=14 bbWeight=4 PerfScore 7.00
+						;; size=22 bbWeight=4 PerfScore 19.00
 G_M39247_IG22:
        xor      edx, edx
        jmp      SHORT G_M39247_IG24
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M39247_IG23:
        mov      edx, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M39247_IG24:
        mov      dword ptr [rbp-0x30], edx
        mov      ecx, dword ptr [rbp-0x2C]
-       mov      rbx, gword ptr [rbp-0x58]
-       mov      r15, gword ptr [rbp-0x50]
-						;; size=14 bbWeight=0.50 PerfScore 2.00
+						;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M39247_IG25:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       G_M39247_IG29
 						;; size=27 bbWeight=1 PerfScore 6.25
 G_M39247_IG26:
        test     r13d, r13d
        mov      dword ptr [rbp-0x2C], ecx
        je       G_M39247_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      dword ptr [rbp-0x34], eax
        mov      dword ptr [rbp-0x38], r13d
        cmp      byte  ptr [r15], r15b
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r8d, eax
        mov      rdi, r14
        mov      edx, dword ptr [rbp-0x34]
        mov      ecx, dword ptr [rbp-0x38]
        mov      esi, 3
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        mov      eax, dword ptr [rbp-0x2C]
        test     eax, dword ptr [rbp-0x30]
        jne      SHORT G_M39247_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ebx, eax
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        cmp      dword ptr [rbp-0x2C], 0
        je       SHORT G_M39247_IG27
        mov      r8d, r12d
        xor      r9d, r9d
        jmp      SHORT G_M39247_IG28
 						;; size=109 bbWeight=0.50 PerfScore 14.12
 G_M39247_IG27:
        mov      r8d, -1
        mov      r9d, 1
 						;; size=12 bbWeight=0.50 PerfScore 0.25
 G_M39247_IG28:
        mov      rdi, r14
        mov      esi, ebx
        mov      edx, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M39247_IG29:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M39247_IG30:
-       add      rsp, 88
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M39247_IG31:
        mov      edi, 15
        call     CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
        jmp      G_M39247_IG03
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M39247_IG32:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M39247_IG12
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M39247_IG33:
+       mov      dword ptr [rbp-0x44], edx
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
+       mov      edx, dword ptr [rbp-0x44]
        jmp      G_M39247_IG13
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M39247_IG34:
+						;; size=26 bbWeight=0 PerfScore 0.00
+G_M39247_IG33:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_ArgumentException_BufferNotFromPool():System.String
        call     [rax]System.SR:get_ArgumentException_BufferNotFromPool():System.String
        mov      r15, rax
        mov      edi, 987
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
-G_M39247_IG35:
+G_M39247_IG34:
        mov      edi, 2
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M39247_IG36:
+G_M39247_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 950, prolog size 34, PerfScore 259.62, instruction count 244, allocated bytes for code 950 (MethodHash=7c1266b0) for method System.Buffers.SharedArrayPool`1[System.Numerics.Vector`1[float]]:Return(System.Numerics.Vector`1[float][],ubyte):this (FullOpts)
+; Total bytes of code 960, prolog size 28, PerfScore 278.00, instruction count 253, allocated bytes for code 960 (MethodHash=7c1266b0) for method System.Buffers.SharedArrayPool`1[System.Numerics.Vector`1[float]]:Return(System.Numerics.Vector`1[float][],ubyte):this (FullOpts)
10 (1.07 % of base) - System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this
 ; Assembly listing for method System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  8,  5   )     ref  ->  [rbp-0x50]  this class-hnd single-def <System.Buffers.SharedArrayPool`1[ushort]>
-;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  [rbp-0x58]  class-hnd single-def <ushort[]>
+;  V00 this         [V00,T09] (  8,  5   )     ref  ->  r15         this class-hnd single-def <System.Buffers.SharedArrayPool`1[ushort]>
+;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  rbx         class-hnd single-def <ushort[]>
 ;  V02 arg2         [V02,T14] (  3,  2.50)   ubyte  ->  r14         single-def
 ;  V03 loc0         [V03,T12] (  8,  5   )     int  ->  r12        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T23] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
-;  V06 loc3         [V06,T25] (  3,  2   )   ubyte  ->  [rbp-0x30] 
-;  V07 loc4         [V07,T20] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T21] (  3,  3   )     ref  ->  [rbp-0x60]  class-hnd spill-single-def <System.Array>
+;  V05 loc2         [V05,T24] (  4,  2.50)   ubyte  ->  [rbp-0x2C] 
+;  V06 loc3         [V06,T26] (  3,  2   )   ubyte  ->  [rbp-0x30] 
+;  V07 loc4         [V07,T21] (  4,  3   )     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T22] (  3,  3   )     ref  ->  [rbp-0x58]  class-hnd spill-single-def <System.Array>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T19] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V11 tmp2         [V11,T16] (  5,  4   )     ref  ->  [rbp-0x68] 
-;  V12 tmp3         [V12,T27] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
-;  V13 tmp4         [V13,T28] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
-;  V14 tmp5         [V14,T29] (  2,  2   )     int  ->  rbx         "impAppendStmt"
-;  V15 tmp6         [V15,T30] (  2,  2   )     int  ->  r13         "impAppendStmt"
+;  V10 tmp1         [V10,T20] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V11 tmp2         [V11,T16] (  5,  4   )     ref  ->  [rbp-0x60] 
+;  V12 tmp3         [V12,T28] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
+;  V13 tmp4         [V13,T29] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
+;  V14 tmp5         [V14,T30] (  2,  2   )     int  ->  rbx         "impAppendStmt"
+;  V15 tmp6         [V15,T31] (  2,  2   )     int  ->  r13         "impAppendStmt"
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
-;  V19 tmp10        [V19,T36] (  2,  1   )     int  ->  rcx        
+;  V19 tmp10        [V19,T40] (  2,  1   )     int  ->  rcx        
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
-;  V24 tmp15        [V24,T33] (  3,  1.50)     int  ->   r8        
+;  V24 tmp15        [V24,T35] (  3,  1.50)     int  ->   r8        
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp17        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp19        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp24        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;  V35 tmp26        [V35,T34] (  3,  1.50)     int  ->   r9        
+;  V35 tmp26        [V35,T36] (  3,  1.50)     int  ->   r9        
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V37 tmp28        [V37,T17] (  4,  4   )   byref  ->  r14         single-def "dup spill"
 ;* V38 tmp29        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V39 tmp30        [V39,T26] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V40 tmp31        [V40,T24] (  4,  2   )     ref  ->  rax        
-;  V41 tmp32        [V41,T39] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V39 tmp30        [V39,T27] (  2,  2   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V40 tmp31        [V40,T25] (  4,  2   )     ref  ->  rax        
+;  V41 tmp32        [V41,T43] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp34        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V44 tmp35        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp36        [V45,T35] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
-;  V46 tmp37        [V46,T13] (  3,  5   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
-;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  rbx         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  r15         "Inline stloc first use temp"
-;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rbx         "dup spill"
+;  V45 tmp36        [V45,T37] (  3,  1.50)   ubyte  ->  rdx         "Inline return value spill temp"
+;  V46 tmp37        [V46,T13] (  3,  5   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V47 tmp38        [V47,T01] (  7, 22.50)     int  ->  [rbp-0x3C]  "Inline stloc first use temp"
+;  V48 tmp39        [V48,T05] (  4, 12.50)     int  ->  [rbp-0x40]  "Inline stloc first use temp"
+;  V49 tmp40        [V49,T02] (  2, 16   )     int  ->  rax         "dup spill"
 ;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V51 tmp42        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V52 tmp43        [V52,T07] (  3, 10   )   ubyte  ->  [rbp-0x3C]  "Inline stloc first use temp"
-;  V53 tmp44        [V53,T00] (  8, 56   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V54 tmp45        [V54,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V55 tmp46        [V55,T03] (  5, 14   )     int  ->  [rbp-0x40]  spill-single-def "Inline stloc first use temp"
-;  V56 tmp47        [V56,T31] (  2,  2   )     int  ->   r8         "Inlining Arg"
-;* V57 tmp48        [V57,T37] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
-;* V58 tmp49        [V58,T38] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
-;  V59 tmp50        [V59,T22] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
-;  V60 tmp51        [V60,T40] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
-;  V61 tmp52        [V61,T41] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V62 cse0         [V62,T04] (  5, 13   )     int  ->  [rbp-0x44]  spill-single-def "CSE #04: aggressive"
-;  V63 cse1         [V63,T15] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
-;  V64 rat0         [V64,T32] (  2,  2   )     int  ->  rbx         "Spilling to split statement for tree"
-;  V65 rat1         [V65,T18] (  3,  4   )   byref  ->  rax         "TLS field access"
-;  V66 rat2         [V66,T11] (  3,  6   )    long  ->  rax         "TLS access"
-;  V67 rat3         [V67,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V51 tmp42        [V51,T38] (  3,  1.50)     int  ->  [rbp-0x44]  "Inline return value spill temp"
+;  V52 tmp43        [V52,T18] (  4,  4   )     int  ->  rcx         "dup spill"
+;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V54 tmp45        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V55 tmp46        [V55,T07] (  3, 10   )   ubyte  ->  [rbp-0x48]  "Inline stloc first use temp"
+;  V56 tmp47        [V56,T00] (  8, 56   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V57 tmp48        [V57,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V58 tmp49        [V58,T03] (  5, 14   )     int  ->  [rbp-0x4C]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp50        [V59,T32] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;* V60 tmp51        [V60,T41] (  0,  0   )     ref  ->  zero-ref    single-def "field V38.Array (fldOffset=0x0)" P-INDEP
+;* V61 tmp52        [V61,T42] (  0,  0   )     int  ->  zero-ref    "field V38.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
+;  V62 tmp53        [V62,T23] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
+;  V63 tmp54        [V63,T44] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
+;  V64 tmp55        [V64,T45] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V65 cse0         [V65,T39] (  3,  1.50)    long  ->  rax         "CSE #04: moderate"
+;  V66 cse1         [V66,T04] (  5, 13   )     int  ->  [rbp-0x50]  spill-single-def "CSE #05: aggressive"
+;  V67 cse2         [V67,T15] (  6,  4   )     int  ->  r13         "CSE #01: moderate"
+;  V68 rat0         [V68,T19] (  3,  4   )   byref  ->  rax         "TLS field access"
+;  V69 rat1         [V69,T11] (  3,  6   )    long  ->  rax         "TLS access"
+;  V70 rat2         [V70,T10] (  3,  6   )   byref  ->  rax         "ThreadStaticBlockBase access"
+;  V71 rat3         [V71,T33] (  2,  2   )    long  ->  rax         "TLS field access"
+;  V72 rat4         [V72,T34] (  2,  2   )    long  ->  rax         "TLS access"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M2831_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 88
-       vzeroupper 
-       lea      rbp, [rsp+0x80]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        mov      r15, rdi
        mov      rbx, rsi
        mov      r14d, edx
-						;; size=34 bbWeight=1 PerfScore 8.50
+						;; size=28 bbWeight=1 PerfScore 7.50
 G_M2831_IG02:
        test     rbx, rbx
-       je       G_M2831_IG35
+       je       G_M2831_IG34
        mov      r13d, dword ptr [rbx+0x08]
        lea      edi, [r13-0x01]
        or       edi, 15
        xor      r12d, r12d
        lzcnt    r12d, edi
        xor      r12d, 31
        add      r12d, -3
        mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
        call     rax
        cmp      dword ptr [rax], 8
        jle      G_M2831_IG31
        mov      rdi, gword ptr [rax+0x08]
        mov      rax, bword ptr [rdi+0x40]
        test     rax, rax
        je       G_M2831_IG31
 						;; size=84 bbWeight=1 PerfScore 19.50
 G_M2831_IG03:
        mov      rax, gword ptr [rax+0x10]
        test     rax, rax
        jne      SHORT G_M2831_IG05
 						;; size=9 bbWeight=1 PerfScore 3.25
 G_M2831_IG04:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[ushort]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
        call     [rax]System.Buffers.SharedArrayPool`1[ushort]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPoolThreadLocalArray[]:this
 						;; size=15 bbWeight=0.50 PerfScore 1.75
 G_M2831_IG05:
        xor      ecx, ecx
        mov      dword ptr [rbp-0x30], 1
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x60], rax
        cmp      dword ptr [rax+0x08], r12d
        jbe      G_M2831_IG25
 						;; size=23 bbWeight=1 PerfScore 6.25
 G_M2831_IG06:
        mov      dword ptr [rbp-0x2C], 1
        test     r14b, r14b
        je       SHORT G_M2831_IG07
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; code for System.Array:Clear(System.Array)
        call     [rsi]System.Array:Clear(System.Array)
 						;; size=27 bbWeight=0.50 PerfScore 2.88
 G_M2831_IG07:
        mov      edi, 16
        shlx     edi, edi, r12d
        cmp      r13d, edi
-       jne      G_M2831_IG34
+       jne      G_M2831_IG33
        mov      edi, r12d
        shl      rdi, 4
-       mov      rax, gword ptr [rbp-0x68]
+       mov      rax, gword ptr [rbp-0x60]
        lea      r14, bword ptr [rax+rdi+0x10]
        mov      rax, gword ptr [r14]
-       mov      gword ptr [rbp-0x60], rax
-       mov      gword ptr [rbp-0x58], rbx
+       mov      gword ptr [rbp-0x58], rax
        mov      rdi, r14
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        xor      edi, edi
        mov      dword ptr [r14+0x08], edi
-       cmp      gword ptr [rbp-0x60], 0
-       mov      rbx, gword ptr [rbp-0x58]
-       je       SHORT G_M2831_IG11
+       mov      r14, gword ptr [rbp-0x58]
+       test     r14, r14
+       je       SHORT G_M2831_IG09
        mov      rdi, gword ptr [r15+0x10]
        cmp      r12d, dword ptr [rdi+0x08]
-       jae      G_M2831_IG36
+       jae      G_M2831_IG35
        mov      esi, r12d
        mov      rax, gword ptr [rdi+8*rsi+0x10]
        test     rax, rax
-       jne      SHORT G_M2831_IG10
-       mov      gword ptr [rbp-0x50], r15
+       jne      SHORT G_M2831_IG08
        mov      rdi, r15
        mov      esi, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[ushort]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
        call     [rax]System.Buffers.SharedArrayPool`1[ushort]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPoolPartitions:this
-       mov      gword ptr [rbp-0x58], rbx
-						;; size=127 bbWeight=0.50 PerfScore 15.38
+						;; size=113 bbWeight=0.50 PerfScore 13.00
 G_M2831_IG08:
        mov      rax, gword ptr [rax+0x08]
-       mov      gword ptr [rbp-0x70], rax
+       mov      gword ptr [rbp-0x68], rax
+       mov      rdi, 0xD1FFAB1E
        mov      rcx, 0xD1FFAB1E      ; function address
-						;; size=18 bbWeight=0.50 PerfScore 1.62
+       call     rcx
+       add      rax, 76
+       mov      ecx, dword ptr [rax+0x10]
+       lea      edx, [rcx-0x01]
+       mov      dword ptr [rax+0x10], edx
+       movzx    rax, cx
+       test     eax, eax
+       jne      SHORT G_M2831_IG10
+       jmp      SHORT G_M2831_IG11
+						;; size=52 bbWeight=0.50 PerfScore 6.88
 G_M2831_IG09:
-       call     rcx ; Interop+Sys:SchedGetCpu():int
-       mov      ebx, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       je       SHORT G_M2831_IG12
-       jmp      G_M2831_IG32
-						;; size=24 bbWeight=0.50 PerfScore 4.75
-G_M2831_IG10:
-       mov      gword ptr [rbp-0x58], rbx
-       mov      gword ptr [rbp-0x50], r15
-       jmp      SHORT G_M2831_IG08
-						;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M2831_IG11:
        mov      ecx, dword ptr [rbp-0x2C]
        jmp      G_M2831_IG25
 						;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M2831_IG10:
+       mov      eax, ecx
+       sar      eax, 16
+       mov      edx, eax
+       jmp      SHORT G_M2831_IG12
+						;; size=9 bbWeight=0.50 PerfScore 1.50
+G_M2831_IG11:
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       mov      edx, eax
+						;; size=14 bbWeight=0.50 PerfScore 1.75
 G_M2831_IG12:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M2831_IG33
+       je       G_M2831_IG32
 						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M2831_IG13:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
-       mov      eax, ebx
+       mov      eax, edx
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
-       mov      ebx, edx
-       xor      r15d, r15d
-       mov      r14, gword ptr [rbp-0x70]
-       mov      eax, dword ptr [r14+0x08]
-       mov      dword ptr [rbp-0x44], eax
-       test     eax, eax
+       mov      eax, edx
+       xor      ecx, ecx
+       mov      dword ptr [rbp-0x40], ecx
+       mov      rdx, gword ptr [rbp-0x68]
+       mov      esi, dword ptr [rdx+0x08]
+       mov      dword ptr [rbp-0x50], esi
+       test     esi, esi
        jle      G_M2831_IG22
-						;; size=40 bbWeight=0.50 PerfScore 15.75
+						;; size=41 bbWeight=0.50 PerfScore 16.25
 G_M2831_IG14:
-       cmp      ebx, eax
-       jae      G_M2831_IG36
-       mov      edi, ebx
-       mov      rcx, gword ptr [r14+8*rdi+0x10]
-       mov      gword ptr [rbp-0x78], rcx
-       cmp      byte  ptr [rcx], cl
-       xor      edx, edx
-       mov      dword ptr [rbp-0x3C], edx
-       mov      rdi, rcx
+       cmp      eax, esi
+       jae      G_M2831_IG35
+       mov      dword ptr [rbp-0x3C], eax
+       mov      edi, eax
+       mov      r8, gword ptr [rdx+8*rdi+0x10]
+       mov      gword ptr [rbp-0x70], r8
+       cmp      byte  ptr [r8], r8b
+       xor      r9d, r9d
+       mov      dword ptr [rbp-0x48], r9d
+       mov      rdi, r8
        call     System.Threading.Monitor:Enter(System.Object)
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      rdi, gword ptr [rax+0x08]
        mov      ecx, dword ptr [rax+0x10]
-       mov      dword ptr [rbp-0x40], ecx
+       mov      dword ptr [rbp-0x4C], ecx
        cmp      dword ptr [rdi+0x08], ecx
        jbe      SHORT G_M2831_IG17
-						;; size=53 bbWeight=4 PerfScore 80.00
+						;; size=59 bbWeight=4 PerfScore 84.00
 G_M2831_IG15:
        test     ecx, ecx
        jne      SHORT G_M2831_IG18
        xor      esi, esi
        mov      dword ptr [rax+0x14], esi
 						;; size=9 bbWeight=2 PerfScore 5.00
 G_M2831_IG16:
        movsxd   rsi, ecx
        lea      rdi, bword ptr [rdi+8*rsi+0x10]
-       mov      rsi, gword ptr [rbp-0x60]
+       mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
-       mov      edi, dword ptr [rbp-0x40]
+       mov      edi, dword ptr [rbp-0x4C]
        inc      edi
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0x70]
        mov      dword ptr [rax+0x10], edi
-       mov      dword ptr [rbp-0x3C], 1
-						;; size=36 bbWeight=2 PerfScore 15.00
+       mov      dword ptr [rbp-0x48], 1
+						;; size=35 bbWeight=2 PerfScore 13.50
 G_M2831_IG17:
        mov      rdi, rax
        call     System.Threading.Monitor:Exit(System.Object)
-       cmp      dword ptr [rbp-0x3C], 0
+       cmp      dword ptr [rbp-0x48], 0
        je       SHORT G_M2831_IG19
        jmp      SHORT G_M2831_IG23
 						;; size=16 bbWeight=4 PerfScore 25.00
 G_M2831_IG18:
        jmp      SHORT G_M2831_IG16
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M2831_IG19:
-       inc      ebx
-       mov      edi, dword ptr [rbp-0x44]
-       cmp      edi, ebx
+       mov      eax, dword ptr [rbp-0x3C]
+       inc      eax
+       mov      edi, eax
+       mov      esi, dword ptr [rbp-0x50]
+       cmp      esi, edi
        jne      SHORT G_M2831_IG21
-						;; size=9 bbWeight=4 PerfScore 10.00
+						;; size=14 bbWeight=4 PerfScore 15.00
 G_M2831_IG20:
-       xor      ebx, ebx
+       xor      edi, edi
 						;; size=2 bbWeight=2 PerfScore 0.50
 G_M2831_IG21:
-       inc      r15d
-       cmp      edi, r15d
+       mov      ecx, dword ptr [rbp-0x40]
+       inc      ecx
+       cmp      esi, ecx
+       mov      dword ptr [rbp-0x40], ecx
        mov      eax, edi
+       mov      rdx, gword ptr [rbp-0x68]
        jg       G_M2831_IG14
-						;; size=14 bbWeight=4 PerfScore 7.00
+						;; size=22 bbWeight=4 PerfScore 19.00
 G_M2831_IG22:
        xor      edx, edx
        jmp      SHORT G_M2831_IG24
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M2831_IG23:
        mov      edx, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M2831_IG24:
        mov      dword ptr [rbp-0x30], edx
        mov      ecx, dword ptr [rbp-0x2C]
-       mov      rbx, gword ptr [rbp-0x58]
-       mov      r15, gword ptr [rbp-0x50]
-						;; size=14 bbWeight=0.50 PerfScore 2.00
+						;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M2831_IG25:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       G_M2831_IG29
 						;; size=27 bbWeight=1 PerfScore 6.25
 G_M2831_IG26:
        test     r13d, r13d
        mov      dword ptr [rbp-0x2C], ecx
        je       G_M2831_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      dword ptr [rbp-0x34], eax
        mov      dword ptr [rbp-0x38], r13d
        cmp      byte  ptr [r15], r15b
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r8d, eax
        mov      rdi, r14
        mov      edx, dword ptr [rbp-0x34]
        mov      ecx, dword ptr [rbp-0x38]
        mov      esi, 3
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
        mov      eax, dword ptr [rbp-0x2C]
        test     eax, dword ptr [rbp-0x30]
        jne      SHORT G_M2831_IG29
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ebx, eax
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        cmp      dword ptr [rbp-0x2C], 0
        je       SHORT G_M2831_IG27
        mov      r8d, r12d
        xor      r9d, r9d
        jmp      SHORT G_M2831_IG28
 						;; size=109 bbWeight=0.50 PerfScore 14.12
 G_M2831_IG27:
        mov      r8d, -1
        mov      r9d, 1
 						;; size=12 bbWeight=0.50 PerfScore 0.25
 G_M2831_IG28:
        mov      rdi, r14
        mov      esi, ebx
        mov      edx, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this
 						;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M2831_IG29:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M2831_IG30:
-       add      rsp, 88
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M2831_IG31:
        mov      edi, 8
        call     CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
        jmp      G_M2831_IG03
 						;; size=15 bbWeight=0 PerfScore 0.00
 G_M2831_IG32:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M2831_IG12
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M2831_IG33:
+       mov      dword ptr [rbp-0x44], edx
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
+       mov      edx, dword ptr [rbp-0x44]
        jmp      G_M2831_IG13
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M2831_IG34:
+						;; size=26 bbWeight=0 PerfScore 0.00
+G_M2831_IG33:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_ArgumentException_BufferNotFromPool():System.String
        call     [rax]System.SR:get_ArgumentException_BufferNotFromPool():System.String
        mov      r15, rax
        mov      edi, 987
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=83 bbWeight=0 PerfScore 0.00
-G_M2831_IG35:
+G_M2831_IG34:
        mov      edi, 2
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
-G_M2831_IG36:
+G_M2831_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 938, prolog size 34, PerfScore 258.38, instruction count 240, allocated bytes for code 938 (MethodHash=fb8ef4f0) for method System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this (FullOpts)
+; Total bytes of code 948, prolog size 28, PerfScore 276.75, instruction count 249, allocated bytes for code 948 (MethodHash=fb8ef4f0) for method System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this (FullOpts)
2 (0.21 % of base) - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this
 ; Assembly listing for method System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 17 single block inlinees; 5 inlinees without PGO data
+; 0 inlinees with PGO data; 16 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] ( 11,  7   )     ref  ->  [rbp-0x48]  this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
+;  V00 this         [V00,T08] ( 11,  7   )     ref  ->  rbx         this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.__Canon]>
 ;  V01 arg1         [V01,T10] (  7,  5   )     int  ->  r15        
-;  V02 loc0         [V02,T14] (  8,  4.50)     ref  ->  [rbp-0x50]  class-hnd exact spill-single-def <System.Buffers.ArrayPoolEventSource>
+;  V02 loc0         [V02,T14] (  8,  4.50)     ref  ->  r14         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
 ;  V03 loc1         [V03,T11] ( 13,  6.50)     ref  ->  registers   class-hnd <System.__Canon[]>
 ;  V04 loc2         [V04,T12] (  9,  5   )     int  ->  r13        
-;  V05 loc3         [V05,T15] (  5,  3.50)     ref  ->  r12         class-hnd exact single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V06 loc4         [V06,T37] (  3,  1.50)     ref  ->  r12         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions[]>
-;  V07 loc5         [V07,T38] (  3,  1.50)     ref  ->  rax         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
-;  V08 loc6         [V08,T40] (  3,  1.50)     int  ->  r15        
+;  V05 loc3         [V05,T16] (  5,  3.50)     ref  ->  r12         class-hnd exact single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V06 loc4         [V06,T39] (  3,  1.50)     ref  ->  r12         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions[]>
+;  V07 loc5         [V07,T40] (  3,  1.50)     ref  ->  rdi         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
+;  V08 loc6         [V08,T42] (  3,  1.50)     int  ->  r15        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V11 tmp2         [V11,T25] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
-;  V12 tmp3         [V12,T26] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
-;  V13 tmp4         [V13,T27] (  2,  2   )     int  ->  rcx         "impAppendStmt"
+;  V11 tmp2         [V11,T26] (  2,  2   )     int  ->  [rbp-0x34]  spill-single-def "impAppendStmt"
+;  V12 tmp3         [V12,T27] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "impAppendStmt"
+;  V13 tmp4         [V13,T28] (  2,  2   )     int  ->  rcx         "impAppendStmt"
 ;* V14 tmp5         [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
 ;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp10        [V19    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
-;  V24 tmp15        [V24,T42] (  2,  1   )     int  ->   r9        
+;  V24 tmp15        [V24,T46] (  2,  1   )     int  ->   r9        
 ;* V25 tmp16        [V25    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V26 tmp17        [V26,T28] (  2,  2   )     int  ->  r15         "impAppendStmt"
-;  V27 tmp18        [V27,T29] (  2,  2   )     int  ->  [rbp-0x3C]  spill-single-def "impAppendStmt"
-;  V28 tmp19        [V28,T30] (  2,  2   )     int  ->  r12         "impAppendStmt"
-;  V29 tmp20        [V29,T31] (  2,  2   )     int  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
+;  V26 tmp17        [V26,T29] (  2,  2   )     int  ->  r15         "impAppendStmt"
+;  V27 tmp18        [V27,T30] (  2,  2   )     int  ->  [rbp-0x3C]  spill-single-def "impAppendStmt"
+;  V28 tmp19        [V28,T31] (  2,  2   )     int  ->  r12         "impAppendStmt"
+;  V29 tmp20        [V29,T32] (  2,  2   )     int  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V32 tmp23        [V32,T39] (  3,  1.50)     ref  ->  rcx         class-hnd "Inline return value spill temp" <System.Array>
-;  V33 tmp24        [V33,T13] (  3,  5   )     ref  ->  [rbp-0x58]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
+;  V32 tmp23        [V32,T41] (  3,  1.50)     ref  ->  rcx         class-hnd "Inline return value spill temp" <System.Array>
+;  V33 tmp24        [V33,T13] (  3,  5   )     ref  ->  r12         class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions+Partition[]>
 ;  V34 tmp25        [V34,T01] (  7, 22.50)     int  ->  r15         "Inline stloc first use temp"
-;  V35 tmp26        [V35,T05] (  4, 12.50)     int  ->  rbx         "Inline stloc first use temp"
+;  V35 tmp26        [V35,T05] (  4, 12.50)     int  ->  [rbp-0x44]  "Inline stloc first use temp"
 ;* V36 tmp27        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
 ;* V37 tmp28        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Array>
 ;  V38 tmp29        [V38,T02] (  2, 16   )     int  ->  r15         "dup spill"
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V40 tmp31        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V41 tmp32        [V41,T07] (  4, 10.50)     ref  ->  [rbp-0x60]  class-hnd "Inline stloc first use temp" <System.Array>
-;  V42 tmp33        [V42,T00] (  7, 52   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V43 tmp34        [V43,T06] (  4, 12   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
-;  V44 tmp35        [V44,T03] (  5, 14   )     int  ->  rcx         "Inline stloc first use temp"
-;* V45 tmp36        [V45    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.__Canon[]>
-;* V46 tmp37        [V46    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V47 tmp38        [V47    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V48 tmp39        [V48,T19] (  3,  2.20)    long  ->  rdi         "argument with side effect"
-;  V49 tmp40        [V49,T32] (  2,  2   )    long  ->  rdi         "argument with side effect"
-;  V50 tmp41        [V50,T33] (  2,  2   )     int  ->  rcx         "argument with side effect"
-;  V51 tmp42        [V51,T34] (  2,  2   )     int  ->  rcx         "argument with side effect"
-;  V52 tmp43        [V52,T35] (  2,  2   )     int  ->  rcx         "argument with side effect"
-;  V53 cse0         [V53,T43] (  2,  1   )     int  ->  rdi         "CSE #04: moderate"
-;  V54 cse1         [V54,T41] (  3,  1.50)    long  ->  rax         "CSE #03: moderate"
-;  V55 cse2         [V55,T04] (  5, 13   )     int  ->  r14         "CSE #05: moderate"
-;  V56 cse3         [V56,T09] (  2,  8   )     int  ->  rdx         "CSE #06: moderate"
-;  V57 cse4         [V57,T44] (  2,  1   )     int  ->  rdi         "CSE #01: moderate"
-;  V58 rat0         [V58,T20] (  3,  2.20)    long  ->  rdi         "Spilling to split statement for tree"
-;  V59 rat1         [V59,T22] (  3,  2   )    long  ->  rsi         "runtime lookup"
-;  V60 rat2         [V60,T16] (  3,  2.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V61 rat3         [V61,T21] (  3,  2.20)    long  ->  rdi         "Spilling to split statement for tree"
-;  V62 rat4         [V62,T23] (  3,  2   )    long  ->  rdi         "runtime lookup"
-;  V63 rat5         [V63,T17] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V64 rat6         [V64,T24] (  3,  2   )    long  ->  rdi         "runtime lookup"
-;  V65 rat7         [V65,T18] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V66 rat8         [V66,T36] (  2,  2   )     int  ->  r15         "Spilling to split statement for tree"
+;  V40 tmp31        [V40,T43] (  3,  1.50)     int  ->  r15         "Inline return value spill temp"
+;  V41 tmp32        [V41,T15] (  4,  4   )     int  ->  r15         "dup spill"
+;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V43 tmp34        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
+;  V44 tmp35        [V44,T07] (  4, 10.50)     ref  ->  [rbp-0x50]  class-hnd "Inline stloc first use temp" <System.Array>
+;  V45 tmp36        [V45,T00] (  7, 52   )     ref  ->  [rbp-0x58]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V46 tmp37        [V46,T06] (  4, 12   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.Array[]>
+;  V47 tmp38        [V47,T03] (  5, 14   )     int  ->  rax         "Inline stloc first use temp"
+;* V48 tmp39        [V48    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.__Canon[]>
+;* V49 tmp40        [V49    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V50 tmp41        [V50    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;  V51 tmp42        [V51,T20] (  3,  2.20)    long  ->  rdi         "argument with side effect"
+;  V52 tmp43        [V52,T33] (  2,  2   )    long  ->  rdi         "argument with side effect"
+;  V53 tmp44        [V53,T34] (  2,  2   )     int  ->  rcx         "argument with side effect"
+;  V54 tmp45        [V54,T35] (  2,  2   )     int  ->  rcx         "argument with side effect"
+;  V55 tmp46        [V55,T36] (  2,  2   )     int  ->  rcx         "argument with side effect"
+;  V56 cse0         [V56,T44] (  3,  1.50)    long  ->  rax         "CSE #05: conservative"
+;  V57 cse1         [V57,T47] (  2,  1   )     int  ->  rdi         "CSE #04: conservative"
+;  V58 cse2         [V58,T45] (  3,  1.50)    long  ->  rax         "CSE #03: conservative"
+;  V59 cse3         [V59,T04] (  5, 13   )     int  ->  [rbp-0x48]  spill-single-def "CSE #06: moderate"
+;  V60 cse4         [V60,T09] (  2,  8   )     int  ->  rcx         "CSE #07: moderate"
+;  V61 cse5         [V61,T48] (  2,  1   )     int  ->  rdi         "CSE #01: conservative"
+;  V62 rat0         [V62,T21] (  3,  2.20)    long  ->  rdi         "Spilling to split statement for tree"
+;  V63 rat1         [V63,T23] (  3,  2   )    long  ->  rsi         "runtime lookup"
+;  V64 rat2         [V64,T17] (  3,  2.80)    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V65 rat3         [V65,T22] (  3,  2.20)    long  ->  rdi         "Spilling to split statement for tree"
+;  V66 rat4         [V66,T24] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V67 rat5         [V67,T18] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V68 rat6         [V68,T25] (  3,  2   )    long  ->  rdi         "runtime lookup"
+;  V69 rat7         [V69,T19] (  3,  2.80)    long  ->  rax         "fgMakeTemp is creating a new local variable"
+;  V70 rat8         [V70,T37] (  2,  2   )    long  ->  rax         "TLS field access"
+;  V71 rat9         [V71,T38] (  2,  2   )    long  ->  rax         "TLS access"
 ;
-; Lcl frame size = 72
+; Lcl frame size = 56
 
 G_M45970_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 72
-       vzeroupper 
-       lea      rbp, [rsp+0x70]
+       sub      rsp, 56
+       lea      rbp, [rsp+0x60]
        mov      qword ptr [rbp-0x30], rdi
        mov      rbx, rdi
        mov      r15d, esi
-						;; size=32 bbWeight=1 PerfScore 9.25
+						;; size=29 bbWeight=1 PerfScore 8.25
 G_M45970_IG02:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
-       mov      gword ptr [rbp-0x50], r14
        lea      edi, [r15-0x01]
        or       edi, 15
        xor      r13d, r13d
        lzcnt    r13d, edi
        xor      r13d, 31
        add      r13d, -3
        mov      rdi, qword ptr [rbx]
        call     CORINFO_HELP_GET_GCTHREADSTATIC_BASE
        mov      r12, gword ptr [rax+0x10]
        test     r12, r12
        je       SHORT G_M45970_IG04
-						;; size=57 bbWeight=1 PerfScore 13.00
+						;; size=53 bbWeight=1 PerfScore 12.00
 G_M45970_IG03:
        mov      edi, dword ptr [r12+0x08]
        cmp      edi, r13d
        jbe      SHORT G_M45970_IG04
        mov      eax, r13d
        shl      rax, 4
        mov      rcx, gword ptr [r12+rax+0x10]
        test     rcx, rcx
        jne      G_M45970_IG31
 						;; size=31 bbWeight=0.50 PerfScore 3.62
 G_M45970_IG04:
        mov      r12, gword ptr [rbx+0x10]
        mov      edi, dword ptr [r12+0x08]
        cmp      edi, r13d
        ja       SHORT G_M45970_IG10
        test     r15d, r15d
        je       SHORT G_M45970_IG05
        mov      edi, r15d
        mov      rsi, 0xD1FFAB1E      ; 'minimumLength'
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
        call     [rax]System.ArgumentOutOfRangeException:ThrowIfNegative[int](int,System.String)
        jmp      G_M45970_IG23
 						;; size=49 bbWeight=0.50 PerfScore 6.12
 G_M45970_IG05:
-       mov      gword ptr [rbp-0x48], rbx
        mov      rdi, qword ptr [rbx]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi+0x08]
        mov      rsi, qword ptr [rsi+0x18]
        test     rsi, rsi
        je       SHORT G_M45970_IG07
-						;; size=24 bbWeight=0.50 PerfScore 5.12
+						;; size=20 bbWeight=0.50 PerfScore 4.62
 G_M45970_IG06:
        jmp      SHORT G_M45970_IG08
 						;; size=2 bbWeight=0.40 PerfScore 0.80
 G_M45970_IG07:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rsi, rax
 						;; size=18 bbWeight=0.10 PerfScore 0.15
 G_M45970_IG08:
        mov      rdi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Array:Empty[System.__Canon]():System.__Canon[]
 						;; size=13 bbWeight=0.50 PerfScore 0.25
 G_M45970_IG09:
-       add      rsp, 72
+       add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Array:Empty[System.__Canon]():System.__Canon[]
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M45970_IG10:
-       mov      eax, r13d
-       mov      rax, gword ptr [r12+8*rax+0x10]
-       test     rax, rax
+       mov      edi, r13d
+       mov      rdi, gword ptr [r12+8*rdi+0x10]
+       test     rdi, rdi
        je       G_M45970_IG22
-       mov      gword ptr [rbp-0x48], rbx
-       mov      r12, gword ptr [rax+0x08]
-       mov      gword ptr [rbp-0x58], r12
+       mov      r12, gword ptr [rdi+0x08]
+       mov      rdi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; function address
-						;; size=39 bbWeight=0.50 PerfScore 3.88
+       call     rax
+       add      rax, 76
+       mov      r15d, dword ptr [rax+0x10]
+       lea      ecx, [r15-0x01]
+       mov      dword ptr [rax+0x10], ecx
+       movzx    rax, r15w
+       test     eax, eax
+       je       SHORT G_M45970_IG11
+       sar      r15d, 16
+       jmp      SHORT G_M45970_IG12
+						;; size=72 bbWeight=0.50 PerfScore 8.38
 G_M45970_IG11:
-       call     rax ; Interop+Sys:SchedGetCpu():int
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
+       call     [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
        mov      r15d, eax
-       mov      rax, 0xD1FFAB1E      ; global ptr
-       cmp      dword ptr [rax], 0
-       jne      G_M45970_IG35
-						;; size=24 bbWeight=0.50 PerfScore 3.75
+						;; size=15 bbWeight=0.50 PerfScore 1.75
 G_M45970_IG12:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M45970_IG36
+       je       G_M45970_IG35
 						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M45970_IG13:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount
        mov      eax, r15d
        xor      edx, edx
        div      edx:eax, dword ptr [rdi]
        mov      r15d, edx
-       xor      ebx, ebx
-       mov      r12, gword ptr [rbp-0x58]
-       mov      r14d, dword ptr [r12+0x08]
-       test     r14d, r14d
-       jle      SHORT G_M45970_IG19
-						;; size=36 bbWeight=0.50 PerfScore 15.25
+       xor      eax, eax
+       mov      dword ptr [rbp-0x44], eax
+       mov      ecx, dword ptr [r12+0x08]
+       mov      dword ptr [rbp-0x48], ecx
+       test     ecx, ecx
+       jle      G_M45970_IG19
+						;; size=41 bbWeight=0.50 PerfScore 15.75
 G_M45970_IG14:
-       cmp      r15d, r14d
-       jae      G_M45970_IG37
+       cmp      r15d, ecx
+       jae      G_M45970_IG36
        mov      edi, r15d
-       mov      rax, gword ptr [r12+8*rdi+0x10]
-       mov      gword ptr [rbp-0x68], rax
-       cmp      byte  ptr [rax], al
-       xor      rcx, rcx
-       mov      gword ptr [rbp-0x60], rcx
-       mov      rdi, rax
+       mov      rdx, gword ptr [r12+8*rdi+0x10]
+       mov      gword ptr [rbp-0x58], rdx
+       cmp      byte  ptr [rdx], dl
+       xor      rsi, rsi
+       mov      gword ptr [rbp-0x50], rsi
+       mov      rdi, rdx
        call     System.Threading.Monitor:Enter(System.Object)
-       mov      rax, gword ptr [rbp-0x68]
-       mov      rdi, gword ptr [rax+0x08]
-       mov      ecx, dword ptr [rax+0x10]
-       dec      ecx
-       mov      edx, dword ptr [rdi+0x08]
-       cmp      edx, ecx
+       mov      rdx, gword ptr [rbp-0x58]
+       mov      rdi, gword ptr [rdx+0x08]
+       mov      eax, dword ptr [rdx+0x10]
+       dec      eax
+       mov      ecx, dword ptr [rdi+0x08]
+       cmp      ecx, eax
        jbe      SHORT G_M45970_IG16
 						;; size=57 bbWeight=4 PerfScore 74.00
 G_M45970_IG15:
-       mov      edx, ecx
-       mov      rdx, gword ptr [rdi+8*rdx+0x10]
-       mov      gword ptr [rbp-0x60], rdx
-       mov      esi, ecx
+       mov      ecx, eax
+       mov      rsi, gword ptr [rdi+8*rcx+0x10]
+       mov      gword ptr [rbp-0x50], rsi
+       mov      esi, eax
        xor      r8, r8
        mov      gword ptr [rdi+8*rsi+0x10], r8
-       mov      dword ptr [rax+0x10], ecx
+       mov      dword ptr [rdx+0x10], eax
 						;; size=24 bbWeight=2 PerfScore 11.50
 G_M45970_IG16:
-       mov      rdi, rax
+       mov      rdi, rdx
        call     System.Threading.Monitor:Exit(System.Object)
-       mov      rdi, gword ptr [rbp-0x60]
+       mov      rdi, gword ptr [rbp-0x50]
        test     rdi, rdi
        jne      SHORT G_M45970_IG20
        inc      r15d
-       cmp      r14d, r15d
+       mov      edi, dword ptr [rbp-0x48]
+       cmp      edi, r15d
        jne      SHORT G_M45970_IG18
-						;; size=25 bbWeight=4 PerfScore 20.00
+						;; size=28 bbWeight=4 PerfScore 24.00
 G_M45970_IG17:
        xor      r15d, r15d
 						;; size=3 bbWeight=2 PerfScore 0.50
 G_M45970_IG18:
-       inc      ebx
-       cmp      r14d, ebx
+       mov      eax, dword ptr [rbp-0x44]
+       inc      eax
+       cmp      edi, eax
+       mov      dword ptr [rbp-0x44], eax
+       mov      ecx, edi
        jg       SHORT G_M45970_IG14
-						;; size=7 bbWeight=4 PerfScore 6.00
+						;; size=14 bbWeight=4 PerfScore 15.00
 G_M45970_IG19:
        xor      rcx, rcx
        jmp      SHORT G_M45970_IG21
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M45970_IG20:
        mov      rcx, rdi
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M45970_IG21:
        mov      r12, rcx
        test     r12, r12
-       mov      rbx, gword ptr [rbp-0x48]
        jne      G_M45970_IG30
-						;; size=16 bbWeight=0.50 PerfScore 1.25
+						;; size=12 bbWeight=0.50 PerfScore 0.75
 G_M45970_IG22:
        mov      edi, 16
        shlx     r15d, edi, r13d
 						;; size=10 bbWeight=0.50 PerfScore 0.38
 G_M45970_IG23:
        mov      rdi, qword ptr [rbx]
        mov      rsi, qword ptr [rdi+0x30]
        mov      rsi, qword ptr [rsi+0x08]
        mov      rax, qword ptr [rsi+0x10]
        test     rax, rax
        je       SHORT G_M45970_IG25
 						;; size=20 bbWeight=0.50 PerfScore 4.62
 G_M45970_IG24:
        mov      rdi, rax
        jmp      SHORT G_M45970_IG26
 						;; size=5 bbWeight=0.40 PerfScore 0.90
 G_M45970_IG25:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      rdi, rax
 						;; size=18 bbWeight=0.10 PerfScore 0.15
 G_M45970_IG26:
        mov      rsi, qword ptr [rdi+0x18]
        mov      rax, qword ptr [rsi+0x10]
        test     rax, rax
        je       SHORT G_M45970_IG28
 						;; size=13 bbWeight=0.50 PerfScore 2.62
 G_M45970_IG27:
        mov      rdi, rax
        jmp      SHORT G_M45970_IG29
 						;; size=5 bbWeight=0.40 PerfScore 0.90
 G_M45970_IG28:
        mov      rsi, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_METHOD
        mov      rdi, rax
 						;; size=18 bbWeight=0.10 PerfScore 0.15
 G_M45970_IG29:
        movsxd   rsi, r15d
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      r12, rax
-       mov      r14, gword ptr [rbp-0x50]
        cmp      byte  ptr [r14+0x9D], 0
        je       G_M45970_IG32
        mov      rdi, r12
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r15d, eax
        mov      eax, dword ptr [r12+0x08]
        mov      dword ptr [rbp-0x34], eax
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        mov      esi, r15d
        mov      edx, dword ptr [rbp-0x34]
        mov      rdi, r14
        mov      r8d, -1
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferRented(int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferRented(int,int,int,int):this
        mov      eax, dword ptr [r12+0x08]
        mov      dword ptr [rbp-0x38], eax
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        mov      rdi, gword ptr [rbx+0x10]
        mov      r9d, 1
        mov      esi, 2
        cmp      dword ptr [rdi+0x08], r13d
        cmovg    r9d, esi
        mov      rdi, r14
        mov      esi, r15d
        mov      edx, dword ptr [rbp-0x38]
        mov      r8d, -1
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferAllocated(int,int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferAllocated(int,int,int,int,int):this
        jmp      G_M45970_IG32
-						;; size=158 bbWeight=0.50 PerfScore 17.38
+						;; size=154 bbWeight=0.50 PerfScore 16.88
 G_M45970_IG30:
-       mov      r14, gword ptr [rbp-0x50]
        cmp      byte  ptr [r14+0x9D], 0
        je       G_M45970_IG32
        mov      rdi, r12
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r15d, eax
        mov      eax, dword ptr [r12+0x08]
        mov      dword ptr [rbp-0x3C], eax
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        mov      esi, r15d
        mov      edx, dword ptr [rbp-0x3C]
        mov      rdi, r14
        mov      r8d, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferRented(int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferRented(int,int,int,int):this
        jmp      SHORT G_M45970_IG32
-						;; size=73 bbWeight=0.50 PerfScore 9.00
+						;; size=69 bbWeight=0.50 PerfScore 8.50
 G_M45970_IG31:
        mov      r15, rcx
        xor      rdi, rdi
        mov      gword ptr [r12+rax+0x10], rdi
-       mov      r14, gword ptr [rbp-0x50]
        cmp      byte  ptr [r14+0x9D], 0
        je       SHORT G_M45970_IG34
        mov      rdi, r15
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      r12d, eax
        mov      eax, dword ptr [r15+0x08]
        mov      dword ptr [rbp-0x40], eax
        mov      rdi, rbx
        call     System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
        mov      ecx, eax
        mov      esi, r12d
        mov      edx, dword ptr [rbp-0x40]
        mov      rdi, r14
        mov      r8d, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.ArrayPoolEventSource:BufferRented(int,int,int,int):this
        call     [rax]System.Buffers.ArrayPoolEventSource:BufferRented(int,int,int,int):this
        mov      r12, r15
-						;; size=79 bbWeight=0.50 PerfScore 8.88
+						;; size=75 bbWeight=0.50 PerfScore 8.38
 G_M45970_IG32:
        mov      rax, r12
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M45970_IG33:
-       add      rsp, 72
+       add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M45970_IG34:
        mov      r12, r15
        jmp      SHORT G_M45970_IG32
 						;; size=5 bbWeight=0.25 PerfScore 0.56
 G_M45970_IG35:
-       call     CORINFO_HELP_POLL_GC
-       jmp      G_M45970_IG12
-						;; size=10 bbWeight=0 PerfScore 0.00
-G_M45970_IG36:
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SharedArrayPoolStatics
        call     CORINFO_HELP_GET_NONGCSTATIC_BASE
        jmp      G_M45970_IG13
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M45970_IG37:
+G_M45970_IG36:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 958, prolog size 32, PerfScore 228.24, instruction count 251, allocated bytes for code 958 (MethodHash=02034c6d) for method System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (FullOpts)
+; Total bytes of code 960, prolog size 29, PerfScore 239.74, instruction count 254, allocated bytes for code 960 (MethodHash=02034c6d) for method System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (FullOpts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment