Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created July 28, 2024 21:44
Show Gist options
  • Save MihuBot/10bee916393566a1d58940d669d5e5c1 to your computer and use it in GitHub Desktop.
Save MihuBot/10bee916393566a1d58940d669d5e5c1 to your computer and use it in GitHub Desktop.

Top method regressions

22 (3.08 % of base) - System.Globalization.TextInfo:ChangeCaseCommon[double](System.String):System.String:this
 ; Assembly listing for method System.Globalization.TextInfo:ChangeCaseCommon[double](System.String):System.String:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 27 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.Globalization.TextInfo>
 ;  V01 arg1         [V01,T03] (  8,  5.50)     ref  ->  r15         class-hnd single-def <System.String>
 ;* V02 loc0         [V02,T60] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V03 loc1         [V03,T05] (  4,  5.50)    long  ->  r13        
 ;  V04 loc2         [V04    ] (  2,  1   )   byref  ->  [rbp-0x30]  must-init pinned single-def
 ;  V05 loc3         [V05,T00] ( 15, 21.50)    long  ->  r12        
 ;  V06 loc4         [V06,T06] (  2,  4.50)    long  ->  rdi        
 ;  V07 loc5         [V07,T01] (  4, 12   )     int  ->  rax        
-;  V08 loc6         [V08,T34] (  3,  1.50)     int  ->  rax        
-;  V09 loc7         [V09,T14] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
+;  V08 loc6         [V08,T35] (  3,  1.50)     int  ->  rax        
+;  V09 loc7         [V09,T15] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
 ;* V10 loc8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ushort]>
 ;* V11 loc9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;  V12 loc10        [V12,T07] (  7,  3.50)     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.String>
 ;* V13 loc11        [V13    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V14 loc12        [V14    ] (  0,  0   )    long  ->  zero-ref   
 ;  V15 loc13        [V15    ] (  3,  1.50)   byref  ->  [rbp-0x38]  must-init pinned
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V17 tmp1         [V17,T50] (  2,  1   )    long  ->  r13        
-;  V18 tmp2         [V18,T35] (  3,  1.50)    long  ->  rcx        
+;  V18 tmp2         [V18,T36] (  3,  1.50)    long  ->  rcx        
 ;* V19 tmp3         [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V20 tmp4         [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp5         [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V22 tmp6         [V22    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V23 tmp7         [V23    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V24 tmp8         [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp9         [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp10        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V27 tmp11        [V27,T16] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V28 tmp12        [V28,T20] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V27 tmp11        [V27,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V28 tmp12        [V28,T22] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp13        [V29    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;  V30 tmp14        [V30,T12] (  3,  3   )     int  ->  rdx         "Inlining Arg"
 ;* V31 tmp15        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp16        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp17        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp18        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V35 tmp19        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp20        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp21        [V37    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V38 tmp22        [V38,T21] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V38 tmp22        [V38,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
 ;* V39 tmp23        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp24        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V41 tmp25        [V41,T17] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
-;  V42 tmp26        [V42,T22] (  2,  2   )     int  ->  r14         "Inlining Arg"
-;  V43 tmp27        [V43,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp25        [V41,T19] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
+;  V42 tmp26        [V42,T24] (  2,  2   )     int  ->  r14         "Inlining Arg"
+;  V43 tmp27        [V43,T13] (  3,  3   )     int  ->  rdi         "Inlining Arg"
 ;* V44 tmp28        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V45 tmp29        [V45,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V46 tmp30        [V46,T24] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V45 tmp29        [V45,T20] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V46 tmp30        [V46,T25] (  2,  2   )     int  ->  r12         "Inlining Arg"
 ;* V47 tmp31        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp32        [V48,T67] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V49 tmp33        [V49    ] (  5,  2.50)     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp"
 ;  V50 tmp34        [V50    ] (  3,  1.50)   byref  ->  [rbp-0x48]  must-init pinned "Inline stloc first use temp"
 ;* V51 tmp35        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V52 tmp36        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V53 tmp37        [V53    ] (  3,  1.50)   byref  ->  [rbp-0x50]  must-init pinned "Inline stloc first use temp"
 ;* V54 tmp38        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V55 tmp39        [V55,T51] (  2,  1   )     int  ->  rax        
 ;* V56 tmp40        [V56    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp41        [V57    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V58 tmp42        [V58    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V60 tmp44        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V61 tmp45        [V61    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp46        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp47        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp48        [V64,T68] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V65 tmp49        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V66 tmp50        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V67 tmp51        [V67    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp52        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V69 tmp53        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V70 tmp54        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V71 tmp55        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp56        [V72,T69] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V73 tmp57        [V73    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V74 tmp58        [V74    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp59        [V75    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp60        [V76    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V77 tmp61        [V77    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V78 tmp62        [V78    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V79 tmp63        [V79    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V80 tmp64        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V81 tmp65        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp66        [V82    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V83 tmp67        [V83    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V84 tmp68        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp69        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp70        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp71        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V88 tmp72        [V88    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V89 tmp73        [V89    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V90 tmp74        [V90    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V91 tmp75        [V91    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V92 tmp76        [V92    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V93 tmp77        [V93    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp78        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp79        [V95    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V96 tmp80        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V97 tmp81        [V97    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp82        [V98    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V99 tmp83        [V99    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V100 tmp84       [V100,T19] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
-;  V101 tmp85       [V101,T25] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;  V100 tmp84       [V100,T21] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V101 tmp85       [V101,T26] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V102 tmp86       [V102    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V103 tmp87       [V103,T13] (  3,  3   )     int  ->  rsi         "Inlining Arg"
+;  V103 tmp87       [V103,T14] (  3,  3   )     int  ->  rsi         "Inlining Arg"
 ;* V104 tmp88       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V105 tmp89       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V106 tmp90       [V106    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V107 tmp91       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V108 tmp92       [V108    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp93       [V109    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V110 tmp94       [V110    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V111 tmp95       [V111    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V112 tmp96       [V112    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp97       [V113    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V114 tmp98       [V114    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V115 tmp99       [V115,T33] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V116 tmp100      [V116,T36] (  3,  1.50)     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
+;  V115 tmp99       [V115,T34] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;  V116 tmp100      [V116,T16] (  4,  2   )     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp101      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp102      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V119 tmp103      [V119,T40] (  2,  1   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;  V120 tmp104      [V120,T52] (  2,  1   )     int  ->  rdx         "field V13._length (fldOffset=0x8)" P-INDEP
 ;  V121 tmp105      [V121,T41] (  2,  1   )   byref  ->  rdi         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V122 tmp106      [V122,T53] (  2,  1   )     int  ->  rdx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V123 tmp107      [V123,T42] (  2,  1   )   byref  ->  rax         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;  V124 tmp108      [V124,T54] (  2,  1   )     int  ->  rcx         "field V21._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp109      [V125,T43] (  2,  1   )   byref  ->  r15         "field V22._reference (fldOffset=0x0)" P-INDEP
 ;  V126 tmp110      [V126,T55] (  2,  1   )     int  ->  r14         "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp111      [V127    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V128 tmp112      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;  V129 tmp113      [V129,T44] (  2,  1   )   byref  ->  rsi         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V130 tmp114      [V130,T37] (  3,  1.50)     int  ->  rdx         "field V29._length (fldOffset=0x8)" P-INDEP
 ;  V131 tmp115      [V131,T45] (  2,  1   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;  V132 tmp116      [V132,T56] (  2,  1   )     int  ->  rdx         "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp117      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp118      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V135 tmp119      [V135    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V136 tmp120      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;  V137 tmp121      [V137,T46] (  2,  1   )   byref  ->  r15         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
 ;  V138 tmp122      [V138,T57] (  2,  1   )     int  ->  r14         "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp123      [V139    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp124      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V141 tmp125      [V141,T47] (  2,  1   )   byref  ->  rax         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V142 tmp126      [V142,T58] (  2,  1   )     int  ->  r12         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V143 tmp127      [V143,T08] (  4,  2   )   byref  ->  r15         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;  V144 tmp128      [V144,T10] (  4,  2   )     int  ->  r14         "field V47._length (fldOffset=0x8)" P-INDEP
 ;  V145 tmp129      [V145,T09] (  4,  2   )   byref  ->  [rbp-0x78]  spill-single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;  V146 tmp130      [V146,T11] (  3,  1.50)     int  ->  r12         "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp131      [V147    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp132      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp133      [V149,T61] (  0,  0   )   byref  ->  zero-ref    single-def "field V57._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp134      [V150,T70] (  0,  0   )     int  ->  zero-ref    "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V151 tmp135      [V151,T62] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V152 tmp136      [V152,T71] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V153 tmp137      [V153    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V154 tmp138      [V154    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp139      [V155,T63] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp140      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V157 tmp141      [V157,T64] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp142      [V158,T72] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V159 tmp143      [V159    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V66._reference (fldOffset=0x0)" P-INDEP
 ;* V160 tmp144      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V66._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp145      [V161,T65] (  0,  0   )   byref  ->  zero-ref    single-def "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp146      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
 ;* V163 tmp147      [V163,T66] (  0,  0   )   byref  ->  zero-ref    single-def "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V164 tmp148      [V164,T73] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp149      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp150      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp151      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V76._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp152      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp153      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V77._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp154      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
 ;* V171 tmp155      [V171    ] (  0,  0   )   byref  ->  zero-ref    "field V78._reference (fldOffset=0x0)" P-INDEP
 ;* V172 tmp156      [V172    ] (  0,  0   )     int  ->  zero-ref    "field V78._length (fldOffset=0x8)" P-INDEP
 ;* V173 tmp157      [V173    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V174 tmp158      [V174    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp159      [V175    ] (  0,  0   )   byref  ->  zero-ref    "field V84._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp160      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V177 tmp161      [V177    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp162      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
 ;* V179 tmp163      [V179    ] (  0,  0   )   byref  ->  zero-ref    "field V89._reference (fldOffset=0x0)" P-INDEP
 ;* V180 tmp164      [V180    ] (  0,  0   )     int  ->  zero-ref    "field V89._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp165      [V181    ] (  0,  0   )   byref  ->  zero-ref    "field V92._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp166      [V182    ] (  0,  0   )     int  ->  zero-ref    "field V92._length (fldOffset=0x8)" P-INDEP
 ;* V183 tmp167      [V183    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V184 tmp168      [V184    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp169      [V185    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V95._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp170      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V95._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp171      [V187,T48] (  2,  1   )   byref  ->  r15         single-def "field V102._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp172      [V188,T38] (  3,  1.50)     int  ->  rsi         "field V102._length (fldOffset=0x8)" P-INDEP
 ;  V189 tmp173      [V189,T49] (  2,  1   )   byref  ->  r15         single-def "field V104._reference (fldOffset=0x0)" P-INDEP
 ;  V190 tmp174      [V190,T59] (  2,  1   )     int  ->  rsi         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V191 tmp175      [V191    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V192 tmp176      [V192    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;* V193 tmp177      [V193    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V107._reference (fldOffset=0x0)" P-INDEP
 ;* V194 tmp178      [V194    ] (  0,  0   )     int  ->  zero-ref    "field V107._length (fldOffset=0x8)" P-INDEP
-;  V195 tmp179      [V195,T26] (  2,  2   )    long  ->  r13         "Cast away GC"
-;  V196 tmp180      [V196,T27] (  2,  2   )    long  ->  r15         "Cast away GC"
-;  V197 tmp181      [V197,T28] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V198 tmp182      [V198,T29] (  2,  2   )    long  ->  r15         "argument with side effect"
-;  V199 tmp183      [V199,T30] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V200 tmp184      [V200,T31] (  2,  2   )    long  ->  rcx         "argument with side effect"
-;  V201 tmp185      [V201,T32] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V202 cse0        [V202,T15] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
+;  V195 tmp179      [V195,T27] (  2,  2   )    long  ->  r13         "Cast away GC"
+;  V196 tmp180      [V196,T28] (  2,  2   )    long  ->  r15         "Cast away GC"
+;  V197 tmp181      [V197,T29] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V198 tmp182      [V198,T30] (  2,  2   )    long  ->  r15         "argument with side effect"
+;  V199 tmp183      [V199,T31] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V200 tmp184      [V200,T32] (  2,  2   )    long  ->  rcx         "argument with side effect"
+;  V201 tmp185      [V201,T33] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V202 cse0        [V202,T17] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
 ;  V203 cse1        [V203,T39] (  3,  1.50)    long  ->  rsi         "CSE #06: conservative"
 ;  V204 cse2        [V204,T04] ( 11,  6.50)     int  ->  r14         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 88
 
 G_M28728_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        xor      eax, eax
        mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=44 bbWeight=1 PerfScore 10.83
 G_M28728_IG02:
        mov      r14d, dword ptr [r15+0x08]
        test     r14d, r14d
        je       G_M28728_IG24
 						;; size=13 bbWeight=1 PerfScore 3.25
 G_M28728_IG03:
        lea      rdi, bword ptr [r15+0x0C]
        mov      bword ptr [rbp-0x30], rdi
        mov      r13, bword ptr [rbp-0x30]
        xor      r12d, r12d
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M28728_IG04
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
 						;; size=36 bbWeight=0.50 PerfScore 5.12
 G_M28728_IG04:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M28728_IG09
        cmp      r14d, 2
        jl       SHORT G_M28728_IG08
        lea      edi, [r14-0x02]
        align    [0 bytes for IG05]
 						;; size=16 bbWeight=0.50 PerfScore 2.88
 G_M28728_IG05:
        mov      eax, dword ptr [r13+2*r12]
        test     eax, 0xD1FFAB1E
        jne      SHORT G_M28728_IG09
 						;; size=12 bbWeight=4 PerfScore 13.00
 G_M28728_IG06:
        lea      ecx, [rax+D1FFAB1EH]
        add      eax, 0xD1FFAB1E
        xor      eax, ecx
        test     eax, 0xD1FFAB1E
        jne      G_M28728_IG15
 						;; size=24 bbWeight=2 PerfScore 4.50
 G_M28728_IG07:
        add      r12, 2
        cmp      r12, rdi
        jbe      SHORT G_M28728_IG05
 						;; size=9 bbWeight=4 PerfScore 6.00
 G_M28728_IG08:
        test     r14b, 1
        je       G_M28728_IG22
        movzx    rax, word  ptr [r13+2*r12]
        cmp      eax, 127
        jbe      G_M28728_IG14
 						;; size=25 bbWeight=0.50 PerfScore 2.25
 G_M28728_IG09:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      gword ptr [rbp-0x68], rax
        test     r12, r12
        je       SHORT G_M28728_IG10
        lea      rdi, bword ptr [rax+0x0C]
        mov      edx, dword ptr [rax+0x08]
        mov      esi, r12d
        cmp      r14d, esi
-       jb       G_M28728_IG27
+       jb       G_M28728_IG28
        add      r15, 12
        cmp      esi, edx
-       ja       G_M28728_IG26
+       jg       G_M28728_IG26
        mov      edx, esi
        add      rdx, rdx
        mov      rsi, r15
        mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      rax, gword ptr [rbp-0x68]
 						;; size=72 bbWeight=0.50 PerfScore 7.00
 G_M28728_IG10:
        test     rax, rax
        je       SHORT G_M28728_IG11
        lea      r8, bword ptr [rax+0x0C]
        mov      bword ptr [rbp-0x38], r8
        mov      rcx, bword ptr [rbp-0x38]
        jmp      SHORT G_M28728_IG12
 						;; size=19 bbWeight=0.50 PerfScore 2.88
 G_M28728_IG11:
        xor      ecx, ecx
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M28728_IG12:
        mov      r8d, dword ptr [rax+0x08]
        sub      r8d, r12d
        lea      rsi, [r13+2*r12]
        mov      edx, r14d
        sub      edx, r12d
        lea      rcx, [rcx+2*r12]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      r10, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [r10]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x38], rax
        mov      rax, gword ptr [rbp-0x68]
 						;; size=51 bbWeight=0.50 PerfScore 5.62
 G_M28728_IG13:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M28728_IG14:
        add      eax, -65
        cmp      eax, 25
        ja       G_M28728_IG22
 						;; size=12 bbWeight=0.50 PerfScore 0.75
 G_M28728_IG15:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      r13, rax
        lea      rax, bword ptr [r13+0x0C]
        mov      ecx, dword ptr [r13+0x08]
        mov      bword ptr [rbp-0x70], rax
        mov      dword ptr [rbp-0x54], ecx
        mov      edx, r12d
        cmp      r14d, edx
-       jb       G_M28728_IG27
+       jb       G_M28728_IG28
        lea      rsi, bword ptr [r15+0x0C]
        cmp      edx, ecx
-       ja       G_M28728_IG26
+       jg       G_M28728_IG26
        mov      r8d, edx
        add      r8, r8
        mov      qword ptr [rbp-0x60], r8
        mov      rdx, r8
        mov      rdi, rax
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edi, r12d
        mov      rax, qword ptr [rbp-0x60]
        lea      r15, bword ptr [r15+rax+0x0C]
        sub      r14d, edi
        mov      edi, r12d
-       add      rax, bword ptr [rbp-0x70]
        mov      r12d, dword ptr [rbp-0x54]
+       cmp      edi, r12d
+       ja       G_M28728_IG27
+       add      rax, bword ptr [rbp-0x70]
        sub      r12d, edi
        mov      bword ptr [rbp-0x78], rax
        test     r14d, r14d
        je       G_M28728_IG19
        mov      rcx, bword ptr [rbp-0x78]
        xor      edi, edi
        mov      dword ptr [rbp-0x40], edi
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M28728_IG16
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        mov      rcx, bword ptr [rbp-0x78]
-						;; size=155 bbWeight=0.50 PerfScore 16.75
+						;; size=164 bbWeight=0.50 PerfScore 17.38
 G_M28728_IG16:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M28728_IG17
        mov      rdi, r15
        mov      esi, r14d
        mov      rdx, rcx
        mov      ecx, r12d
        lea      r8, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        call     [rax]System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        cmp      eax, 3
        mov      rcx, bword ptr [rbp-0x78]
        jne      SHORT G_M28728_IG19
 						;; size=43 bbWeight=0.50 PerfScore 5.50
 G_M28728_IG17:
        mov      bword ptr [rbp-0x48], r15
        mov      bword ptr [rbp-0x50], rcx
        movsxd   rsi, dword ptr [rbp-0x40]
        add      rsi, rsi
        add      r15, rsi
        mov      edx, r14d
        sub      edx, dword ptr [rbp-0x40]
        add      rcx, rsi
        mov      rsi, r15
        mov      r8d, r12d
        sub      r8d, dword ptr [rbp-0x40]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [rax]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x50], rax
 						;; size=61 bbWeight=0.50 PerfScore 7.75
 G_M28728_IG18:
        mov      bword ptr [rbp-0x48], rax
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M28728_IG19:
        xor      rax, rax
        mov      bword ptr [rbp-0x48], rax
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M28728_IG20:
        mov      bword ptr [rbp-0x50], rax
        mov      rax, r13
 						;; size=7 bbWeight=0.50 PerfScore 0.62
 G_M28728_IG21:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M28728_IG22:
        mov      rax, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M28728_IG23:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M28728_IG24:
        mov      rax, 0xD1FFAB1E      ; ''
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M28728_IG25:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M28728_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M28728_IG27:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
+G_M28728_IG28:
        mov      edi, 33
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 715, prolog size 44, PerfScore 104.71, instruction count 205, allocated bytes for code 715 (MethodHash=5db18fc7) for method System.Globalization.TextInfo:ChangeCaseCommon[double](System.String):System.String:this (FullOpts)
+; Total bytes of code 737, prolog size 44, PerfScore 105.33, instruction count 210, allocated bytes for code 737 (MethodHash=5db18fc7) for method System.Globalization.TextInfo:ChangeCaseCommon[double](System.String):System.String:this (FullOpts)
22 (3.08 % of base) - System.Globalization.TextInfo:ChangeCaseCommon[int](System.String):System.String:this
 ; Assembly listing for method System.Globalization.TextInfo:ChangeCaseCommon[int](System.String):System.String:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 27 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.Globalization.TextInfo>
 ;  V01 arg1         [V01,T03] (  8,  5.50)     ref  ->  r15         class-hnd single-def <System.String>
 ;* V02 loc0         [V02,T60] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V03 loc1         [V03,T05] (  4,  5.50)    long  ->  r13        
 ;  V04 loc2         [V04    ] (  2,  1   )   byref  ->  [rbp-0x30]  must-init pinned single-def
 ;  V05 loc3         [V05,T00] ( 15, 21.50)    long  ->  r12        
 ;  V06 loc4         [V06,T06] (  2,  4.50)    long  ->  rdi        
 ;  V07 loc5         [V07,T01] (  4, 12   )     int  ->  rax        
-;  V08 loc6         [V08,T34] (  3,  1.50)     int  ->  rax        
-;  V09 loc7         [V09,T14] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
+;  V08 loc6         [V08,T35] (  3,  1.50)     int  ->  rax        
+;  V09 loc7         [V09,T15] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
 ;* V10 loc8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ushort]>
 ;* V11 loc9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;  V12 loc10        [V12,T07] (  7,  3.50)     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.String>
 ;* V13 loc11        [V13    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V14 loc12        [V14    ] (  0,  0   )    long  ->  zero-ref   
 ;  V15 loc13        [V15    ] (  3,  1.50)   byref  ->  [rbp-0x38]  must-init pinned
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V17 tmp1         [V17,T50] (  2,  1   )    long  ->  r13        
-;  V18 tmp2         [V18,T35] (  3,  1.50)    long  ->  rcx        
+;  V18 tmp2         [V18,T36] (  3,  1.50)    long  ->  rcx        
 ;* V19 tmp3         [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V20 tmp4         [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp5         [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V22 tmp6         [V22    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V23 tmp7         [V23    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V24 tmp8         [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp9         [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp10        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V27 tmp11        [V27,T16] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V28 tmp12        [V28,T20] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V27 tmp11        [V27,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V28 tmp12        [V28,T22] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp13        [V29    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;  V30 tmp14        [V30,T12] (  3,  3   )     int  ->  rdx         "Inlining Arg"
 ;* V31 tmp15        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp16        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp17        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp18        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V35 tmp19        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp20        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp21        [V37    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V38 tmp22        [V38,T21] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V38 tmp22        [V38,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
 ;* V39 tmp23        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp24        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V41 tmp25        [V41,T17] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
-;  V42 tmp26        [V42,T22] (  2,  2   )     int  ->  r14         "Inlining Arg"
-;  V43 tmp27        [V43,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp25        [V41,T19] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
+;  V42 tmp26        [V42,T24] (  2,  2   )     int  ->  r14         "Inlining Arg"
+;  V43 tmp27        [V43,T13] (  3,  3   )     int  ->  rdi         "Inlining Arg"
 ;* V44 tmp28        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V45 tmp29        [V45,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V46 tmp30        [V46,T24] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V45 tmp29        [V45,T20] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V46 tmp30        [V46,T25] (  2,  2   )     int  ->  r12         "Inlining Arg"
 ;* V47 tmp31        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp32        [V48,T67] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V49 tmp33        [V49    ] (  5,  2.50)     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp"
 ;  V50 tmp34        [V50    ] (  3,  1.50)   byref  ->  [rbp-0x48]  must-init pinned "Inline stloc first use temp"
 ;* V51 tmp35        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V52 tmp36        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V53 tmp37        [V53    ] (  3,  1.50)   byref  ->  [rbp-0x50]  must-init pinned "Inline stloc first use temp"
 ;* V54 tmp38        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V55 tmp39        [V55,T51] (  2,  1   )     int  ->  rax        
 ;* V56 tmp40        [V56    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp41        [V57    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V58 tmp42        [V58    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V60 tmp44        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V61 tmp45        [V61    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp46        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp47        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp48        [V64,T68] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V65 tmp49        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V66 tmp50        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V67 tmp51        [V67    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp52        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V69 tmp53        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V70 tmp54        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V71 tmp55        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp56        [V72,T69] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V73 tmp57        [V73    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V74 tmp58        [V74    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp59        [V75    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp60        [V76    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V77 tmp61        [V77    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V78 tmp62        [V78    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V79 tmp63        [V79    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V80 tmp64        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V81 tmp65        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp66        [V82    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V83 tmp67        [V83    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V84 tmp68        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp69        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp70        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp71        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V88 tmp72        [V88    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V89 tmp73        [V89    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V90 tmp74        [V90    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V91 tmp75        [V91    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V92 tmp76        [V92    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V93 tmp77        [V93    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp78        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp79        [V95    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V96 tmp80        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V97 tmp81        [V97    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp82        [V98    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V99 tmp83        [V99    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V100 tmp84       [V100,T19] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
-;  V101 tmp85       [V101,T25] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;  V100 tmp84       [V100,T21] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V101 tmp85       [V101,T26] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V102 tmp86       [V102    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V103 tmp87       [V103,T13] (  3,  3   )     int  ->  rsi         "Inlining Arg"
+;  V103 tmp87       [V103,T14] (  3,  3   )     int  ->  rsi         "Inlining Arg"
 ;* V104 tmp88       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V105 tmp89       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V106 tmp90       [V106    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V107 tmp91       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V108 tmp92       [V108    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp93       [V109    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V110 tmp94       [V110    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V111 tmp95       [V111    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V112 tmp96       [V112    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp97       [V113    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V114 tmp98       [V114    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V115 tmp99       [V115,T33] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V116 tmp100      [V116,T36] (  3,  1.50)     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
+;  V115 tmp99       [V115,T34] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;  V116 tmp100      [V116,T16] (  4,  2   )     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp101      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp102      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V119 tmp103      [V119,T40] (  2,  1   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;  V120 tmp104      [V120,T52] (  2,  1   )     int  ->  rdx         "field V13._length (fldOffset=0x8)" P-INDEP
 ;  V121 tmp105      [V121,T41] (  2,  1   )   byref  ->  rdi         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V122 tmp106      [V122,T53] (  2,  1   )     int  ->  rdx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V123 tmp107      [V123,T42] (  2,  1   )   byref  ->  rax         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;  V124 tmp108      [V124,T54] (  2,  1   )     int  ->  rcx         "field V21._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp109      [V125,T43] (  2,  1   )   byref  ->  r15         "field V22._reference (fldOffset=0x0)" P-INDEP
 ;  V126 tmp110      [V126,T55] (  2,  1   )     int  ->  r14         "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp111      [V127    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V128 tmp112      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;  V129 tmp113      [V129,T44] (  2,  1   )   byref  ->  rsi         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V130 tmp114      [V130,T37] (  3,  1.50)     int  ->  rdx         "field V29._length (fldOffset=0x8)" P-INDEP
 ;  V131 tmp115      [V131,T45] (  2,  1   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;  V132 tmp116      [V132,T56] (  2,  1   )     int  ->  rdx         "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp117      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp118      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V135 tmp119      [V135    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V136 tmp120      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;  V137 tmp121      [V137,T46] (  2,  1   )   byref  ->  r15         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
 ;  V138 tmp122      [V138,T57] (  2,  1   )     int  ->  r14         "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp123      [V139    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp124      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V141 tmp125      [V141,T47] (  2,  1   )   byref  ->  rax         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V142 tmp126      [V142,T58] (  2,  1   )     int  ->  r12         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V143 tmp127      [V143,T08] (  4,  2   )   byref  ->  r15         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;  V144 tmp128      [V144,T10] (  4,  2   )     int  ->  r14         "field V47._length (fldOffset=0x8)" P-INDEP
 ;  V145 tmp129      [V145,T09] (  4,  2   )   byref  ->  [rbp-0x78]  spill-single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;  V146 tmp130      [V146,T11] (  3,  1.50)     int  ->  r12         "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp131      [V147    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp132      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp133      [V149,T61] (  0,  0   )   byref  ->  zero-ref    single-def "field V57._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp134      [V150,T70] (  0,  0   )     int  ->  zero-ref    "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V151 tmp135      [V151,T62] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V152 tmp136      [V152,T71] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V153 tmp137      [V153    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V154 tmp138      [V154    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp139      [V155,T63] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp140      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V157 tmp141      [V157,T64] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp142      [V158,T72] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V159 tmp143      [V159    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V66._reference (fldOffset=0x0)" P-INDEP
 ;* V160 tmp144      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V66._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp145      [V161,T65] (  0,  0   )   byref  ->  zero-ref    single-def "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp146      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
 ;* V163 tmp147      [V163,T66] (  0,  0   )   byref  ->  zero-ref    single-def "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V164 tmp148      [V164,T73] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp149      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp150      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp151      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V76._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp152      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp153      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V77._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp154      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
 ;* V171 tmp155      [V171    ] (  0,  0   )   byref  ->  zero-ref    "field V78._reference (fldOffset=0x0)" P-INDEP
 ;* V172 tmp156      [V172    ] (  0,  0   )     int  ->  zero-ref    "field V78._length (fldOffset=0x8)" P-INDEP
 ;* V173 tmp157      [V173    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V174 tmp158      [V174    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp159      [V175    ] (  0,  0   )   byref  ->  zero-ref    "field V84._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp160      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V177 tmp161      [V177    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp162      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
 ;* V179 tmp163      [V179    ] (  0,  0   )   byref  ->  zero-ref    "field V89._reference (fldOffset=0x0)" P-INDEP
 ;* V180 tmp164      [V180    ] (  0,  0   )     int  ->  zero-ref    "field V89._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp165      [V181    ] (  0,  0   )   byref  ->  zero-ref    "field V92._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp166      [V182    ] (  0,  0   )     int  ->  zero-ref    "field V92._length (fldOffset=0x8)" P-INDEP
 ;* V183 tmp167      [V183    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V184 tmp168      [V184    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp169      [V185    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V95._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp170      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V95._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp171      [V187,T48] (  2,  1   )   byref  ->  r15         single-def "field V102._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp172      [V188,T38] (  3,  1.50)     int  ->  rsi         "field V102._length (fldOffset=0x8)" P-INDEP
 ;  V189 tmp173      [V189,T49] (  2,  1   )   byref  ->  r15         single-def "field V104._reference (fldOffset=0x0)" P-INDEP
 ;  V190 tmp174      [V190,T59] (  2,  1   )     int  ->  rsi         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V191 tmp175      [V191    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V192 tmp176      [V192    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;* V193 tmp177      [V193    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V107._reference (fldOffset=0x0)" P-INDEP
 ;* V194 tmp178      [V194    ] (  0,  0   )     int  ->  zero-ref    "field V107._length (fldOffset=0x8)" P-INDEP
-;  V195 tmp179      [V195,T26] (  2,  2   )    long  ->  r13         "Cast away GC"
-;  V196 tmp180      [V196,T27] (  2,  2   )    long  ->  r15         "Cast away GC"
-;  V197 tmp181      [V197,T28] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V198 tmp182      [V198,T29] (  2,  2   )    long  ->  r15         "argument with side effect"
-;  V199 tmp183      [V199,T30] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V200 tmp184      [V200,T31] (  2,  2   )    long  ->  rcx         "argument with side effect"
-;  V201 tmp185      [V201,T32] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V202 cse0        [V202,T15] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
+;  V195 tmp179      [V195,T27] (  2,  2   )    long  ->  r13         "Cast away GC"
+;  V196 tmp180      [V196,T28] (  2,  2   )    long  ->  r15         "Cast away GC"
+;  V197 tmp181      [V197,T29] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V198 tmp182      [V198,T30] (  2,  2   )    long  ->  r15         "argument with side effect"
+;  V199 tmp183      [V199,T31] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V200 tmp184      [V200,T32] (  2,  2   )    long  ->  rcx         "argument with side effect"
+;  V201 tmp185      [V201,T33] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V202 cse0        [V202,T17] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
 ;  V203 cse1        [V203,T39] (  3,  1.50)    long  ->  rsi         "CSE #06: conservative"
 ;  V204 cse2        [V204,T04] ( 11,  6.50)     int  ->  r14         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 88
 
 G_M52222_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        xor      eax, eax
        mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=44 bbWeight=1 PerfScore 10.83
 G_M52222_IG02:
        mov      r14d, dword ptr [r15+0x08]
        test     r14d, r14d
        je       G_M52222_IG24
 						;; size=13 bbWeight=1 PerfScore 3.25
 G_M52222_IG03:
        lea      rdi, bword ptr [r15+0x0C]
        mov      bword ptr [rbp-0x30], rdi
        mov      r13, bword ptr [rbp-0x30]
        xor      r12d, r12d
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M52222_IG04
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
 						;; size=36 bbWeight=0.50 PerfScore 5.12
 G_M52222_IG04:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M52222_IG09
        cmp      r14d, 2
        jl       SHORT G_M52222_IG08
        lea      edi, [r14-0x02]
        align    [0 bytes for IG05]
 						;; size=16 bbWeight=0.50 PerfScore 2.88
 G_M52222_IG05:
        mov      eax, dword ptr [r13+2*r12]
        test     eax, 0xD1FFAB1E
        jne      SHORT G_M52222_IG09
 						;; size=12 bbWeight=4 PerfScore 13.00
 G_M52222_IG06:
        lea      ecx, [rax+D1FFAB1EH]
        add      eax, 0xD1FFAB1E
        xor      eax, ecx
        test     eax, 0xD1FFAB1E
        jne      G_M52222_IG15
 						;; size=24 bbWeight=2 PerfScore 4.50
 G_M52222_IG07:
        add      r12, 2
        cmp      r12, rdi
        jbe      SHORT G_M52222_IG05
 						;; size=9 bbWeight=4 PerfScore 6.00
 G_M52222_IG08:
        test     r14b, 1
        je       G_M52222_IG22
        movzx    rax, word  ptr [r13+2*r12]
        cmp      eax, 127
        jbe      G_M52222_IG14
 						;; size=25 bbWeight=0.50 PerfScore 2.25
 G_M52222_IG09:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      gword ptr [rbp-0x68], rax
        test     r12, r12
        je       SHORT G_M52222_IG10
        lea      rdi, bword ptr [rax+0x0C]
        mov      edx, dword ptr [rax+0x08]
        mov      esi, r12d
        cmp      r14d, esi
-       jb       G_M52222_IG27
+       jb       G_M52222_IG28
        add      r15, 12
        cmp      esi, edx
-       ja       G_M52222_IG26
+       jg       G_M52222_IG26
        mov      edx, esi
        add      rdx, rdx
        mov      rsi, r15
        mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      rax, gword ptr [rbp-0x68]
 						;; size=72 bbWeight=0.50 PerfScore 7.00
 G_M52222_IG10:
        test     rax, rax
        je       SHORT G_M52222_IG11
        lea      r8, bword ptr [rax+0x0C]
        mov      bword ptr [rbp-0x38], r8
        mov      rcx, bword ptr [rbp-0x38]
        jmp      SHORT G_M52222_IG12
 						;; size=19 bbWeight=0.50 PerfScore 2.88
 G_M52222_IG11:
        xor      ecx, ecx
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M52222_IG12:
        mov      r8d, dword ptr [rax+0x08]
        sub      r8d, r12d
        lea      rsi, [r13+2*r12]
        mov      edx, r14d
        sub      edx, r12d
        lea      rcx, [rcx+2*r12]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      r10, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [r10]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x38], rax
        mov      rax, gword ptr [rbp-0x68]
 						;; size=51 bbWeight=0.50 PerfScore 5.62
 G_M52222_IG13:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M52222_IG14:
        add      eax, -65
        cmp      eax, 25
        ja       G_M52222_IG22
 						;; size=12 bbWeight=0.50 PerfScore 0.75
 G_M52222_IG15:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      r13, rax
        lea      rax, bword ptr [r13+0x0C]
        mov      ecx, dword ptr [r13+0x08]
        mov      bword ptr [rbp-0x70], rax
        mov      dword ptr [rbp-0x54], ecx
        mov      edx, r12d
        cmp      r14d, edx
-       jb       G_M52222_IG27
+       jb       G_M52222_IG28
        lea      rsi, bword ptr [r15+0x0C]
        cmp      edx, ecx
-       ja       G_M52222_IG26
+       jg       G_M52222_IG26
        mov      r8d, edx
        add      r8, r8
        mov      qword ptr [rbp-0x60], r8
        mov      rdx, r8
        mov      rdi, rax
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edi, r12d
        mov      rax, qword ptr [rbp-0x60]
        lea      r15, bword ptr [r15+rax+0x0C]
        sub      r14d, edi
        mov      edi, r12d
-       add      rax, bword ptr [rbp-0x70]
        mov      r12d, dword ptr [rbp-0x54]
+       cmp      edi, r12d
+       ja       G_M52222_IG27
+       add      rax, bword ptr [rbp-0x70]
        sub      r12d, edi
        mov      bword ptr [rbp-0x78], rax
        test     r14d, r14d
        je       G_M52222_IG19
        mov      rcx, bword ptr [rbp-0x78]
        xor      edi, edi
        mov      dword ptr [rbp-0x40], edi
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M52222_IG16
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        mov      rcx, bword ptr [rbp-0x78]
-						;; size=155 bbWeight=0.50 PerfScore 16.75
+						;; size=164 bbWeight=0.50 PerfScore 17.38
 G_M52222_IG16:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M52222_IG17
        mov      rdi, r15
        mov      esi, r14d
        mov      rdx, rcx
        mov      ecx, r12d
        lea      r8, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        call     [rax]System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        cmp      eax, 3
        mov      rcx, bword ptr [rbp-0x78]
        jne      SHORT G_M52222_IG19
 						;; size=43 bbWeight=0.50 PerfScore 5.50
 G_M52222_IG17:
        mov      bword ptr [rbp-0x48], r15
        mov      bword ptr [rbp-0x50], rcx
        movsxd   rsi, dword ptr [rbp-0x40]
        add      rsi, rsi
        add      r15, rsi
        mov      edx, r14d
        sub      edx, dword ptr [rbp-0x40]
        add      rcx, rsi
        mov      rsi, r15
        mov      r8d, r12d
        sub      r8d, dword ptr [rbp-0x40]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [rax]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x50], rax
 						;; size=61 bbWeight=0.50 PerfScore 7.75
 G_M52222_IG18:
        mov      bword ptr [rbp-0x48], rax
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M52222_IG19:
        xor      rax, rax
        mov      bword ptr [rbp-0x48], rax
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M52222_IG20:
        mov      bword ptr [rbp-0x50], rax
        mov      rax, r13
 						;; size=7 bbWeight=0.50 PerfScore 0.62
 G_M52222_IG21:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M52222_IG22:
        mov      rax, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M52222_IG23:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M52222_IG24:
        mov      rax, 0xD1FFAB1E      ; ''
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M52222_IG25:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M52222_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M52222_IG27:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
+G_M52222_IG28:
        mov      edi, 33
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 715, prolog size 44, PerfScore 104.71, instruction count 205, allocated bytes for code 715 (MethodHash=e4b83401) for method System.Globalization.TextInfo:ChangeCaseCommon[int](System.String):System.String:this (FullOpts)
+; Total bytes of code 737, prolog size 44, PerfScore 105.33, instruction count 210, allocated bytes for code 737 (MethodHash=e4b83401) for method System.Globalization.TextInfo:ChangeCaseCommon[int](System.String):System.String:this (FullOpts)
22 (3.08 % of base) - System.Globalization.TextInfo:ChangeCaseCommon[long](System.String):System.String:this
 ; Assembly listing for method System.Globalization.TextInfo:ChangeCaseCommon[long](System.String):System.String:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 27 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.Globalization.TextInfo>
 ;  V01 arg1         [V01,T03] (  8,  5.50)     ref  ->  r15         class-hnd single-def <System.String>
 ;* V02 loc0         [V02,T60] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V03 loc1         [V03,T05] (  4,  5.50)    long  ->  r13        
 ;  V04 loc2         [V04    ] (  2,  1   )   byref  ->  [rbp-0x30]  must-init pinned single-def
 ;  V05 loc3         [V05,T00] ( 15, 21.50)    long  ->  r12        
 ;  V06 loc4         [V06,T06] (  2,  4.50)    long  ->  rdi        
 ;  V07 loc5         [V07,T01] (  4, 12   )     int  ->  rax        
-;  V08 loc6         [V08,T34] (  3,  1.50)     int  ->  rax        
-;  V09 loc7         [V09,T14] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
+;  V08 loc6         [V08,T35] (  3,  1.50)     int  ->  rax        
+;  V09 loc7         [V09,T15] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
 ;* V10 loc8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ushort]>
 ;* V11 loc9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;  V12 loc10        [V12,T07] (  7,  3.50)     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.String>
 ;* V13 loc11        [V13    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V14 loc12        [V14    ] (  0,  0   )    long  ->  zero-ref   
 ;  V15 loc13        [V15    ] (  3,  1.50)   byref  ->  [rbp-0x38]  must-init pinned
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V17 tmp1         [V17,T50] (  2,  1   )    long  ->  r13        
-;  V18 tmp2         [V18,T35] (  3,  1.50)    long  ->  rcx        
+;  V18 tmp2         [V18,T36] (  3,  1.50)    long  ->  rcx        
 ;* V19 tmp3         [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V20 tmp4         [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp5         [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V22 tmp6         [V22    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V23 tmp7         [V23    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V24 tmp8         [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp9         [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp10        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V27 tmp11        [V27,T16] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V28 tmp12        [V28,T20] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V27 tmp11        [V27,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V28 tmp12        [V28,T22] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp13        [V29    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;  V30 tmp14        [V30,T12] (  3,  3   )     int  ->  rdx         "Inlining Arg"
 ;* V31 tmp15        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp16        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp17        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp18        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V35 tmp19        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp20        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp21        [V37    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V38 tmp22        [V38,T21] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V38 tmp22        [V38,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
 ;* V39 tmp23        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp24        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V41 tmp25        [V41,T17] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
-;  V42 tmp26        [V42,T22] (  2,  2   )     int  ->  r14         "Inlining Arg"
-;  V43 tmp27        [V43,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp25        [V41,T19] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
+;  V42 tmp26        [V42,T24] (  2,  2   )     int  ->  r14         "Inlining Arg"
+;  V43 tmp27        [V43,T13] (  3,  3   )     int  ->  rdi         "Inlining Arg"
 ;* V44 tmp28        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V45 tmp29        [V45,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V46 tmp30        [V46,T24] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V45 tmp29        [V45,T20] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V46 tmp30        [V46,T25] (  2,  2   )     int  ->  r12         "Inlining Arg"
 ;* V47 tmp31        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp32        [V48,T67] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V49 tmp33        [V49    ] (  5,  2.50)     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp"
 ;  V50 tmp34        [V50    ] (  3,  1.50)   byref  ->  [rbp-0x48]  must-init pinned "Inline stloc first use temp"
 ;* V51 tmp35        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V52 tmp36        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V53 tmp37        [V53    ] (  3,  1.50)   byref  ->  [rbp-0x50]  must-init pinned "Inline stloc first use temp"
 ;* V54 tmp38        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V55 tmp39        [V55,T51] (  2,  1   )     int  ->  rax        
 ;* V56 tmp40        [V56    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp41        [V57    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V58 tmp42        [V58    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V60 tmp44        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V61 tmp45        [V61    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp46        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp47        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp48        [V64,T68] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V65 tmp49        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V66 tmp50        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V67 tmp51        [V67    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp52        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V69 tmp53        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V70 tmp54        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V71 tmp55        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp56        [V72,T69] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V73 tmp57        [V73    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V74 tmp58        [V74    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp59        [V75    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp60        [V76    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V77 tmp61        [V77    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V78 tmp62        [V78    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V79 tmp63        [V79    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V80 tmp64        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V81 tmp65        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp66        [V82    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V83 tmp67        [V83    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V84 tmp68        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp69        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp70        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp71        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V88 tmp72        [V88    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V89 tmp73        [V89    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V90 tmp74        [V90    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V91 tmp75        [V91    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V92 tmp76        [V92    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V93 tmp77        [V93    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp78        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp79        [V95    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V96 tmp80        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V97 tmp81        [V97    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp82        [V98    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V99 tmp83        [V99    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V100 tmp84       [V100,T19] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
-;  V101 tmp85       [V101,T25] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;  V100 tmp84       [V100,T21] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V101 tmp85       [V101,T26] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V102 tmp86       [V102    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V103 tmp87       [V103,T13] (  3,  3   )     int  ->  rsi         "Inlining Arg"
+;  V103 tmp87       [V103,T14] (  3,  3   )     int  ->  rsi         "Inlining Arg"
 ;* V104 tmp88       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V105 tmp89       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V106 tmp90       [V106    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V107 tmp91       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V108 tmp92       [V108    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp93       [V109    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V110 tmp94       [V110    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V111 tmp95       [V111    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V112 tmp96       [V112    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp97       [V113    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V114 tmp98       [V114    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V115 tmp99       [V115,T33] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V116 tmp100      [V116,T36] (  3,  1.50)     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
+;  V115 tmp99       [V115,T34] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;  V116 tmp100      [V116,T16] (  4,  2   )     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp101      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp102      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V119 tmp103      [V119,T40] (  2,  1   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;  V120 tmp104      [V120,T52] (  2,  1   )     int  ->  rdx         "field V13._length (fldOffset=0x8)" P-INDEP
 ;  V121 tmp105      [V121,T41] (  2,  1   )   byref  ->  rdi         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V122 tmp106      [V122,T53] (  2,  1   )     int  ->  rdx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V123 tmp107      [V123,T42] (  2,  1   )   byref  ->  rax         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;  V124 tmp108      [V124,T54] (  2,  1   )     int  ->  rcx         "field V21._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp109      [V125,T43] (  2,  1   )   byref  ->  r15         "field V22._reference (fldOffset=0x0)" P-INDEP
 ;  V126 tmp110      [V126,T55] (  2,  1   )     int  ->  r14         "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp111      [V127    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V128 tmp112      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;  V129 tmp113      [V129,T44] (  2,  1   )   byref  ->  rsi         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V130 tmp114      [V130,T37] (  3,  1.50)     int  ->  rdx         "field V29._length (fldOffset=0x8)" P-INDEP
 ;  V131 tmp115      [V131,T45] (  2,  1   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;  V132 tmp116      [V132,T56] (  2,  1   )     int  ->  rdx         "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp117      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp118      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V135 tmp119      [V135    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V136 tmp120      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;  V137 tmp121      [V137,T46] (  2,  1   )   byref  ->  r15         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
 ;  V138 tmp122      [V138,T57] (  2,  1   )     int  ->  r14         "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp123      [V139    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp124      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V141 tmp125      [V141,T47] (  2,  1   )   byref  ->  rax         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V142 tmp126      [V142,T58] (  2,  1   )     int  ->  r12         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V143 tmp127      [V143,T08] (  4,  2   )   byref  ->  r15         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;  V144 tmp128      [V144,T10] (  4,  2   )     int  ->  r14         "field V47._length (fldOffset=0x8)" P-INDEP
 ;  V145 tmp129      [V145,T09] (  4,  2   )   byref  ->  [rbp-0x78]  spill-single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;  V146 tmp130      [V146,T11] (  3,  1.50)     int  ->  r12         "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp131      [V147    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp132      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp133      [V149,T61] (  0,  0   )   byref  ->  zero-ref    single-def "field V57._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp134      [V150,T70] (  0,  0   )     int  ->  zero-ref    "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V151 tmp135      [V151,T62] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V152 tmp136      [V152,T71] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V153 tmp137      [V153    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V154 tmp138      [V154    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp139      [V155,T63] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp140      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V157 tmp141      [V157,T64] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp142      [V158,T72] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V159 tmp143      [V159    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V66._reference (fldOffset=0x0)" P-INDEP
 ;* V160 tmp144      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V66._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp145      [V161,T65] (  0,  0   )   byref  ->  zero-ref    single-def "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp146      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
 ;* V163 tmp147      [V163,T66] (  0,  0   )   byref  ->  zero-ref    single-def "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V164 tmp148      [V164,T73] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp149      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp150      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp151      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V76._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp152      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp153      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V77._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp154      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
 ;* V171 tmp155      [V171    ] (  0,  0   )   byref  ->  zero-ref    "field V78._reference (fldOffset=0x0)" P-INDEP
 ;* V172 tmp156      [V172    ] (  0,  0   )     int  ->  zero-ref    "field V78._length (fldOffset=0x8)" P-INDEP
 ;* V173 tmp157      [V173    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V174 tmp158      [V174    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp159      [V175    ] (  0,  0   )   byref  ->  zero-ref    "field V84._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp160      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V177 tmp161      [V177    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp162      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
 ;* V179 tmp163      [V179    ] (  0,  0   )   byref  ->  zero-ref    "field V89._reference (fldOffset=0x0)" P-INDEP
 ;* V180 tmp164      [V180    ] (  0,  0   )     int  ->  zero-ref    "field V89._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp165      [V181    ] (  0,  0   )   byref  ->  zero-ref    "field V92._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp166      [V182    ] (  0,  0   )     int  ->  zero-ref    "field V92._length (fldOffset=0x8)" P-INDEP
 ;* V183 tmp167      [V183    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V184 tmp168      [V184    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp169      [V185    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V95._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp170      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V95._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp171      [V187,T48] (  2,  1   )   byref  ->  r15         single-def "field V102._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp172      [V188,T38] (  3,  1.50)     int  ->  rsi         "field V102._length (fldOffset=0x8)" P-INDEP
 ;  V189 tmp173      [V189,T49] (  2,  1   )   byref  ->  r15         single-def "field V104._reference (fldOffset=0x0)" P-INDEP
 ;  V190 tmp174      [V190,T59] (  2,  1   )     int  ->  rsi         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V191 tmp175      [V191    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V192 tmp176      [V192    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;* V193 tmp177      [V193    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V107._reference (fldOffset=0x0)" P-INDEP
 ;* V194 tmp178      [V194    ] (  0,  0   )     int  ->  zero-ref    "field V107._length (fldOffset=0x8)" P-INDEP
-;  V195 tmp179      [V195,T26] (  2,  2   )    long  ->  r13         "Cast away GC"
-;  V196 tmp180      [V196,T27] (  2,  2   )    long  ->  r15         "Cast away GC"
-;  V197 tmp181      [V197,T28] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V198 tmp182      [V198,T29] (  2,  2   )    long  ->  r15         "argument with side effect"
-;  V199 tmp183      [V199,T30] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V200 tmp184      [V200,T31] (  2,  2   )    long  ->  rcx         "argument with side effect"
-;  V201 tmp185      [V201,T32] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V202 cse0        [V202,T15] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
+;  V195 tmp179      [V195,T27] (  2,  2   )    long  ->  r13         "Cast away GC"
+;  V196 tmp180      [V196,T28] (  2,  2   )    long  ->  r15         "Cast away GC"
+;  V197 tmp181      [V197,T29] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V198 tmp182      [V198,T30] (  2,  2   )    long  ->  r15         "argument with side effect"
+;  V199 tmp183      [V199,T31] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V200 tmp184      [V200,T32] (  2,  2   )    long  ->  rcx         "argument with side effect"
+;  V201 tmp185      [V201,T33] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V202 cse0        [V202,T17] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
 ;  V203 cse1        [V203,T39] (  3,  1.50)    long  ->  rsi         "CSE #06: conservative"
 ;  V204 cse2        [V204,T04] ( 11,  6.50)     int  ->  r14         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 88
 
 G_M54247_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        xor      eax, eax
        mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=44 bbWeight=1 PerfScore 10.83
 G_M54247_IG02:
        mov      r14d, dword ptr [r15+0x08]
        test     r14d, r14d
        je       G_M54247_IG24
 						;; size=13 bbWeight=1 PerfScore 3.25
 G_M54247_IG03:
        lea      rdi, bword ptr [r15+0x0C]
        mov      bword ptr [rbp-0x30], rdi
        mov      r13, bword ptr [rbp-0x30]
        xor      r12d, r12d
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M54247_IG04
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
 						;; size=36 bbWeight=0.50 PerfScore 5.12
 G_M54247_IG04:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M54247_IG09
        cmp      r14d, 2
        jl       SHORT G_M54247_IG08
        lea      edi, [r14-0x02]
        align    [0 bytes for IG05]
 						;; size=16 bbWeight=0.50 PerfScore 2.88
 G_M54247_IG05:
        mov      eax, dword ptr [r13+2*r12]
        test     eax, 0xD1FFAB1E
        jne      SHORT G_M54247_IG09
 						;; size=12 bbWeight=4 PerfScore 13.00
 G_M54247_IG06:
        lea      ecx, [rax+D1FFAB1EH]
        add      eax, 0xD1FFAB1E
        xor      eax, ecx
        test     eax, 0xD1FFAB1E
        jne      G_M54247_IG15
 						;; size=24 bbWeight=2 PerfScore 4.50
 G_M54247_IG07:
        add      r12, 2
        cmp      r12, rdi
        jbe      SHORT G_M54247_IG05
 						;; size=9 bbWeight=4 PerfScore 6.00
 G_M54247_IG08:
        test     r14b, 1
        je       G_M54247_IG22
        movzx    rax, word  ptr [r13+2*r12]
        cmp      eax, 127
        jbe      G_M54247_IG14
 						;; size=25 bbWeight=0.50 PerfScore 2.25
 G_M54247_IG09:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      gword ptr [rbp-0x68], rax
        test     r12, r12
        je       SHORT G_M54247_IG10
        lea      rdi, bword ptr [rax+0x0C]
        mov      edx, dword ptr [rax+0x08]
        mov      esi, r12d
        cmp      r14d, esi
-       jb       G_M54247_IG27
+       jb       G_M54247_IG28
        add      r15, 12
        cmp      esi, edx
-       ja       G_M54247_IG26
+       jg       G_M54247_IG26
        mov      edx, esi
        add      rdx, rdx
        mov      rsi, r15
        mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      rax, gword ptr [rbp-0x68]
 						;; size=72 bbWeight=0.50 PerfScore 7.00
 G_M54247_IG10:
        test     rax, rax
        je       SHORT G_M54247_IG11
        lea      r8, bword ptr [rax+0x0C]
        mov      bword ptr [rbp-0x38], r8
        mov      rcx, bword ptr [rbp-0x38]
        jmp      SHORT G_M54247_IG12
 						;; size=19 bbWeight=0.50 PerfScore 2.88
 G_M54247_IG11:
        xor      ecx, ecx
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M54247_IG12:
        mov      r8d, dword ptr [rax+0x08]
        sub      r8d, r12d
        lea      rsi, [r13+2*r12]
        mov      edx, r14d
        sub      edx, r12d
        lea      rcx, [rcx+2*r12]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      r10, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [r10]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x38], rax
        mov      rax, gword ptr [rbp-0x68]
 						;; size=51 bbWeight=0.50 PerfScore 5.62
 G_M54247_IG13:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M54247_IG14:
        add      eax, -65
        cmp      eax, 25
        ja       G_M54247_IG22
 						;; size=12 bbWeight=0.50 PerfScore 0.75
 G_M54247_IG15:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      r13, rax
        lea      rax, bword ptr [r13+0x0C]
        mov      ecx, dword ptr [r13+0x08]
        mov      bword ptr [rbp-0x70], rax
        mov      dword ptr [rbp-0x54], ecx
        mov      edx, r12d
        cmp      r14d, edx
-       jb       G_M54247_IG27
+       jb       G_M54247_IG28
        lea      rsi, bword ptr [r15+0x0C]
        cmp      edx, ecx
-       ja       G_M54247_IG26
+       jg       G_M54247_IG26
        mov      r8d, edx
        add      r8, r8
        mov      qword ptr [rbp-0x60], r8
        mov      rdx, r8
        mov      rdi, rax
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edi, r12d
        mov      rax, qword ptr [rbp-0x60]
        lea      r15, bword ptr [r15+rax+0x0C]
        sub      r14d, edi
        mov      edi, r12d
-       add      rax, bword ptr [rbp-0x70]
        mov      r12d, dword ptr [rbp-0x54]
+       cmp      edi, r12d
+       ja       G_M54247_IG27
+       add      rax, bword ptr [rbp-0x70]
        sub      r12d, edi
        mov      bword ptr [rbp-0x78], rax
        test     r14d, r14d
        je       G_M54247_IG19
        mov      rcx, bword ptr [rbp-0x78]
        xor      edi, edi
        mov      dword ptr [rbp-0x40], edi
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M54247_IG16
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        mov      rcx, bword ptr [rbp-0x78]
-						;; size=155 bbWeight=0.50 PerfScore 16.75
+						;; size=164 bbWeight=0.50 PerfScore 17.38
 G_M54247_IG16:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M54247_IG17
        mov      rdi, r15
        mov      esi, r14d
        mov      rdx, rcx
        mov      ecx, r12d
        lea      r8, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        call     [rax]System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        cmp      eax, 3
        mov      rcx, bword ptr [rbp-0x78]
        jne      SHORT G_M54247_IG19
 						;; size=43 bbWeight=0.50 PerfScore 5.50
 G_M54247_IG17:
        mov      bword ptr [rbp-0x48], r15
        mov      bword ptr [rbp-0x50], rcx
        movsxd   rsi, dword ptr [rbp-0x40]
        add      rsi, rsi
        add      r15, rsi
        mov      edx, r14d
        sub      edx, dword ptr [rbp-0x40]
        add      rcx, rsi
        mov      rsi, r15
        mov      r8d, r12d
        sub      r8d, dword ptr [rbp-0x40]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [rax]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x50], rax
 						;; size=61 bbWeight=0.50 PerfScore 7.75
 G_M54247_IG18:
        mov      bword ptr [rbp-0x48], rax
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M54247_IG19:
        xor      rax, rax
        mov      bword ptr [rbp-0x48], rax
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M54247_IG20:
        mov      bword ptr [rbp-0x50], rax
        mov      rax, r13
 						;; size=7 bbWeight=0.50 PerfScore 0.62
 G_M54247_IG21:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M54247_IG22:
        mov      rax, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M54247_IG23:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M54247_IG24:
        mov      rax, 0xD1FFAB1E      ; ''
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M54247_IG25:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M54247_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M54247_IG27:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
+G_M54247_IG28:
        mov      edi, 33
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 715, prolog size 44, PerfScore 104.71, instruction count 205, allocated bytes for code 715 (MethodHash=73a52c18) for method System.Globalization.TextInfo:ChangeCaseCommon[long](System.String):System.String:this (FullOpts)
+; Total bytes of code 737, prolog size 44, PerfScore 105.33, instruction count 210, allocated bytes for code 737 (MethodHash=73a52c18) for method System.Globalization.TextInfo:ChangeCaseCommon[long](System.String):System.String:this (FullOpts)
22 (3.08 % of base) - System.Globalization.TextInfo:ChangeCaseCommon[short](System.String):System.String:this
 ; Assembly listing for method System.Globalization.TextInfo:ChangeCaseCommon[short](System.String):System.String:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 27 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.Globalization.TextInfo>
 ;  V01 arg1         [V01,T03] (  8,  5.50)     ref  ->  r15         class-hnd single-def <System.String>
 ;* V02 loc0         [V02,T60] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V03 loc1         [V03,T05] (  4,  5.50)    long  ->  r13        
 ;  V04 loc2         [V04    ] (  2,  1   )   byref  ->  [rbp-0x30]  must-init pinned single-def
 ;  V05 loc3         [V05,T00] ( 15, 21.50)    long  ->  r12        
 ;  V06 loc4         [V06,T06] (  2,  4.50)    long  ->  rdi        
 ;  V07 loc5         [V07,T01] (  4, 12   )     int  ->  rax        
-;  V08 loc6         [V08,T34] (  3,  1.50)     int  ->  rax        
-;  V09 loc7         [V09,T14] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
+;  V08 loc6         [V08,T35] (  3,  1.50)     int  ->  rax        
+;  V09 loc7         [V09,T15] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
 ;* V10 loc8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ushort]>
 ;* V11 loc9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;  V12 loc10        [V12,T07] (  7,  3.50)     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.String>
 ;* V13 loc11        [V13    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V14 loc12        [V14    ] (  0,  0   )    long  ->  zero-ref   
 ;  V15 loc13        [V15    ] (  3,  1.50)   byref  ->  [rbp-0x38]  must-init pinned
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V17 tmp1         [V17,T50] (  2,  1   )    long  ->  r13        
-;  V18 tmp2         [V18,T35] (  3,  1.50)    long  ->  rcx        
+;  V18 tmp2         [V18,T36] (  3,  1.50)    long  ->  rcx        
 ;* V19 tmp3         [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V20 tmp4         [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp5         [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V22 tmp6         [V22    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V23 tmp7         [V23    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V24 tmp8         [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp9         [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp10        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V27 tmp11        [V27,T16] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V28 tmp12        [V28,T20] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V27 tmp11        [V27,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V28 tmp12        [V28,T22] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp13        [V29    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;  V30 tmp14        [V30,T12] (  3,  3   )     int  ->  rdx         "Inlining Arg"
 ;* V31 tmp15        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp16        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp17        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp18        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V35 tmp19        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp20        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp21        [V37    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V38 tmp22        [V38,T21] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V38 tmp22        [V38,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
 ;* V39 tmp23        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp24        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V41 tmp25        [V41,T17] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
-;  V42 tmp26        [V42,T22] (  2,  2   )     int  ->  r14         "Inlining Arg"
-;  V43 tmp27        [V43,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp25        [V41,T19] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
+;  V42 tmp26        [V42,T24] (  2,  2   )     int  ->  r14         "Inlining Arg"
+;  V43 tmp27        [V43,T13] (  3,  3   )     int  ->  rdi         "Inlining Arg"
 ;* V44 tmp28        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V45 tmp29        [V45,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V46 tmp30        [V46,T24] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V45 tmp29        [V45,T20] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V46 tmp30        [V46,T25] (  2,  2   )     int  ->  r12         "Inlining Arg"
 ;* V47 tmp31        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp32        [V48,T67] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V49 tmp33        [V49    ] (  5,  2.50)     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp"
 ;  V50 tmp34        [V50    ] (  3,  1.50)   byref  ->  [rbp-0x48]  must-init pinned "Inline stloc first use temp"
 ;* V51 tmp35        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V52 tmp36        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V53 tmp37        [V53    ] (  3,  1.50)   byref  ->  [rbp-0x50]  must-init pinned "Inline stloc first use temp"
 ;* V54 tmp38        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V55 tmp39        [V55,T51] (  2,  1   )     int  ->  rax        
 ;* V56 tmp40        [V56    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp41        [V57    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V58 tmp42        [V58    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V60 tmp44        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V61 tmp45        [V61    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp46        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp47        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp48        [V64,T68] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V65 tmp49        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V66 tmp50        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V67 tmp51        [V67    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp52        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V69 tmp53        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V70 tmp54        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V71 tmp55        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp56        [V72,T69] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V73 tmp57        [V73    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V74 tmp58        [V74    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp59        [V75    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp60        [V76    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V77 tmp61        [V77    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V78 tmp62        [V78    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V79 tmp63        [V79    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V80 tmp64        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V81 tmp65        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp66        [V82    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V83 tmp67        [V83    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V84 tmp68        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp69        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp70        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp71        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V88 tmp72        [V88    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V89 tmp73        [V89    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V90 tmp74        [V90    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V91 tmp75        [V91    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V92 tmp76        [V92    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V93 tmp77        [V93    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp78        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp79        [V95    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V96 tmp80        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V97 tmp81        [V97    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp82        [V98    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V99 tmp83        [V99    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V100 tmp84       [V100,T19] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
-;  V101 tmp85       [V101,T25] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;  V100 tmp84       [V100,T21] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V101 tmp85       [V101,T26] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V102 tmp86       [V102    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V103 tmp87       [V103,T13] (  3,  3   )     int  ->  rsi         "Inlining Arg"
+;  V103 tmp87       [V103,T14] (  3,  3   )     int  ->  rsi         "Inlining Arg"
 ;* V104 tmp88       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V105 tmp89       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V106 tmp90       [V106    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V107 tmp91       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V108 tmp92       [V108    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp93       [V109    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V110 tmp94       [V110    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V111 tmp95       [V111    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V112 tmp96       [V112    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp97       [V113    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V114 tmp98       [V114    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V115 tmp99       [V115,T33] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V116 tmp100      [V116,T36] (  3,  1.50)     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
+;  V115 tmp99       [V115,T34] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;  V116 tmp100      [V116,T16] (  4,  2   )     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp101      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp102      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V119 tmp103      [V119,T40] (  2,  1   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;  V120 tmp104      [V120,T52] (  2,  1   )     int  ->  rdx         "field V13._length (fldOffset=0x8)" P-INDEP
 ;  V121 tmp105      [V121,T41] (  2,  1   )   byref  ->  rdi         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V122 tmp106      [V122,T53] (  2,  1   )     int  ->  rdx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V123 tmp107      [V123,T42] (  2,  1   )   byref  ->  rax         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;  V124 tmp108      [V124,T54] (  2,  1   )     int  ->  rcx         "field V21._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp109      [V125,T43] (  2,  1   )   byref  ->  r15         "field V22._reference (fldOffset=0x0)" P-INDEP
 ;  V126 tmp110      [V126,T55] (  2,  1   )     int  ->  r14         "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp111      [V127    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V128 tmp112      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;  V129 tmp113      [V129,T44] (  2,  1   )   byref  ->  rsi         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V130 tmp114      [V130,T37] (  3,  1.50)     int  ->  rdx         "field V29._length (fldOffset=0x8)" P-INDEP
 ;  V131 tmp115      [V131,T45] (  2,  1   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;  V132 tmp116      [V132,T56] (  2,  1   )     int  ->  rdx         "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp117      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp118      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V135 tmp119      [V135    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V136 tmp120      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;  V137 tmp121      [V137,T46] (  2,  1   )   byref  ->  r15         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
 ;  V138 tmp122      [V138,T57] (  2,  1   )     int  ->  r14         "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp123      [V139    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp124      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V141 tmp125      [V141,T47] (  2,  1   )   byref  ->  rax         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V142 tmp126      [V142,T58] (  2,  1   )     int  ->  r12         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V143 tmp127      [V143,T08] (  4,  2   )   byref  ->  r15         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;  V144 tmp128      [V144,T10] (  4,  2   )     int  ->  r14         "field V47._length (fldOffset=0x8)" P-INDEP
 ;  V145 tmp129      [V145,T09] (  4,  2   )   byref  ->  [rbp-0x78]  spill-single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;  V146 tmp130      [V146,T11] (  3,  1.50)     int  ->  r12         "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp131      [V147    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp132      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp133      [V149,T61] (  0,  0   )   byref  ->  zero-ref    single-def "field V57._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp134      [V150,T70] (  0,  0   )     int  ->  zero-ref    "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V151 tmp135      [V151,T62] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V152 tmp136      [V152,T71] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V153 tmp137      [V153    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V154 tmp138      [V154    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp139      [V155,T63] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp140      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V157 tmp141      [V157,T64] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp142      [V158,T72] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V159 tmp143      [V159    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V66._reference (fldOffset=0x0)" P-INDEP
 ;* V160 tmp144      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V66._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp145      [V161,T65] (  0,  0   )   byref  ->  zero-ref    single-def "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp146      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
 ;* V163 tmp147      [V163,T66] (  0,  0   )   byref  ->  zero-ref    single-def "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V164 tmp148      [V164,T73] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp149      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp150      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp151      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V76._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp152      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp153      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V77._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp154      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
 ;* V171 tmp155      [V171    ] (  0,  0   )   byref  ->  zero-ref    "field V78._reference (fldOffset=0x0)" P-INDEP
 ;* V172 tmp156      [V172    ] (  0,  0   )     int  ->  zero-ref    "field V78._length (fldOffset=0x8)" P-INDEP
 ;* V173 tmp157      [V173    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V174 tmp158      [V174    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp159      [V175    ] (  0,  0   )   byref  ->  zero-ref    "field V84._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp160      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V177 tmp161      [V177    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp162      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
 ;* V179 tmp163      [V179    ] (  0,  0   )   byref  ->  zero-ref    "field V89._reference (fldOffset=0x0)" P-INDEP
 ;* V180 tmp164      [V180    ] (  0,  0   )     int  ->  zero-ref    "field V89._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp165      [V181    ] (  0,  0   )   byref  ->  zero-ref    "field V92._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp166      [V182    ] (  0,  0   )     int  ->  zero-ref    "field V92._length (fldOffset=0x8)" P-INDEP
 ;* V183 tmp167      [V183    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V184 tmp168      [V184    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp169      [V185    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V95._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp170      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V95._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp171      [V187,T48] (  2,  1   )   byref  ->  r15         single-def "field V102._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp172      [V188,T38] (  3,  1.50)     int  ->  rsi         "field V102._length (fldOffset=0x8)" P-INDEP
 ;  V189 tmp173      [V189,T49] (  2,  1   )   byref  ->  r15         single-def "field V104._reference (fldOffset=0x0)" P-INDEP
 ;  V190 tmp174      [V190,T59] (  2,  1   )     int  ->  rsi         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V191 tmp175      [V191    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V192 tmp176      [V192    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;* V193 tmp177      [V193    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V107._reference (fldOffset=0x0)" P-INDEP
 ;* V194 tmp178      [V194    ] (  0,  0   )     int  ->  zero-ref    "field V107._length (fldOffset=0x8)" P-INDEP
-;  V195 tmp179      [V195,T26] (  2,  2   )    long  ->  r13         "Cast away GC"
-;  V196 tmp180      [V196,T27] (  2,  2   )    long  ->  r15         "Cast away GC"
-;  V197 tmp181      [V197,T28] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V198 tmp182      [V198,T29] (  2,  2   )    long  ->  r15         "argument with side effect"
-;  V199 tmp183      [V199,T30] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V200 tmp184      [V200,T31] (  2,  2   )    long  ->  rcx         "argument with side effect"
-;  V201 tmp185      [V201,T32] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V202 cse0        [V202,T15] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
+;  V195 tmp179      [V195,T27] (  2,  2   )    long  ->  r13         "Cast away GC"
+;  V196 tmp180      [V196,T28] (  2,  2   )    long  ->  r15         "Cast away GC"
+;  V197 tmp181      [V197,T29] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V198 tmp182      [V198,T30] (  2,  2   )    long  ->  r15         "argument with side effect"
+;  V199 tmp183      [V199,T31] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V200 tmp184      [V200,T32] (  2,  2   )    long  ->  rcx         "argument with side effect"
+;  V201 tmp185      [V201,T33] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V202 cse0        [V202,T17] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
 ;  V203 cse1        [V203,T39] (  3,  1.50)    long  ->  rsi         "CSE #06: conservative"
 ;  V204 cse2        [V204,T04] ( 11,  6.50)     int  ->  r14         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 88
 
 G_M63263_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        xor      eax, eax
        mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=44 bbWeight=1 PerfScore 10.83
 G_M63263_IG02:
        mov      r14d, dword ptr [r15+0x08]
        test     r14d, r14d
        je       G_M63263_IG24
 						;; size=13 bbWeight=1 PerfScore 3.25
 G_M63263_IG03:
        lea      rdi, bword ptr [r15+0x0C]
        mov      bword ptr [rbp-0x30], rdi
        mov      r13, bword ptr [rbp-0x30]
        xor      r12d, r12d
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M63263_IG04
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
 						;; size=36 bbWeight=0.50 PerfScore 5.12
 G_M63263_IG04:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M63263_IG09
        cmp      r14d, 2
        jl       SHORT G_M63263_IG08
        lea      edi, [r14-0x02]
        align    [0 bytes for IG05]
 						;; size=16 bbWeight=0.50 PerfScore 2.88
 G_M63263_IG05:
        mov      eax, dword ptr [r13+2*r12]
        test     eax, 0xD1FFAB1E
        jne      SHORT G_M63263_IG09
 						;; size=12 bbWeight=4 PerfScore 13.00
 G_M63263_IG06:
        lea      ecx, [rax+D1FFAB1EH]
        add      eax, 0xD1FFAB1E
        xor      eax, ecx
        test     eax, 0xD1FFAB1E
        jne      G_M63263_IG15
 						;; size=24 bbWeight=2 PerfScore 4.50
 G_M63263_IG07:
        add      r12, 2
        cmp      r12, rdi
        jbe      SHORT G_M63263_IG05
 						;; size=9 bbWeight=4 PerfScore 6.00
 G_M63263_IG08:
        test     r14b, 1
        je       G_M63263_IG22
        movzx    rax, word  ptr [r13+2*r12]
        cmp      eax, 127
        jbe      G_M63263_IG14
 						;; size=25 bbWeight=0.50 PerfScore 2.25
 G_M63263_IG09:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      gword ptr [rbp-0x68], rax
        test     r12, r12
        je       SHORT G_M63263_IG10
        lea      rdi, bword ptr [rax+0x0C]
        mov      edx, dword ptr [rax+0x08]
        mov      esi, r12d
        cmp      r14d, esi
-       jb       G_M63263_IG27
+       jb       G_M63263_IG28
        add      r15, 12
        cmp      esi, edx
-       ja       G_M63263_IG26
+       jg       G_M63263_IG26
        mov      edx, esi
        add      rdx, rdx
        mov      rsi, r15
        mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      rax, gword ptr [rbp-0x68]
 						;; size=72 bbWeight=0.50 PerfScore 7.00
 G_M63263_IG10:
        test     rax, rax
        je       SHORT G_M63263_IG11
        lea      r8, bword ptr [rax+0x0C]
        mov      bword ptr [rbp-0x38], r8
        mov      rcx, bword ptr [rbp-0x38]
        jmp      SHORT G_M63263_IG12
 						;; size=19 bbWeight=0.50 PerfScore 2.88
 G_M63263_IG11:
        xor      ecx, ecx
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M63263_IG12:
        mov      r8d, dword ptr [rax+0x08]
        sub      r8d, r12d
        lea      rsi, [r13+2*r12]
        mov      edx, r14d
        sub      edx, r12d
        lea      rcx, [rcx+2*r12]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      r10, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [r10]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x38], rax
        mov      rax, gword ptr [rbp-0x68]
 						;; size=51 bbWeight=0.50 PerfScore 5.62
 G_M63263_IG13:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M63263_IG14:
        add      eax, -65
        cmp      eax, 25
        ja       G_M63263_IG22
 						;; size=12 bbWeight=0.50 PerfScore 0.75
 G_M63263_IG15:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      r13, rax
        lea      rax, bword ptr [r13+0x0C]
        mov      ecx, dword ptr [r13+0x08]
        mov      bword ptr [rbp-0x70], rax
        mov      dword ptr [rbp-0x54], ecx
        mov      edx, r12d
        cmp      r14d, edx
-       jb       G_M63263_IG27
+       jb       G_M63263_IG28
        lea      rsi, bword ptr [r15+0x0C]
        cmp      edx, ecx
-       ja       G_M63263_IG26
+       jg       G_M63263_IG26
        mov      r8d, edx
        add      r8, r8
        mov      qword ptr [rbp-0x60], r8
        mov      rdx, r8
        mov      rdi, rax
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edi, r12d
        mov      rax, qword ptr [rbp-0x60]
        lea      r15, bword ptr [r15+rax+0x0C]
        sub      r14d, edi
        mov      edi, r12d
-       add      rax, bword ptr [rbp-0x70]
        mov      r12d, dword ptr [rbp-0x54]
+       cmp      edi, r12d
+       ja       G_M63263_IG27
+       add      rax, bword ptr [rbp-0x70]
        sub      r12d, edi
        mov      bword ptr [rbp-0x78], rax
        test     r14d, r14d
        je       G_M63263_IG19
        mov      rcx, bword ptr [rbp-0x78]
        xor      edi, edi
        mov      dword ptr [rbp-0x40], edi
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M63263_IG16
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        mov      rcx, bword ptr [rbp-0x78]
-						;; size=155 bbWeight=0.50 PerfScore 16.75
+						;; size=164 bbWeight=0.50 PerfScore 17.38
 G_M63263_IG16:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M63263_IG17
        mov      rdi, r15
        mov      esi, r14d
        mov      rdx, rcx
        mov      ecx, r12d
        lea      r8, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        call     [rax]System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        cmp      eax, 3
        mov      rcx, bword ptr [rbp-0x78]
        jne      SHORT G_M63263_IG19
 						;; size=43 bbWeight=0.50 PerfScore 5.50
 G_M63263_IG17:
        mov      bword ptr [rbp-0x48], r15
        mov      bword ptr [rbp-0x50], rcx
        movsxd   rsi, dword ptr [rbp-0x40]
        add      rsi, rsi
        add      r15, rsi
        mov      edx, r14d
        sub      edx, dword ptr [rbp-0x40]
        add      rcx, rsi
        mov      rsi, r15
        mov      r8d, r12d
        sub      r8d, dword ptr [rbp-0x40]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [rax]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x50], rax
 						;; size=61 bbWeight=0.50 PerfScore 7.75
 G_M63263_IG18:
        mov      bword ptr [rbp-0x48], rax
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M63263_IG19:
        xor      rax, rax
        mov      bword ptr [rbp-0x48], rax
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M63263_IG20:
        mov      bword ptr [rbp-0x50], rax
        mov      rax, r13
 						;; size=7 bbWeight=0.50 PerfScore 0.62
 G_M63263_IG21:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M63263_IG22:
        mov      rax, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M63263_IG23:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M63263_IG24:
        mov      rax, 0xD1FFAB1E      ; ''
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M63263_IG25:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M63263_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M63263_IG27:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
+G_M63263_IG28:
        mov      edi, 33
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 715, prolog size 44, PerfScore 104.71, instruction count 205, allocated bytes for code 715 (MethodHash=623008e0) for method System.Globalization.TextInfo:ChangeCaseCommon[short](System.String):System.String:this (FullOpts)
+; Total bytes of code 737, prolog size 44, PerfScore 105.33, instruction count 210, allocated bytes for code 737 (MethodHash=623008e0) for method System.Globalization.TextInfo:ChangeCaseCommon[short](System.String):System.String:this (FullOpts)
22 (3.08 % of base) - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this
 ; Assembly listing for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 27 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.Globalization.TextInfo>
 ;  V01 arg1         [V01,T03] (  8,  5.50)     ref  ->  r15         class-hnd single-def <System.String>
 ;* V02 loc0         [V02,T60] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V03 loc1         [V03,T05] (  4,  5.50)    long  ->  r13        
 ;  V04 loc2         [V04    ] (  2,  1   )   byref  ->  [rbp-0x30]  must-init pinned single-def
 ;  V05 loc3         [V05,T00] ( 15, 21.50)    long  ->  r12        
 ;  V06 loc4         [V06,T06] (  2,  4.50)    long  ->  rdi        
 ;  V07 loc5         [V07,T01] (  4, 12   )     int  ->  rax        
-;  V08 loc6         [V08,T34] (  3,  1.50)     int  ->  rax        
-;  V09 loc7         [V09,T14] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
+;  V08 loc6         [V08,T35] (  3,  1.50)     int  ->  rax        
+;  V09 loc7         [V09,T15] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
 ;* V10 loc8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ushort]>
 ;* V11 loc9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;  V12 loc10        [V12,T07] (  7,  3.50)     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.String>
 ;* V13 loc11        [V13    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V14 loc12        [V14    ] (  0,  0   )    long  ->  zero-ref   
 ;  V15 loc13        [V15    ] (  3,  1.50)   byref  ->  [rbp-0x38]  must-init pinned
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V17 tmp1         [V17,T50] (  2,  1   )    long  ->  r13        
-;  V18 tmp2         [V18,T35] (  3,  1.50)    long  ->  rcx        
+;  V18 tmp2         [V18,T36] (  3,  1.50)    long  ->  rcx        
 ;* V19 tmp3         [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V20 tmp4         [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp5         [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V22 tmp6         [V22    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V23 tmp7         [V23    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V24 tmp8         [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp9         [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp10        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V27 tmp11        [V27,T16] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V28 tmp12        [V28,T20] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V27 tmp11        [V27,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V28 tmp12        [V28,T22] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp13        [V29    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;  V30 tmp14        [V30,T12] (  3,  3   )     int  ->  rdx         "Inlining Arg"
 ;* V31 tmp15        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp16        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp17        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp18        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V35 tmp19        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp20        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp21        [V37    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V38 tmp22        [V38,T21] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V38 tmp22        [V38,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
 ;* V39 tmp23        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp24        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V41 tmp25        [V41,T17] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
-;  V42 tmp26        [V42,T22] (  2,  2   )     int  ->  r14         "Inlining Arg"
-;  V43 tmp27        [V43,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp25        [V41,T19] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
+;  V42 tmp26        [V42,T24] (  2,  2   )     int  ->  r14         "Inlining Arg"
+;  V43 tmp27        [V43,T13] (  3,  3   )     int  ->  rdi         "Inlining Arg"
 ;* V44 tmp28        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V45 tmp29        [V45,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V46 tmp30        [V46,T24] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V45 tmp29        [V45,T20] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V46 tmp30        [V46,T25] (  2,  2   )     int  ->  r12         "Inlining Arg"
 ;* V47 tmp31        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp32        [V48,T67] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V49 tmp33        [V49    ] (  5,  2.50)     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp"
 ;  V50 tmp34        [V50    ] (  3,  1.50)   byref  ->  [rbp-0x48]  must-init pinned "Inline stloc first use temp"
 ;* V51 tmp35        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V52 tmp36        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V53 tmp37        [V53    ] (  3,  1.50)   byref  ->  [rbp-0x50]  must-init pinned "Inline stloc first use temp"
 ;* V54 tmp38        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V55 tmp39        [V55,T51] (  2,  1   )     int  ->  rax        
 ;* V56 tmp40        [V56    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp41        [V57    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V58 tmp42        [V58    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V60 tmp44        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V61 tmp45        [V61    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp46        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp47        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp48        [V64,T68] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V65 tmp49        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V66 tmp50        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V67 tmp51        [V67    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp52        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V69 tmp53        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V70 tmp54        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V71 tmp55        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp56        [V72,T69] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V73 tmp57        [V73    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V74 tmp58        [V74    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp59        [V75    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp60        [V76    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V77 tmp61        [V77    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V78 tmp62        [V78    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V79 tmp63        [V79    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V80 tmp64        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V81 tmp65        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp66        [V82    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V83 tmp67        [V83    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V84 tmp68        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp69        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp70        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp71        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V88 tmp72        [V88    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V89 tmp73        [V89    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V90 tmp74        [V90    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V91 tmp75        [V91    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V92 tmp76        [V92    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V93 tmp77        [V93    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp78        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp79        [V95    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V96 tmp80        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V97 tmp81        [V97    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp82        [V98    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V99 tmp83        [V99    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V100 tmp84       [V100,T19] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
-;  V101 tmp85       [V101,T25] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;  V100 tmp84       [V100,T21] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V101 tmp85       [V101,T26] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V102 tmp86       [V102    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V103 tmp87       [V103,T13] (  3,  3   )     int  ->  rsi         "Inlining Arg"
+;  V103 tmp87       [V103,T14] (  3,  3   )     int  ->  rsi         "Inlining Arg"
 ;* V104 tmp88       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V105 tmp89       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V106 tmp90       [V106    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V107 tmp91       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V108 tmp92       [V108    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp93       [V109    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V110 tmp94       [V110    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V111 tmp95       [V111    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V112 tmp96       [V112    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp97       [V113    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V114 tmp98       [V114    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V115 tmp99       [V115,T33] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V116 tmp100      [V116,T36] (  3,  1.50)     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
+;  V115 tmp99       [V115,T34] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;  V116 tmp100      [V116,T16] (  4,  2   )     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp101      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp102      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V119 tmp103      [V119,T40] (  2,  1   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;  V120 tmp104      [V120,T52] (  2,  1   )     int  ->  rdx         "field V13._length (fldOffset=0x8)" P-INDEP
 ;  V121 tmp105      [V121,T41] (  2,  1   )   byref  ->  rdi         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V122 tmp106      [V122,T53] (  2,  1   )     int  ->  rdx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V123 tmp107      [V123,T42] (  2,  1   )   byref  ->  rax         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;  V124 tmp108      [V124,T54] (  2,  1   )     int  ->  rcx         "field V21._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp109      [V125,T43] (  2,  1   )   byref  ->  r15         "field V22._reference (fldOffset=0x0)" P-INDEP
 ;  V126 tmp110      [V126,T55] (  2,  1   )     int  ->  r14         "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp111      [V127    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V128 tmp112      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;  V129 tmp113      [V129,T44] (  2,  1   )   byref  ->  rsi         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V130 tmp114      [V130,T37] (  3,  1.50)     int  ->  rdx         "field V29._length (fldOffset=0x8)" P-INDEP
 ;  V131 tmp115      [V131,T45] (  2,  1   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;  V132 tmp116      [V132,T56] (  2,  1   )     int  ->  rdx         "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp117      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp118      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V135 tmp119      [V135    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V136 tmp120      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;  V137 tmp121      [V137,T46] (  2,  1   )   byref  ->  r15         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
 ;  V138 tmp122      [V138,T57] (  2,  1   )     int  ->  r14         "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp123      [V139    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp124      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V141 tmp125      [V141,T47] (  2,  1   )   byref  ->  rax         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V142 tmp126      [V142,T58] (  2,  1   )     int  ->  r12         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V143 tmp127      [V143,T08] (  4,  2   )   byref  ->  r15         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;  V144 tmp128      [V144,T10] (  4,  2   )     int  ->  r14         "field V47._length (fldOffset=0x8)" P-INDEP
 ;  V145 tmp129      [V145,T09] (  4,  2   )   byref  ->  [rbp-0x78]  spill-single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;  V146 tmp130      [V146,T11] (  3,  1.50)     int  ->  r12         "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp131      [V147    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp132      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp133      [V149,T61] (  0,  0   )   byref  ->  zero-ref    single-def "field V57._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp134      [V150,T70] (  0,  0   )     int  ->  zero-ref    "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V151 tmp135      [V151,T62] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V152 tmp136      [V152,T71] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V153 tmp137      [V153    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V154 tmp138      [V154    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp139      [V155,T63] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp140      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V157 tmp141      [V157,T64] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp142      [V158,T72] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V159 tmp143      [V159    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V66._reference (fldOffset=0x0)" P-INDEP
 ;* V160 tmp144      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V66._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp145      [V161,T65] (  0,  0   )   byref  ->  zero-ref    single-def "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp146      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
 ;* V163 tmp147      [V163,T66] (  0,  0   )   byref  ->  zero-ref    single-def "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V164 tmp148      [V164,T73] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp149      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp150      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp151      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V76._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp152      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp153      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V77._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp154      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
 ;* V171 tmp155      [V171    ] (  0,  0   )   byref  ->  zero-ref    "field V78._reference (fldOffset=0x0)" P-INDEP
 ;* V172 tmp156      [V172    ] (  0,  0   )     int  ->  zero-ref    "field V78._length (fldOffset=0x8)" P-INDEP
 ;* V173 tmp157      [V173    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V174 tmp158      [V174    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp159      [V175    ] (  0,  0   )   byref  ->  zero-ref    "field V84._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp160      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V177 tmp161      [V177    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp162      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
 ;* V179 tmp163      [V179    ] (  0,  0   )   byref  ->  zero-ref    "field V89._reference (fldOffset=0x0)" P-INDEP
 ;* V180 tmp164      [V180    ] (  0,  0   )     int  ->  zero-ref    "field V89._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp165      [V181    ] (  0,  0   )   byref  ->  zero-ref    "field V92._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp166      [V182    ] (  0,  0   )     int  ->  zero-ref    "field V92._length (fldOffset=0x8)" P-INDEP
 ;* V183 tmp167      [V183    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V184 tmp168      [V184    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp169      [V185    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V95._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp170      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V95._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp171      [V187,T48] (  2,  1   )   byref  ->  r15         single-def "field V102._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp172      [V188,T38] (  3,  1.50)     int  ->  rsi         "field V102._length (fldOffset=0x8)" P-INDEP
 ;  V189 tmp173      [V189,T49] (  2,  1   )   byref  ->  r15         single-def "field V104._reference (fldOffset=0x0)" P-INDEP
 ;  V190 tmp174      [V190,T59] (  2,  1   )     int  ->  rsi         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V191 tmp175      [V191    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V192 tmp176      [V192    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;* V193 tmp177      [V193    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V107._reference (fldOffset=0x0)" P-INDEP
 ;* V194 tmp178      [V194    ] (  0,  0   )     int  ->  zero-ref    "field V107._length (fldOffset=0x8)" P-INDEP
-;  V195 tmp179      [V195,T26] (  2,  2   )    long  ->  r13         "Cast away GC"
-;  V196 tmp180      [V196,T27] (  2,  2   )    long  ->  r15         "Cast away GC"
-;  V197 tmp181      [V197,T28] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V198 tmp182      [V198,T29] (  2,  2   )    long  ->  r15         "argument with side effect"
-;  V199 tmp183      [V199,T30] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V200 tmp184      [V200,T31] (  2,  2   )    long  ->  rcx         "argument with side effect"
-;  V201 tmp185      [V201,T32] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V202 cse0        [V202,T15] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
+;  V195 tmp179      [V195,T27] (  2,  2   )    long  ->  r13         "Cast away GC"
+;  V196 tmp180      [V196,T28] (  2,  2   )    long  ->  r15         "Cast away GC"
+;  V197 tmp181      [V197,T29] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V198 tmp182      [V198,T30] (  2,  2   )    long  ->  r15         "argument with side effect"
+;  V199 tmp183      [V199,T31] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V200 tmp184      [V200,T32] (  2,  2   )    long  ->  rcx         "argument with side effect"
+;  V201 tmp185      [V201,T33] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V202 cse0        [V202,T17] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
 ;  V203 cse1        [V203,T39] (  3,  1.50)    long  ->  rsi         "CSE #06: conservative"
 ;  V204 cse2        [V204,T04] ( 11,  6.50)     int  ->  r14         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 88
 
 G_M6613_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        xor      eax, eax
        mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=44 bbWeight=1 PerfScore 10.83
 G_M6613_IG02:
        mov      r14d, dword ptr [r15+0x08]
        test     r14d, r14d
        je       G_M6613_IG24
 						;; size=13 bbWeight=1 PerfScore 3.25
 G_M6613_IG03:
        lea      rdi, bword ptr [r15+0x0C]
        mov      bword ptr [rbp-0x30], rdi
        mov      r13, bword ptr [rbp-0x30]
        xor      r12d, r12d
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M6613_IG04
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
 						;; size=36 bbWeight=0.50 PerfScore 5.12
 G_M6613_IG04:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M6613_IG09
        cmp      r14d, 2
        jl       SHORT G_M6613_IG08
        lea      edi, [r14-0x02]
        align    [0 bytes for IG05]
 						;; size=16 bbWeight=0.50 PerfScore 2.88
 G_M6613_IG05:
        mov      eax, dword ptr [r13+2*r12]
        test     eax, 0xD1FFAB1E
        jne      SHORT G_M6613_IG09
 						;; size=12 bbWeight=4 PerfScore 13.00
 G_M6613_IG06:
        lea      ecx, [rax+D1FFAB1EH]
        add      eax, 0xD1FFAB1E
        xor      eax, ecx
        test     eax, 0xD1FFAB1E
        jne      G_M6613_IG15
 						;; size=24 bbWeight=2 PerfScore 4.50
 G_M6613_IG07:
        add      r12, 2
        cmp      r12, rdi
        jbe      SHORT G_M6613_IG05
 						;; size=9 bbWeight=4 PerfScore 6.00
 G_M6613_IG08:
        test     r14b, 1
        je       G_M6613_IG22
        movzx    rax, word  ptr [r13+2*r12]
        cmp      eax, 127
        jbe      G_M6613_IG14
 						;; size=25 bbWeight=0.50 PerfScore 2.25
 G_M6613_IG09:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      gword ptr [rbp-0x68], rax
        test     r12, r12
        je       SHORT G_M6613_IG10
        lea      rdi, bword ptr [rax+0x0C]
        mov      edx, dword ptr [rax+0x08]
        mov      esi, r12d
        cmp      r14d, esi
-       jb       G_M6613_IG27
+       jb       G_M6613_IG28
        add      r15, 12
        cmp      esi, edx
-       ja       G_M6613_IG26
+       jg       G_M6613_IG26
        mov      edx, esi
        add      rdx, rdx
        mov      rsi, r15
        mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      rax, gword ptr [rbp-0x68]
 						;; size=72 bbWeight=0.50 PerfScore 7.00
 G_M6613_IG10:
        test     rax, rax
        je       SHORT G_M6613_IG11
        lea      r8, bword ptr [rax+0x0C]
        mov      bword ptr [rbp-0x38], r8
        mov      rcx, bword ptr [rbp-0x38]
        jmp      SHORT G_M6613_IG12
 						;; size=19 bbWeight=0.50 PerfScore 2.88
 G_M6613_IG11:
        xor      ecx, ecx
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M6613_IG12:
        mov      r8d, dword ptr [rax+0x08]
        sub      r8d, r12d
        lea      rsi, [r13+2*r12]
        mov      edx, r14d
        sub      edx, r12d
        lea      rcx, [rcx+2*r12]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      r10, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [r10]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x38], rax
        mov      rax, gword ptr [rbp-0x68]
 						;; size=51 bbWeight=0.50 PerfScore 5.62
 G_M6613_IG13:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M6613_IG14:
        add      eax, -65
        cmp      eax, 25
        ja       G_M6613_IG22
 						;; size=12 bbWeight=0.50 PerfScore 0.75
 G_M6613_IG15:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      r13, rax
        lea      rax, bword ptr [r13+0x0C]
        mov      ecx, dword ptr [r13+0x08]
        mov      bword ptr [rbp-0x70], rax
        mov      dword ptr [rbp-0x54], ecx
        mov      edx, r12d
        cmp      r14d, edx
-       jb       G_M6613_IG27
+       jb       G_M6613_IG28
        lea      rsi, bword ptr [r15+0x0C]
        cmp      edx, ecx
-       ja       G_M6613_IG26
+       jg       G_M6613_IG26
        mov      r8d, edx
        add      r8, r8
        mov      qword ptr [rbp-0x60], r8
        mov      rdx, r8
        mov      rdi, rax
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edi, r12d
        mov      rax, qword ptr [rbp-0x60]
        lea      r15, bword ptr [r15+rax+0x0C]
        sub      r14d, edi
        mov      edi, r12d
-       add      rax, bword ptr [rbp-0x70]
        mov      r12d, dword ptr [rbp-0x54]
+       cmp      edi, r12d
+       ja       G_M6613_IG27
+       add      rax, bword ptr [rbp-0x70]
        sub      r12d, edi
        mov      bword ptr [rbp-0x78], rax
        test     r14d, r14d
        je       G_M6613_IG19
        mov      rcx, bword ptr [rbp-0x78]
        xor      edi, edi
        mov      dword ptr [rbp-0x40], edi
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M6613_IG16
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        mov      rcx, bword ptr [rbp-0x78]
-						;; size=155 bbWeight=0.50 PerfScore 16.75
+						;; size=164 bbWeight=0.50 PerfScore 17.38
 G_M6613_IG16:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M6613_IG17
        mov      rdi, r15
        mov      esi, r14d
        mov      rdx, rcx
        mov      ecx, r12d
        lea      r8, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        call     [rax]System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        cmp      eax, 3
        mov      rcx, bword ptr [rbp-0x78]
        jne      SHORT G_M6613_IG19
 						;; size=43 bbWeight=0.50 PerfScore 5.50
 G_M6613_IG17:
        mov      bword ptr [rbp-0x48], r15
        mov      bword ptr [rbp-0x50], rcx
        movsxd   rsi, dword ptr [rbp-0x40]
        add      rsi, rsi
        add      r15, rsi
        mov      edx, r14d
        sub      edx, dword ptr [rbp-0x40]
        add      rcx, rsi
        mov      rsi, r15
        mov      r8d, r12d
        sub      r8d, dword ptr [rbp-0x40]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [rax]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x50], rax
 						;; size=61 bbWeight=0.50 PerfScore 7.75
 G_M6613_IG18:
        mov      bword ptr [rbp-0x48], rax
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M6613_IG19:
        xor      rax, rax
        mov      bword ptr [rbp-0x48], rax
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M6613_IG20:
        mov      bword ptr [rbp-0x50], rax
        mov      rax, r13
 						;; size=7 bbWeight=0.50 PerfScore 0.62
 G_M6613_IG21:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M6613_IG22:
        mov      rax, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M6613_IG23:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M6613_IG24:
        mov      rax, 0xD1FFAB1E      ; ''
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M6613_IG25:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M6613_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M6613_IG27:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
+G_M6613_IG28:
        mov      edi, 33
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 715, prolog size 44, PerfScore 104.71, instruction count 205, allocated bytes for code 715 (MethodHash=bab0e62a) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
+; Total bytes of code 737, prolog size 44, PerfScore 105.33, instruction count 210, allocated bytes for code 737 (MethodHash=bab0e62a) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
22 (3.05 % of base) - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this
 ; Assembly listing for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 27 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.Globalization.TextInfo>
 ;  V01 arg1         [V01,T03] (  8,  5.50)     ref  ->  r15         class-hnd single-def <System.String>
 ;* V02 loc0         [V02,T60] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V03 loc1         [V03,T05] (  4,  5.50)    long  ->  r13        
 ;  V04 loc2         [V04    ] (  2,  1   )   byref  ->  [rbp-0x30]  must-init pinned single-def
 ;  V05 loc3         [V05,T00] ( 15, 21.50)    long  ->  r12        
 ;  V06 loc4         [V06,T06] (  2,  4.50)    long  ->  rdi        
 ;  V07 loc5         [V07,T01] (  4, 12   )     int  ->  rax        
-;  V08 loc6         [V08,T34] (  3,  1.50)     int  ->  rax        
-;  V09 loc7         [V09,T14] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
+;  V08 loc6         [V08,T35] (  3,  1.50)     int  ->  rax        
+;  V09 loc7         [V09,T15] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
 ;* V10 loc8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ushort]>
 ;* V11 loc9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;  V12 loc10        [V12,T07] (  7,  3.50)     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.String>
 ;* V13 loc11        [V13    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V14 loc12        [V14    ] (  0,  0   )    long  ->  zero-ref   
 ;  V15 loc13        [V15    ] (  3,  1.50)   byref  ->  [rbp-0x38]  must-init pinned
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V17 tmp1         [V17,T50] (  2,  1   )    long  ->  r13        
-;  V18 tmp2         [V18,T35] (  3,  1.50)    long  ->  rcx        
+;  V18 tmp2         [V18,T36] (  3,  1.50)    long  ->  rcx        
 ;* V19 tmp3         [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V20 tmp4         [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp5         [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V22 tmp6         [V22    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V23 tmp7         [V23    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V24 tmp8         [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp9         [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp10        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V27 tmp11        [V27,T16] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V28 tmp12        [V28,T20] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V27 tmp11        [V27,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V28 tmp12        [V28,T22] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp13        [V29    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;  V30 tmp14        [V30,T12] (  3,  3   )     int  ->  rdx         "Inlining Arg"
 ;* V31 tmp15        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp16        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp17        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp18        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V35 tmp19        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp20        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp21        [V37    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V38 tmp22        [V38,T21] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V38 tmp22        [V38,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
 ;* V39 tmp23        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp24        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V41 tmp25        [V41,T17] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
-;  V42 tmp26        [V42,T22] (  2,  2   )     int  ->  r14         "Inlining Arg"
-;  V43 tmp27        [V43,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp25        [V41,T19] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
+;  V42 tmp26        [V42,T24] (  2,  2   )     int  ->  r14         "Inlining Arg"
+;  V43 tmp27        [V43,T13] (  3,  3   )     int  ->  rdi         "Inlining Arg"
 ;* V44 tmp28        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V45 tmp29        [V45,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V46 tmp30        [V46,T24] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V45 tmp29        [V45,T20] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V46 tmp30        [V46,T25] (  2,  2   )     int  ->  r12         "Inlining Arg"
 ;* V47 tmp31        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp32        [V48,T67] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V49 tmp33        [V49    ] (  5,  2.50)     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp"
 ;  V50 tmp34        [V50    ] (  3,  1.50)   byref  ->  [rbp-0x48]  must-init pinned "Inline stloc first use temp"
 ;* V51 tmp35        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V52 tmp36        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V53 tmp37        [V53    ] (  3,  1.50)   byref  ->  [rbp-0x50]  must-init pinned "Inline stloc first use temp"
 ;* V54 tmp38        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V55 tmp39        [V55,T51] (  2,  1   )     int  ->  rax        
 ;* V56 tmp40        [V56    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp41        [V57    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V58 tmp42        [V58    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V60 tmp44        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V61 tmp45        [V61    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp46        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp47        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp48        [V64    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V65 tmp49        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V66 tmp50        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V67 tmp51        [V67    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp52        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V69 tmp53        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V70 tmp54        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V71 tmp55        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp56        [V72    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V73 tmp57        [V73    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V74 tmp58        [V74    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp59        [V75    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp60        [V76    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V77 tmp61        [V77    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V78 tmp62        [V78    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V79 tmp63        [V79    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V80 tmp64        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V81 tmp65        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp66        [V82    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V83 tmp67        [V83,T68] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V84 tmp68        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp69        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp70        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp71        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V88 tmp72        [V88    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V89 tmp73        [V89    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V90 tmp74        [V90    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V91 tmp75        [V91,T69] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V92 tmp76        [V92    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V93 tmp77        [V93    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp78        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp79        [V95    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V96 tmp80        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V97 tmp81        [V97    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp82        [V98    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V99 tmp83        [V99    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V100 tmp84       [V100,T19] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
-;  V101 tmp85       [V101,T25] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;  V100 tmp84       [V100,T21] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V101 tmp85       [V101,T26] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V102 tmp86       [V102    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V103 tmp87       [V103,T13] (  3,  3   )     int  ->  rsi         "Inlining Arg"
+;  V103 tmp87       [V103,T14] (  3,  3   )     int  ->  rsi         "Inlining Arg"
 ;* V104 tmp88       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V105 tmp89       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V106 tmp90       [V106    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V107 tmp91       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V108 tmp92       [V108    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp93       [V109    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V110 tmp94       [V110    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V111 tmp95       [V111    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V112 tmp96       [V112    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp97       [V113    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V114 tmp98       [V114    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V115 tmp99       [V115,T33] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V116 tmp100      [V116,T36] (  3,  1.50)     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
+;  V115 tmp99       [V115,T34] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;  V116 tmp100      [V116,T16] (  4,  2   )     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp101      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp102      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V119 tmp103      [V119,T40] (  2,  1   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;  V120 tmp104      [V120,T52] (  2,  1   )     int  ->  rdx         "field V13._length (fldOffset=0x8)" P-INDEP
 ;  V121 tmp105      [V121,T41] (  2,  1   )   byref  ->  rdi         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V122 tmp106      [V122,T53] (  2,  1   )     int  ->  rdx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V123 tmp107      [V123,T42] (  2,  1   )   byref  ->  rax         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;  V124 tmp108      [V124,T54] (  2,  1   )     int  ->  rcx         "field V21._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp109      [V125,T43] (  2,  1   )   byref  ->  r15         "field V22._reference (fldOffset=0x0)" P-INDEP
 ;  V126 tmp110      [V126,T55] (  2,  1   )     int  ->  r14         "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp111      [V127    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V128 tmp112      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;  V129 tmp113      [V129,T44] (  2,  1   )   byref  ->  rsi         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V130 tmp114      [V130,T37] (  3,  1.50)     int  ->  rdx         "field V29._length (fldOffset=0x8)" P-INDEP
 ;  V131 tmp115      [V131,T45] (  2,  1   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;  V132 tmp116      [V132,T56] (  2,  1   )     int  ->  rdx         "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp117      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp118      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V135 tmp119      [V135    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V136 tmp120      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;  V137 tmp121      [V137,T46] (  2,  1   )   byref  ->  r15         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
 ;  V138 tmp122      [V138,T57] (  2,  1   )     int  ->  r14         "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp123      [V139    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp124      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V141 tmp125      [V141,T47] (  2,  1   )   byref  ->  rax         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V142 tmp126      [V142,T58] (  2,  1   )     int  ->  r12         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V143 tmp127      [V143,T08] (  4,  2   )   byref  ->  r15         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;  V144 tmp128      [V144,T10] (  4,  2   )     int  ->  r14         "field V47._length (fldOffset=0x8)" P-INDEP
 ;  V145 tmp129      [V145,T09] (  4,  2   )   byref  ->  [rbp-0x78]  spill-single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;  V146 tmp130      [V146,T11] (  3,  1.50)     int  ->  r12         "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp131      [V147    ] (  0,  0   )   byref  ->  zero-ref    "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp132      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp133      [V149    ] (  0,  0   )   byref  ->  zero-ref    "field V57._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp134      [V150    ] (  0,  0   )     int  ->  zero-ref    "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V151 tmp135      [V151    ] (  0,  0   )   byref  ->  zero-ref    "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V152 tmp136      [V152    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V153 tmp137      [V153    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V154 tmp138      [V154    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp139      [V155    ] (  0,  0   )   byref  ->  zero-ref    "field V62._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp140      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V157 tmp141      [V157    ] (  0,  0   )   byref  ->  zero-ref    "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp142      [V158    ] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V159 tmp143      [V159    ] (  0,  0   )   byref  ->  zero-ref    "field V66._reference (fldOffset=0x0)" P-INDEP
 ;* V160 tmp144      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V66._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp145      [V161    ] (  0,  0   )   byref  ->  zero-ref    "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp146      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
 ;* V163 tmp147      [V163    ] (  0,  0   )   byref  ->  zero-ref    "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V164 tmp148      [V164    ] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp149      [V165    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp150      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp151      [V167,T61] (  0,  0   )   byref  ->  zero-ref    single-def "field V76._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp152      [V168,T70] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp153      [V169,T62] (  0,  0   )   byref  ->  zero-ref    single-def "field V77._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp154      [V170,T71] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
 ;* V171 tmp155      [V171    ] (  0,  0   )   byref  ->  zero-ref    "field V78._reference (fldOffset=0x0)" P-INDEP
 ;* V172 tmp156      [V172    ] (  0,  0   )     int  ->  zero-ref    "field V78._length (fldOffset=0x8)" P-INDEP
 ;* V173 tmp157      [V173,T63] (  0,  0   )   byref  ->  zero-ref    single-def "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V174 tmp158      [V174    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp159      [V175,T64] (  0,  0   )   byref  ->  zero-ref    single-def "field V84._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp160      [V176,T72] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V177 tmp161      [V177    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp162      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
 ;* V179 tmp163      [V179,T65] (  0,  0   )   byref  ->  zero-ref    single-def "field V89._reference (fldOffset=0x0)" P-INDEP
 ;* V180 tmp164      [V180    ] (  0,  0   )     int  ->  zero-ref    "field V89._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp165      [V181,T66] (  0,  0   )   byref  ->  zero-ref    single-def "field V92._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp166      [V182,T73] (  0,  0   )     int  ->  zero-ref    "field V92._length (fldOffset=0x8)" P-INDEP
 ;* V183 tmp167      [V183    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V184 tmp168      [V184    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp169      [V185    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V95._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp170      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V95._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp171      [V187,T48] (  2,  1   )   byref  ->  r15         single-def "field V102._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp172      [V188,T38] (  3,  1.50)     int  ->  rsi         "field V102._length (fldOffset=0x8)" P-INDEP
 ;  V189 tmp173      [V189,T49] (  2,  1   )   byref  ->  r15         single-def "field V104._reference (fldOffset=0x0)" P-INDEP
 ;  V190 tmp174      [V190,T59] (  2,  1   )     int  ->  rsi         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V191 tmp175      [V191    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V192 tmp176      [V192    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;* V193 tmp177      [V193    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V107._reference (fldOffset=0x0)" P-INDEP
 ;* V194 tmp178      [V194    ] (  0,  0   )     int  ->  zero-ref    "field V107._length (fldOffset=0x8)" P-INDEP
-;  V195 tmp179      [V195,T26] (  2,  2   )    long  ->  r13         "Cast away GC"
-;  V196 tmp180      [V196,T27] (  2,  2   )    long  ->  r15         "Cast away GC"
-;  V197 tmp181      [V197,T28] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V198 tmp182      [V198,T29] (  2,  2   )    long  ->  r15         "argument with side effect"
-;  V199 tmp183      [V199,T30] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V200 tmp184      [V200,T31] (  2,  2   )    long  ->  rcx         "argument with side effect"
-;  V201 tmp185      [V201,T32] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V202 cse0        [V202,T15] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
+;  V195 tmp179      [V195,T27] (  2,  2   )    long  ->  r13         "Cast away GC"
+;  V196 tmp180      [V196,T28] (  2,  2   )    long  ->  r15         "Cast away GC"
+;  V197 tmp181      [V197,T29] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V198 tmp182      [V198,T30] (  2,  2   )    long  ->  r15         "argument with side effect"
+;  V199 tmp183      [V199,T31] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V200 tmp184      [V200,T32] (  2,  2   )    long  ->  rcx         "argument with side effect"
+;  V201 tmp185      [V201,T33] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V202 cse0        [V202,T17] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
 ;  V203 cse1        [V203,T39] (  3,  1.50)    long  ->  rsi         "CSE #06: conservative"
 ;  V204 cse2        [V204,T04] ( 11,  6.50)     int  ->  r14         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 88
 
 G_M29396_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        xor      eax, eax
        mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=44 bbWeight=1 PerfScore 10.83
 G_M29396_IG02:
        mov      r14d, dword ptr [r15+0x08]
        test     r14d, r14d
        je       G_M29396_IG24
 						;; size=13 bbWeight=1 PerfScore 3.25
 G_M29396_IG03:
        lea      rdi, bword ptr [r15+0x0C]
        mov      bword ptr [rbp-0x30], rdi
        mov      r13, bword ptr [rbp-0x30]
        xor      r12d, r12d
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M29396_IG04
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
 						;; size=36 bbWeight=0.50 PerfScore 5.12
 G_M29396_IG04:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M29396_IG09
        cmp      r14d, 2
        jl       SHORT G_M29396_IG08
        lea      edi, [r14-0x02]
        align    [0 bytes for IG05]
 						;; size=16 bbWeight=0.50 PerfScore 2.88
 G_M29396_IG05:
        mov      eax, dword ptr [r13+2*r12]
        test     eax, 0xD1FFAB1E
        jne      SHORT G_M29396_IG09
 						;; size=12 bbWeight=4 PerfScore 13.00
 G_M29396_IG06:
        lea      ecx, [rax+D1FFAB1EH]
        add      eax, 0xD1FFAB1E
        xor      eax, ecx
        test     eax, 0xD1FFAB1E
        jne      G_M29396_IG15
 						;; size=24 bbWeight=2 PerfScore 4.50
 G_M29396_IG07:
        add      r12, 2
        cmp      r12, rdi
        jbe      SHORT G_M29396_IG05
 						;; size=9 bbWeight=4 PerfScore 6.00
 G_M29396_IG08:
        test     r14b, 1
        je       G_M29396_IG22
        movzx    rax, word  ptr [r13+2*r12]
        cmp      eax, 127
        jbe      G_M29396_IG14
 						;; size=25 bbWeight=0.50 PerfScore 2.25
 G_M29396_IG09:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      gword ptr [rbp-0x68], rax
        test     r12, r12
        je       SHORT G_M29396_IG10
        lea      rdi, bword ptr [rax+0x0C]
        mov      edx, dword ptr [rax+0x08]
        mov      esi, r12d
        cmp      r14d, esi
-       jb       G_M29396_IG27
+       jb       G_M29396_IG28
        add      r15, 12
        cmp      esi, edx
-       ja       G_M29396_IG26
+       jg       G_M29396_IG26
        mov      edx, esi
        add      rdx, rdx
        mov      rsi, r15
        mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      rax, gword ptr [rbp-0x68]
 						;; size=72 bbWeight=0.50 PerfScore 7.00
 G_M29396_IG10:
        test     rax, rax
        je       SHORT G_M29396_IG11
        lea      r8, bword ptr [rax+0x0C]
        mov      bword ptr [rbp-0x38], r8
        mov      rcx, bword ptr [rbp-0x38]
        jmp      SHORT G_M29396_IG12
 						;; size=19 bbWeight=0.50 PerfScore 2.88
 G_M29396_IG11:
        xor      ecx, ecx
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M29396_IG12:
        mov      r8d, dword ptr [rax+0x08]
        sub      r8d, r12d
        lea      rsi, [r13+2*r12]
        mov      edx, r14d
        sub      edx, r12d
        lea      rcx, [rcx+2*r12]
        mov      rdi, rbx
        mov      r9d, 1
        mov      r10, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [r10]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x38], rax
        mov      rax, gword ptr [rbp-0x68]
 						;; size=54 bbWeight=0.50 PerfScore 5.62
 G_M29396_IG13:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M29396_IG14:
        add      eax, -97
        cmp      eax, 25
        ja       G_M29396_IG22
 						;; size=12 bbWeight=0.50 PerfScore 0.75
 G_M29396_IG15:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      r13, rax
        lea      rax, bword ptr [r13+0x0C]
        mov      ecx, dword ptr [r13+0x08]
        mov      bword ptr [rbp-0x70], rax
        mov      dword ptr [rbp-0x54], ecx
        mov      edx, r12d
        cmp      r14d, edx
-       jb       G_M29396_IG27
+       jb       G_M29396_IG28
        lea      rsi, bword ptr [r15+0x0C]
        cmp      edx, ecx
-       ja       G_M29396_IG26
+       jg       G_M29396_IG26
        mov      r8d, edx
        add      r8, r8
        mov      qword ptr [rbp-0x60], r8
        mov      rdx, r8
        mov      rdi, rax
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edi, r12d
        mov      rax, qword ptr [rbp-0x60]
        lea      r15, bword ptr [r15+rax+0x0C]
        sub      r14d, edi
        mov      edi, r12d
-       add      rax, bword ptr [rbp-0x70]
        mov      r12d, dword ptr [rbp-0x54]
+       cmp      edi, r12d
+       ja       G_M29396_IG27
+       add      rax, bword ptr [rbp-0x70]
        sub      r12d, edi
        mov      bword ptr [rbp-0x78], rax
        test     r14d, r14d
        je       G_M29396_IG19
        mov      rcx, bword ptr [rbp-0x78]
        xor      edi, edi
        mov      dword ptr [rbp-0x40], edi
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M29396_IG16
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        mov      rcx, bword ptr [rbp-0x78]
-						;; size=155 bbWeight=0.50 PerfScore 16.75
+						;; size=164 bbWeight=0.50 PerfScore 17.38
 G_M29396_IG16:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M29396_IG17
        mov      rdi, r15
        mov      esi, r14d
        mov      rdx, rcx
        mov      ecx, r12d
        lea      r8, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        call     [rax]System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        cmp      eax, 3
        mov      rcx, bword ptr [rbp-0x78]
        jne      SHORT G_M29396_IG19
 						;; size=43 bbWeight=0.50 PerfScore 5.50
 G_M29396_IG17:
        mov      bword ptr [rbp-0x48], r15
        mov      bword ptr [rbp-0x50], rcx
        movsxd   rsi, dword ptr [rbp-0x40]
        add      rsi, rsi
        add      r15, rsi
        mov      edx, r14d
        sub      edx, dword ptr [rbp-0x40]
        add      rcx, rsi
        mov      rsi, r15
        mov      r8d, r12d
        sub      r8d, dword ptr [rbp-0x40]
        mov      rdi, rbx
        mov      r9d, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [rax]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x50], rax
 						;; size=64 bbWeight=0.50 PerfScore 7.75
 G_M29396_IG18:
        mov      bword ptr [rbp-0x48], rax
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M29396_IG19:
        xor      rax, rax
        mov      bword ptr [rbp-0x48], rax
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M29396_IG20:
        mov      bword ptr [rbp-0x50], rax
        mov      rax, r13
 						;; size=7 bbWeight=0.50 PerfScore 0.62
 G_M29396_IG21:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M29396_IG22:
        mov      rax, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M29396_IG23:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M29396_IG24:
        mov      rax, 0xD1FFAB1E      ; ''
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M29396_IG25:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M29396_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M29396_IG27:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
+G_M29396_IG28:
        mov      edi, 33
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 721, prolog size 44, PerfScore 104.71, instruction count 205, allocated bytes for code 721 (MethodHash=d36b8d2b) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts)
+; Total bytes of code 743, prolog size 44, PerfScore 105.33, instruction count 210, allocated bytes for code 743 (MethodHash=d36b8d2b) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts)
22 (3.08 % of base) - System.Globalization.TextInfo:ChangeCaseCommon[System.Numerics.Vector`1[float]](System.String):System.String:this
 ; Assembly listing for method System.Globalization.TextInfo:ChangeCaseCommon[System.Numerics.Vector`1[float]](System.String):System.String:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 27 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.Globalization.TextInfo>
 ;  V01 arg1         [V01,T03] (  8,  5.50)     ref  ->  r15         class-hnd single-def <System.String>
 ;* V02 loc0         [V02,T60] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V03 loc1         [V03,T05] (  4,  5.50)    long  ->  r13        
 ;  V04 loc2         [V04    ] (  2,  1   )   byref  ->  [rbp-0x30]  must-init pinned single-def
 ;  V05 loc3         [V05,T00] ( 15, 21.50)    long  ->  r12        
 ;  V06 loc4         [V06,T06] (  2,  4.50)    long  ->  rdi        
 ;  V07 loc5         [V07,T01] (  4, 12   )     int  ->  rax        
-;  V08 loc6         [V08,T34] (  3,  1.50)     int  ->  rax        
-;  V09 loc7         [V09,T14] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
+;  V08 loc6         [V08,T35] (  3,  1.50)     int  ->  rax        
+;  V09 loc7         [V09,T15] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
 ;* V10 loc8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ushort]>
 ;* V11 loc9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;  V12 loc10        [V12,T07] (  7,  3.50)     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.String>
 ;* V13 loc11        [V13    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V14 loc12        [V14    ] (  0,  0   )    long  ->  zero-ref   
 ;  V15 loc13        [V15    ] (  3,  1.50)   byref  ->  [rbp-0x38]  must-init pinned
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V17 tmp1         [V17,T50] (  2,  1   )    long  ->  r13        
-;  V18 tmp2         [V18,T35] (  3,  1.50)    long  ->  rcx        
+;  V18 tmp2         [V18,T36] (  3,  1.50)    long  ->  rcx        
 ;* V19 tmp3         [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V20 tmp4         [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp5         [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V22 tmp6         [V22    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V23 tmp7         [V23    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V24 tmp8         [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp9         [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp10        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V27 tmp11        [V27,T16] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V28 tmp12        [V28,T20] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V27 tmp11        [V27,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V28 tmp12        [V28,T22] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp13        [V29    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;  V30 tmp14        [V30,T12] (  3,  3   )     int  ->  rdx         "Inlining Arg"
 ;* V31 tmp15        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp16        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp17        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp18        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V35 tmp19        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp20        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp21        [V37    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V38 tmp22        [V38,T21] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V38 tmp22        [V38,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
 ;* V39 tmp23        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp24        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V41 tmp25        [V41,T17] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
-;  V42 tmp26        [V42,T22] (  2,  2   )     int  ->  r14         "Inlining Arg"
-;  V43 tmp27        [V43,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp25        [V41,T19] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
+;  V42 tmp26        [V42,T24] (  2,  2   )     int  ->  r14         "Inlining Arg"
+;  V43 tmp27        [V43,T13] (  3,  3   )     int  ->  rdi         "Inlining Arg"
 ;* V44 tmp28        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V45 tmp29        [V45,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V46 tmp30        [V46,T24] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V45 tmp29        [V45,T20] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V46 tmp30        [V46,T25] (  2,  2   )     int  ->  r12         "Inlining Arg"
 ;* V47 tmp31        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp32        [V48,T67] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V49 tmp33        [V49    ] (  5,  2.50)     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp"
 ;  V50 tmp34        [V50    ] (  3,  1.50)   byref  ->  [rbp-0x48]  must-init pinned "Inline stloc first use temp"
 ;* V51 tmp35        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V52 tmp36        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V53 tmp37        [V53    ] (  3,  1.50)   byref  ->  [rbp-0x50]  must-init pinned "Inline stloc first use temp"
 ;* V54 tmp38        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V55 tmp39        [V55,T51] (  2,  1   )     int  ->  rax        
 ;* V56 tmp40        [V56    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp41        [V57    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V58 tmp42        [V58    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V60 tmp44        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V61 tmp45        [V61    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp46        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp47        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp48        [V64,T68] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V65 tmp49        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V66 tmp50        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V67 tmp51        [V67    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp52        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V69 tmp53        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V70 tmp54        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V71 tmp55        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp56        [V72,T69] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V73 tmp57        [V73    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V74 tmp58        [V74    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp59        [V75    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp60        [V76    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V77 tmp61        [V77    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V78 tmp62        [V78    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V79 tmp63        [V79    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V80 tmp64        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V81 tmp65        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp66        [V82    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V83 tmp67        [V83    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V84 tmp68        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp69        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp70        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp71        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V88 tmp72        [V88    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V89 tmp73        [V89    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V90 tmp74        [V90    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V91 tmp75        [V91    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V92 tmp76        [V92    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V93 tmp77        [V93    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp78        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp79        [V95    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V96 tmp80        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V97 tmp81        [V97    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp82        [V98    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V99 tmp83        [V99    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V100 tmp84       [V100,T19] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
-;  V101 tmp85       [V101,T25] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;  V100 tmp84       [V100,T21] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V101 tmp85       [V101,T26] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V102 tmp86       [V102    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V103 tmp87       [V103,T13] (  3,  3   )     int  ->  rsi         "Inlining Arg"
+;  V103 tmp87       [V103,T14] (  3,  3   )     int  ->  rsi         "Inlining Arg"
 ;* V104 tmp88       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V105 tmp89       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V106 tmp90       [V106    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V107 tmp91       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V108 tmp92       [V108    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp93       [V109    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V110 tmp94       [V110    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V111 tmp95       [V111    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V112 tmp96       [V112    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp97       [V113    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V114 tmp98       [V114    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V115 tmp99       [V115,T33] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V116 tmp100      [V116,T36] (  3,  1.50)     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
+;  V115 tmp99       [V115,T34] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;  V116 tmp100      [V116,T16] (  4,  2   )     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp101      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp102      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V119 tmp103      [V119,T40] (  2,  1   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;  V120 tmp104      [V120,T52] (  2,  1   )     int  ->  rdx         "field V13._length (fldOffset=0x8)" P-INDEP
 ;  V121 tmp105      [V121,T41] (  2,  1   )   byref  ->  rdi         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V122 tmp106      [V122,T53] (  2,  1   )     int  ->  rdx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V123 tmp107      [V123,T42] (  2,  1   )   byref  ->  rax         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;  V124 tmp108      [V124,T54] (  2,  1   )     int  ->  rcx         "field V21._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp109      [V125,T43] (  2,  1   )   byref  ->  r15         "field V22._reference (fldOffset=0x0)" P-INDEP
 ;  V126 tmp110      [V126,T55] (  2,  1   )     int  ->  r14         "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp111      [V127    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V128 tmp112      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;  V129 tmp113      [V129,T44] (  2,  1   )   byref  ->  rsi         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V130 tmp114      [V130,T37] (  3,  1.50)     int  ->  rdx         "field V29._length (fldOffset=0x8)" P-INDEP
 ;  V131 tmp115      [V131,T45] (  2,  1   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;  V132 tmp116      [V132,T56] (  2,  1   )     int  ->  rdx         "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp117      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp118      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V135 tmp119      [V135    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V136 tmp120      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;  V137 tmp121      [V137,T46] (  2,  1   )   byref  ->  r15         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
 ;  V138 tmp122      [V138,T57] (  2,  1   )     int  ->  r14         "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp123      [V139    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp124      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V141 tmp125      [V141,T47] (  2,  1   )   byref  ->  rax         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V142 tmp126      [V142,T58] (  2,  1   )     int  ->  r12         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V143 tmp127      [V143,T08] (  4,  2   )   byref  ->  r15         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;  V144 tmp128      [V144,T10] (  4,  2   )     int  ->  r14         "field V47._length (fldOffset=0x8)" P-INDEP
 ;  V145 tmp129      [V145,T09] (  4,  2   )   byref  ->  [rbp-0x78]  spill-single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;  V146 tmp130      [V146,T11] (  3,  1.50)     int  ->  r12         "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp131      [V147    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp132      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp133      [V149,T61] (  0,  0   )   byref  ->  zero-ref    single-def "field V57._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp134      [V150,T70] (  0,  0   )     int  ->  zero-ref    "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V151 tmp135      [V151,T62] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V152 tmp136      [V152,T71] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V153 tmp137      [V153    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V154 tmp138      [V154    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp139      [V155,T63] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp140      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V157 tmp141      [V157,T64] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp142      [V158,T72] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V159 tmp143      [V159    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V66._reference (fldOffset=0x0)" P-INDEP
 ;* V160 tmp144      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V66._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp145      [V161,T65] (  0,  0   )   byref  ->  zero-ref    single-def "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp146      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
 ;* V163 tmp147      [V163,T66] (  0,  0   )   byref  ->  zero-ref    single-def "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V164 tmp148      [V164,T73] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp149      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp150      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp151      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V76._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp152      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp153      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V77._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp154      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
 ;* V171 tmp155      [V171    ] (  0,  0   )   byref  ->  zero-ref    "field V78._reference (fldOffset=0x0)" P-INDEP
 ;* V172 tmp156      [V172    ] (  0,  0   )     int  ->  zero-ref    "field V78._length (fldOffset=0x8)" P-INDEP
 ;* V173 tmp157      [V173    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V174 tmp158      [V174    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp159      [V175    ] (  0,  0   )   byref  ->  zero-ref    "field V84._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp160      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V177 tmp161      [V177    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp162      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
 ;* V179 tmp163      [V179    ] (  0,  0   )   byref  ->  zero-ref    "field V89._reference (fldOffset=0x0)" P-INDEP
 ;* V180 tmp164      [V180    ] (  0,  0   )     int  ->  zero-ref    "field V89._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp165      [V181    ] (  0,  0   )   byref  ->  zero-ref    "field V92._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp166      [V182    ] (  0,  0   )     int  ->  zero-ref    "field V92._length (fldOffset=0x8)" P-INDEP
 ;* V183 tmp167      [V183    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V184 tmp168      [V184    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp169      [V185    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V95._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp170      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V95._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp171      [V187,T48] (  2,  1   )   byref  ->  r15         single-def "field V102._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp172      [V188,T38] (  3,  1.50)     int  ->  rsi         "field V102._length (fldOffset=0x8)" P-INDEP
 ;  V189 tmp173      [V189,T49] (  2,  1   )   byref  ->  r15         single-def "field V104._reference (fldOffset=0x0)" P-INDEP
 ;  V190 tmp174      [V190,T59] (  2,  1   )     int  ->  rsi         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V191 tmp175      [V191    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V192 tmp176      [V192    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;* V193 tmp177      [V193    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V107._reference (fldOffset=0x0)" P-INDEP
 ;* V194 tmp178      [V194    ] (  0,  0   )     int  ->  zero-ref    "field V107._length (fldOffset=0x8)" P-INDEP
-;  V195 tmp179      [V195,T26] (  2,  2   )    long  ->  r13         "Cast away GC"
-;  V196 tmp180      [V196,T27] (  2,  2   )    long  ->  r15         "Cast away GC"
-;  V197 tmp181      [V197,T28] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V198 tmp182      [V198,T29] (  2,  2   )    long  ->  r15         "argument with side effect"
-;  V199 tmp183      [V199,T30] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V200 tmp184      [V200,T31] (  2,  2   )    long  ->  rcx         "argument with side effect"
-;  V201 tmp185      [V201,T32] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V202 cse0        [V202,T15] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
+;  V195 tmp179      [V195,T27] (  2,  2   )    long  ->  r13         "Cast away GC"
+;  V196 tmp180      [V196,T28] (  2,  2   )    long  ->  r15         "Cast away GC"
+;  V197 tmp181      [V197,T29] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V198 tmp182      [V198,T30] (  2,  2   )    long  ->  r15         "argument with side effect"
+;  V199 tmp183      [V199,T31] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V200 tmp184      [V200,T32] (  2,  2   )    long  ->  rcx         "argument with side effect"
+;  V201 tmp185      [V201,T33] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V202 cse0        [V202,T17] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
 ;  V203 cse1        [V203,T39] (  3,  1.50)    long  ->  rsi         "CSE #06: conservative"
 ;  V204 cse2        [V204,T04] ( 11,  6.50)     int  ->  r14         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 88
 
 G_M9198_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        xor      eax, eax
        mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=44 bbWeight=1 PerfScore 10.83
 G_M9198_IG02:
        mov      r14d, dword ptr [r15+0x08]
        test     r14d, r14d
        je       G_M9198_IG24
 						;; size=13 bbWeight=1 PerfScore 3.25
 G_M9198_IG03:
        lea      rdi, bword ptr [r15+0x0C]
        mov      bword ptr [rbp-0x30], rdi
        mov      r13, bword ptr [rbp-0x30]
        xor      r12d, r12d
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M9198_IG04
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
 						;; size=36 bbWeight=0.50 PerfScore 5.12
 G_M9198_IG04:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M9198_IG09
        cmp      r14d, 2
        jl       SHORT G_M9198_IG08
        lea      edi, [r14-0x02]
        align    [0 bytes for IG05]
 						;; size=16 bbWeight=0.50 PerfScore 2.88
 G_M9198_IG05:
        mov      eax, dword ptr [r13+2*r12]
        test     eax, 0xD1FFAB1E
        jne      SHORT G_M9198_IG09
 						;; size=12 bbWeight=4 PerfScore 13.00
 G_M9198_IG06:
        lea      ecx, [rax+D1FFAB1EH]
        add      eax, 0xD1FFAB1E
        xor      eax, ecx
        test     eax, 0xD1FFAB1E
        jne      G_M9198_IG15
 						;; size=24 bbWeight=2 PerfScore 4.50
 G_M9198_IG07:
        add      r12, 2
        cmp      r12, rdi
        jbe      SHORT G_M9198_IG05
 						;; size=9 bbWeight=4 PerfScore 6.00
 G_M9198_IG08:
        test     r14b, 1
        je       G_M9198_IG22
        movzx    rax, word  ptr [r13+2*r12]
        cmp      eax, 127
        jbe      G_M9198_IG14
 						;; size=25 bbWeight=0.50 PerfScore 2.25
 G_M9198_IG09:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      gword ptr [rbp-0x68], rax
        test     r12, r12
        je       SHORT G_M9198_IG10
        lea      rdi, bword ptr [rax+0x0C]
        mov      edx, dword ptr [rax+0x08]
        mov      esi, r12d
        cmp      r14d, esi
-       jb       G_M9198_IG27
+       jb       G_M9198_IG28
        add      r15, 12
        cmp      esi, edx
-       ja       G_M9198_IG26
+       jg       G_M9198_IG26
        mov      edx, esi
        add      rdx, rdx
        mov      rsi, r15
        mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      rax, gword ptr [rbp-0x68]
 						;; size=72 bbWeight=0.50 PerfScore 7.00
 G_M9198_IG10:
        test     rax, rax
        je       SHORT G_M9198_IG11
        lea      r8, bword ptr [rax+0x0C]
        mov      bword ptr [rbp-0x38], r8
        mov      rcx, bword ptr [rbp-0x38]
        jmp      SHORT G_M9198_IG12
 						;; size=19 bbWeight=0.50 PerfScore 2.88
 G_M9198_IG11:
        xor      ecx, ecx
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M9198_IG12:
        mov      r8d, dword ptr [rax+0x08]
        sub      r8d, r12d
        lea      rsi, [r13+2*r12]
        mov      edx, r14d
        sub      edx, r12d
        lea      rcx, [rcx+2*r12]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      r10, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [r10]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x38], rax
        mov      rax, gword ptr [rbp-0x68]
 						;; size=51 bbWeight=0.50 PerfScore 5.62
 G_M9198_IG13:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M9198_IG14:
        add      eax, -65
        cmp      eax, 25
        ja       G_M9198_IG22
 						;; size=12 bbWeight=0.50 PerfScore 0.75
 G_M9198_IG15:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      r13, rax
        lea      rax, bword ptr [r13+0x0C]
        mov      ecx, dword ptr [r13+0x08]
        mov      bword ptr [rbp-0x70], rax
        mov      dword ptr [rbp-0x54], ecx
        mov      edx, r12d
        cmp      r14d, edx
-       jb       G_M9198_IG27
+       jb       G_M9198_IG28
        lea      rsi, bword ptr [r15+0x0C]
        cmp      edx, ecx
-       ja       G_M9198_IG26
+       jg       G_M9198_IG26
        mov      r8d, edx
        add      r8, r8
        mov      qword ptr [rbp-0x60], r8
        mov      rdx, r8
        mov      rdi, rax
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edi, r12d
        mov      rax, qword ptr [rbp-0x60]
        lea      r15, bword ptr [r15+rax+0x0C]
        sub      r14d, edi
        mov      edi, r12d
-       add      rax, bword ptr [rbp-0x70]
        mov      r12d, dword ptr [rbp-0x54]
+       cmp      edi, r12d
+       ja       G_M9198_IG27
+       add      rax, bword ptr [rbp-0x70]
        sub      r12d, edi
        mov      bword ptr [rbp-0x78], rax
        test     r14d, r14d
        je       G_M9198_IG19
        mov      rcx, bword ptr [rbp-0x78]
        xor      edi, edi
        mov      dword ptr [rbp-0x40], edi
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M9198_IG16
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        mov      rcx, bword ptr [rbp-0x78]
-						;; size=155 bbWeight=0.50 PerfScore 16.75
+						;; size=164 bbWeight=0.50 PerfScore 17.38
 G_M9198_IG16:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M9198_IG17
        mov      rdi, r15
        mov      esi, r14d
        mov      rdx, rcx
        mov      ecx, r12d
        lea      r8, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        call     [rax]System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        cmp      eax, 3
        mov      rcx, bword ptr [rbp-0x78]
        jne      SHORT G_M9198_IG19
 						;; size=43 bbWeight=0.50 PerfScore 5.50
 G_M9198_IG17:
        mov      bword ptr [rbp-0x48], r15
        mov      bword ptr [rbp-0x50], rcx
        movsxd   rsi, dword ptr [rbp-0x40]
        add      rsi, rsi
        add      r15, rsi
        mov      edx, r14d
        sub      edx, dword ptr [rbp-0x40]
        add      rcx, rsi
        mov      rsi, r15
        mov      r8d, r12d
        sub      r8d, dword ptr [rbp-0x40]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [rax]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x50], rax
 						;; size=61 bbWeight=0.50 PerfScore 7.75
 G_M9198_IG18:
        mov      bword ptr [rbp-0x48], rax
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M9198_IG19:
        xor      rax, rax
        mov      bword ptr [rbp-0x48], rax
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M9198_IG20:
        mov      bword ptr [rbp-0x50], rax
        mov      rax, r13
 						;; size=7 bbWeight=0.50 PerfScore 0.62
 G_M9198_IG21:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M9198_IG22:
        mov      rax, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M9198_IG23:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M9198_IG24:
        mov      rax, 0xD1FFAB1E      ; ''
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M9198_IG25:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M9198_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M9198_IG27:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
+G_M9198_IG28:
        mov      edi, 33
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 715, prolog size 44, PerfScore 104.71, instruction count 205, allocated bytes for code 715 (MethodHash=c5e7dc11) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Numerics.Vector`1[float]](System.String):System.String:this (FullOpts)
+; Total bytes of code 737, prolog size 44, PerfScore 105.33, instruction count 210, allocated bytes for code 737 (MethodHash=c5e7dc11) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Numerics.Vector`1[float]](System.String):System.String:this (FullOpts)
22 (3.08 % of base) - System.Globalization.TextInfo:ChangeCaseCommon[ubyte](System.String):System.String:this
 ; Assembly listing for method System.Globalization.TextInfo:ChangeCaseCommon[ubyte](System.String):System.String:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 27 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.Globalization.TextInfo>
 ;  V01 arg1         [V01,T03] (  8,  5.50)     ref  ->  r15         class-hnd single-def <System.String>
 ;* V02 loc0         [V02,T60] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V03 loc1         [V03,T05] (  4,  5.50)    long  ->  r13        
 ;  V04 loc2         [V04    ] (  2,  1   )   byref  ->  [rbp-0x30]  must-init pinned single-def
 ;  V05 loc3         [V05,T00] ( 15, 21.50)    long  ->  r12        
 ;  V06 loc4         [V06,T06] (  2,  4.50)    long  ->  rdi        
 ;  V07 loc5         [V07,T01] (  4, 12   )     int  ->  rax        
-;  V08 loc6         [V08,T34] (  3,  1.50)     int  ->  rax        
-;  V09 loc7         [V09,T14] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
+;  V08 loc6         [V08,T35] (  3,  1.50)     int  ->  rax        
+;  V09 loc7         [V09,T15] (  4,  2   )     ref  ->  r13         class-hnd exact single-def <System.String>
 ;* V10 loc8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ushort]>
 ;* V11 loc9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;  V12 loc10        [V12,T07] (  7,  3.50)     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.String>
 ;* V13 loc11        [V13    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V14 loc12        [V14    ] (  0,  0   )    long  ->  zero-ref   
 ;  V15 loc13        [V15    ] (  3,  1.50)   byref  ->  [rbp-0x38]  must-init pinned
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V17 tmp1         [V17,T50] (  2,  1   )    long  ->  r13        
-;  V18 tmp2         [V18,T35] (  3,  1.50)    long  ->  rcx        
+;  V18 tmp2         [V18,T36] (  3,  1.50)    long  ->  rcx        
 ;* V19 tmp3         [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V20 tmp4         [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp5         [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V22 tmp6         [V22    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V23 tmp7         [V23    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V24 tmp8         [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp9         [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp10        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V27 tmp11        [V27,T16] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V28 tmp12        [V28,T20] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V27 tmp11        [V27,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V28 tmp12        [V28,T22] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp13        [V29    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;  V30 tmp14        [V30,T12] (  3,  3   )     int  ->  rdx         "Inlining Arg"
 ;* V31 tmp15        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp16        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp17        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp18        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V35 tmp19        [V35    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp20        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp21        [V37    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V38 tmp22        [V38,T21] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V38 tmp22        [V38,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
 ;* V39 tmp23        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp24        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V41 tmp25        [V41,T17] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
-;  V42 tmp26        [V42,T22] (  2,  2   )     int  ->  r14         "Inlining Arg"
-;  V43 tmp27        [V43,T23] (  2,  2   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp25        [V41,T19] (  2,  2   )   byref  ->  r15         single-def "Inlining Arg"
+;  V42 tmp26        [V42,T24] (  2,  2   )     int  ->  r14         "Inlining Arg"
+;  V43 tmp27        [V43,T13] (  3,  3   )     int  ->  rdi         "Inlining Arg"
 ;* V44 tmp28        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V45 tmp29        [V45,T18] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V46 tmp30        [V46,T24] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V45 tmp29        [V45,T20] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V46 tmp30        [V46,T25] (  2,  2   )     int  ->  r12         "Inlining Arg"
 ;* V47 tmp31        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp32        [V48,T67] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V49 tmp33        [V49    ] (  5,  2.50)     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp"
 ;  V50 tmp34        [V50    ] (  3,  1.50)   byref  ->  [rbp-0x48]  must-init pinned "Inline stloc first use temp"
 ;* V51 tmp35        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V52 tmp36        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V53 tmp37        [V53    ] (  3,  1.50)   byref  ->  [rbp-0x50]  must-init pinned "Inline stloc first use temp"
 ;* V54 tmp38        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V55 tmp39        [V55,T51] (  2,  1   )     int  ->  rax        
 ;* V56 tmp40        [V56    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp41        [V57    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V58 tmp42        [V58    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V60 tmp44        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V61 tmp45        [V61    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp46        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp47        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp48        [V64,T68] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V65 tmp49        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V66 tmp50        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V67 tmp51        [V67    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp52        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V69 tmp53        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V70 tmp54        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V71 tmp55        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp56        [V72,T69] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V73 tmp57        [V73    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V74 tmp58        [V74    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp59        [V75    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp60        [V76    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ushort]>
 ;* V77 tmp61        [V77    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V78 tmp62        [V78    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V79 tmp63        [V79    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V80 tmp64        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V81 tmp65        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp66        [V82    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V83 tmp67        [V83    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V84 tmp68        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp69        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp70        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp71        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V88 tmp72        [V88    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V89 tmp73        [V89    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V90 tmp74        [V90    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V91 tmp75        [V91    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V92 tmp76        [V92    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V93 tmp77        [V93    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp78        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp79        [V95    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V96 tmp80        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V97 tmp81        [V97    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp82        [V98    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V99 tmp83        [V99    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V100 tmp84       [V100,T19] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
-;  V101 tmp85       [V101,T25] (  2,  2   )     int  ->  rdx         "Inlining Arg"
+;  V100 tmp84       [V100,T21] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V101 tmp85       [V101,T26] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V102 tmp86       [V102    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;  V103 tmp87       [V103,T13] (  3,  3   )     int  ->  rsi         "Inlining Arg"
+;  V103 tmp87       [V103,T14] (  3,  3   )     int  ->  rsi         "Inlining Arg"
 ;* V104 tmp88       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V105 tmp89       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V106 tmp90       [V106    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V107 tmp91       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V108 tmp92       [V108    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp93       [V109    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V110 tmp94       [V110    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V111 tmp95       [V111    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V112 tmp96       [V112    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp97       [V113    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V114 tmp98       [V114    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V115 tmp99       [V115,T33] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V116 tmp100      [V116,T36] (  3,  1.50)     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
+;  V115 tmp99       [V115,T34] (  3,  1.50)   byref  ->  [rbp-0x70]  spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP
+;  V116 tmp100      [V116,T16] (  4,  2   )     int  ->  [rbp-0x54]  spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp101      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp102      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V119 tmp103      [V119,T40] (  2,  1   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;  V120 tmp104      [V120,T52] (  2,  1   )     int  ->  rdx         "field V13._length (fldOffset=0x8)" P-INDEP
 ;  V121 tmp105      [V121,T41] (  2,  1   )   byref  ->  rdi         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V122 tmp106      [V122,T53] (  2,  1   )     int  ->  rdx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V123 tmp107      [V123,T42] (  2,  1   )   byref  ->  rax         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;  V124 tmp108      [V124,T54] (  2,  1   )     int  ->  rcx         "field V21._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp109      [V125,T43] (  2,  1   )   byref  ->  r15         "field V22._reference (fldOffset=0x0)" P-INDEP
 ;  V126 tmp110      [V126,T55] (  2,  1   )     int  ->  r14         "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp111      [V127    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V128 tmp112      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;  V129 tmp113      [V129,T44] (  2,  1   )   byref  ->  rsi         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V130 tmp114      [V130,T37] (  3,  1.50)     int  ->  rdx         "field V29._length (fldOffset=0x8)" P-INDEP
 ;  V131 tmp115      [V131,T45] (  2,  1   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;  V132 tmp116      [V132,T56] (  2,  1   )     int  ->  rdx         "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp117      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp118      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V135 tmp119      [V135    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V136 tmp120      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;  V137 tmp121      [V137,T46] (  2,  1   )   byref  ->  r15         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
 ;  V138 tmp122      [V138,T57] (  2,  1   )     int  ->  r14         "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp123      [V139    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp124      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V141 tmp125      [V141,T47] (  2,  1   )   byref  ->  rax         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V142 tmp126      [V142,T58] (  2,  1   )     int  ->  r12         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V143 tmp127      [V143,T08] (  4,  2   )   byref  ->  r15         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;  V144 tmp128      [V144,T10] (  4,  2   )     int  ->  r14         "field V47._length (fldOffset=0x8)" P-INDEP
 ;  V145 tmp129      [V145,T09] (  4,  2   )   byref  ->  [rbp-0x78]  spill-single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;  V146 tmp130      [V146,T11] (  3,  1.50)     int  ->  r12         "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp131      [V147    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp132      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp133      [V149,T61] (  0,  0   )   byref  ->  zero-ref    single-def "field V57._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp134      [V150,T70] (  0,  0   )     int  ->  zero-ref    "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V151 tmp135      [V151,T62] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V152 tmp136      [V152,T71] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V153 tmp137      [V153    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V154 tmp138      [V154    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp139      [V155,T63] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp140      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V157 tmp141      [V157,T64] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp142      [V158,T72] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V159 tmp143      [V159    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V66._reference (fldOffset=0x0)" P-INDEP
 ;* V160 tmp144      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V66._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp145      [V161,T65] (  0,  0   )   byref  ->  zero-ref    single-def "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp146      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
 ;* V163 tmp147      [V163,T66] (  0,  0   )   byref  ->  zero-ref    single-def "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V164 tmp148      [V164,T73] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp149      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp150      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp151      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V76._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp152      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V76._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp153      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V77._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp154      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
 ;* V171 tmp155      [V171    ] (  0,  0   )   byref  ->  zero-ref    "field V78._reference (fldOffset=0x0)" P-INDEP
 ;* V172 tmp156      [V172    ] (  0,  0   )     int  ->  zero-ref    "field V78._length (fldOffset=0x8)" P-INDEP
 ;* V173 tmp157      [V173    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V174 tmp158      [V174    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp159      [V175    ] (  0,  0   )   byref  ->  zero-ref    "field V84._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp160      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V177 tmp161      [V177    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp162      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
 ;* V179 tmp163      [V179    ] (  0,  0   )   byref  ->  zero-ref    "field V89._reference (fldOffset=0x0)" P-INDEP
 ;* V180 tmp164      [V180    ] (  0,  0   )     int  ->  zero-ref    "field V89._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp165      [V181    ] (  0,  0   )   byref  ->  zero-ref    "field V92._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp166      [V182    ] (  0,  0   )     int  ->  zero-ref    "field V92._length (fldOffset=0x8)" P-INDEP
 ;* V183 tmp167      [V183    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V184 tmp168      [V184    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp169      [V185    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V95._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp170      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V95._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp171      [V187,T48] (  2,  1   )   byref  ->  r15         single-def "field V102._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp172      [V188,T38] (  3,  1.50)     int  ->  rsi         "field V102._length (fldOffset=0x8)" P-INDEP
 ;  V189 tmp173      [V189,T49] (  2,  1   )   byref  ->  r15         single-def "field V104._reference (fldOffset=0x0)" P-INDEP
 ;  V190 tmp174      [V190,T59] (  2,  1   )     int  ->  rsi         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V191 tmp175      [V191    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V192 tmp176      [V192    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;* V193 tmp177      [V193    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V107._reference (fldOffset=0x0)" P-INDEP
 ;* V194 tmp178      [V194    ] (  0,  0   )     int  ->  zero-ref    "field V107._length (fldOffset=0x8)" P-INDEP
-;  V195 tmp179      [V195,T26] (  2,  2   )    long  ->  r13         "Cast away GC"
-;  V196 tmp180      [V196,T27] (  2,  2   )    long  ->  r15         "Cast away GC"
-;  V197 tmp181      [V197,T28] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V198 tmp182      [V198,T29] (  2,  2   )    long  ->  r15         "argument with side effect"
-;  V199 tmp183      [V199,T30] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V200 tmp184      [V200,T31] (  2,  2   )    long  ->  rcx         "argument with side effect"
-;  V201 tmp185      [V201,T32] (  2,  2   )    long  ->  rcx         "Cast away GC"
-;  V202 cse0        [V202,T15] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
+;  V195 tmp179      [V195,T27] (  2,  2   )    long  ->  r13         "Cast away GC"
+;  V196 tmp180      [V196,T28] (  2,  2   )    long  ->  r15         "Cast away GC"
+;  V197 tmp181      [V197,T29] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V198 tmp182      [V198,T30] (  2,  2   )    long  ->  r15         "argument with side effect"
+;  V199 tmp183      [V199,T31] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V200 tmp184      [V200,T32] (  2,  2   )    long  ->  rcx         "argument with side effect"
+;  V201 tmp185      [V201,T33] (  2,  2   )    long  ->  rcx         "Cast away GC"
+;  V202 cse0        [V202,T17] (  4,  2   )    long  ->  [rbp-0x60]  spill-single-def "CSE #04: conservative"
 ;  V203 cse1        [V203,T39] (  3,  1.50)    long  ->  rsi         "CSE #06: conservative"
 ;  V204 cse2        [V204,T04] ( 11,  6.50)     int  ->  r14         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 88
 
 G_M36210_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        xor      eax, eax
        mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=44 bbWeight=1 PerfScore 10.83
 G_M36210_IG02:
        mov      r14d, dword ptr [r15+0x08]
        test     r14d, r14d
        je       G_M36210_IG24
 						;; size=13 bbWeight=1 PerfScore 3.25
 G_M36210_IG03:
        lea      rdi, bword ptr [r15+0x0C]
        mov      bword ptr [rbp-0x30], rdi
        mov      r13, bword ptr [rbp-0x30]
        xor      r12d, r12d
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M36210_IG04
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
 						;; size=36 bbWeight=0.50 PerfScore 5.12
 G_M36210_IG04:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M36210_IG09
        cmp      r14d, 2
        jl       SHORT G_M36210_IG08
        lea      edi, [r14-0x02]
        align    [0 bytes for IG05]
 						;; size=16 bbWeight=0.50 PerfScore 2.88
 G_M36210_IG05:
        mov      eax, dword ptr [r13+2*r12]
        test     eax, 0xD1FFAB1E
        jne      SHORT G_M36210_IG09
 						;; size=12 bbWeight=4 PerfScore 13.00
 G_M36210_IG06:
        lea      ecx, [rax+D1FFAB1EH]
        add      eax, 0xD1FFAB1E
        xor      eax, ecx
        test     eax, 0xD1FFAB1E
        jne      G_M36210_IG15
 						;; size=24 bbWeight=2 PerfScore 4.50
 G_M36210_IG07:
        add      r12, 2
        cmp      r12, rdi
        jbe      SHORT G_M36210_IG05
 						;; size=9 bbWeight=4 PerfScore 6.00
 G_M36210_IG08:
        test     r14b, 1
        je       G_M36210_IG22
        movzx    rax, word  ptr [r13+2*r12]
        cmp      eax, 127
        jbe      G_M36210_IG14
 						;; size=25 bbWeight=0.50 PerfScore 2.25
 G_M36210_IG09:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      gword ptr [rbp-0x68], rax
        test     r12, r12
        je       SHORT G_M36210_IG10
        lea      rdi, bword ptr [rax+0x0C]
        mov      edx, dword ptr [rax+0x08]
        mov      esi, r12d
        cmp      r14d, esi
-       jb       G_M36210_IG27
+       jb       G_M36210_IG28
        add      r15, 12
        cmp      esi, edx
-       ja       G_M36210_IG26
+       jg       G_M36210_IG26
        mov      edx, esi
        add      rdx, rdx
        mov      rsi, r15
        mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      rax, gword ptr [rbp-0x68]
 						;; size=72 bbWeight=0.50 PerfScore 7.00
 G_M36210_IG10:
        test     rax, rax
        je       SHORT G_M36210_IG11
        lea      r8, bword ptr [rax+0x0C]
        mov      bword ptr [rbp-0x38], r8
        mov      rcx, bword ptr [rbp-0x38]
        jmp      SHORT G_M36210_IG12
 						;; size=19 bbWeight=0.50 PerfScore 2.88
 G_M36210_IG11:
        xor      ecx, ecx
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M36210_IG12:
        mov      r8d, dword ptr [rax+0x08]
        sub      r8d, r12d
        lea      rsi, [r13+2*r12]
        mov      edx, r14d
        sub      edx, r12d
        lea      rcx, [rcx+2*r12]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      r10, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [r10]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x38], rax
        mov      rax, gword ptr [rbp-0x68]
 						;; size=51 bbWeight=0.50 PerfScore 5.62
 G_M36210_IG13:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M36210_IG14:
        add      eax, -65
        cmp      eax, 25
        ja       G_M36210_IG22
 						;; size=12 bbWeight=0.50 PerfScore 0.75
 G_M36210_IG15:
        mov      edi, r14d
        call     System.String:FastAllocateString(int):System.String
        mov      r13, rax
        lea      rax, bword ptr [r13+0x0C]
        mov      ecx, dword ptr [r13+0x08]
        mov      bword ptr [rbp-0x70], rax
        mov      dword ptr [rbp-0x54], ecx
        mov      edx, r12d
        cmp      r14d, edx
-       jb       G_M36210_IG27
+       jb       G_M36210_IG28
        lea      rsi, bword ptr [r15+0x0C]
        cmp      edx, ecx
-       ja       G_M36210_IG26
+       jg       G_M36210_IG26
        mov      r8d, edx
        add      r8, r8
        mov      qword ptr [rbp-0x60], r8
        mov      rdx, r8
        mov      rdi, rax
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edi, r12d
        mov      rax, qword ptr [rbp-0x60]
        lea      r15, bword ptr [r15+rax+0x0C]
        sub      r14d, edi
        mov      edi, r12d
-       add      rax, bword ptr [rbp-0x70]
        mov      r12d, dword ptr [rbp-0x54]
+       cmp      edi, r12d
+       ja       G_M36210_IG27
+       add      rax, bword ptr [rbp-0x70]
        sub      r12d, edi
        mov      bword ptr [rbp-0x78], rax
        test     r14d, r14d
        je       G_M36210_IG19
        mov      rcx, bword ptr [rbp-0x78]
        xor      edi, edi
        mov      dword ptr [rbp-0x40], edi
        cmp      byte  ptr [rbx+0x29], 0
        jne      SHORT G_M36210_IG16
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        call     [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this
        mov      rcx, bword ptr [rbp-0x78]
-						;; size=155 bbWeight=0.50 PerfScore 16.75
+						;; size=164 bbWeight=0.50 PerfScore 17.38
 G_M36210_IG16:
        cmp      byte  ptr [rbx+0x29], 2
        jne      SHORT G_M36210_IG17
        mov      rdi, r15
        mov      esi, r14d
        mov      rdx, rcx
        mov      ecx, r12d
        lea      r8, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        call     [rax]System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int
        cmp      eax, 3
        mov      rcx, bword ptr [rbp-0x78]
        jne      SHORT G_M36210_IG19
 						;; size=43 bbWeight=0.50 PerfScore 5.50
 G_M36210_IG17:
        mov      bword ptr [rbp-0x48], r15
        mov      bword ptr [rbp-0x50], rcx
        movsxd   rsi, dword ptr [rbp-0x40]
        add      rsi, rsi
        add      r15, rsi
        mov      edx, r14d
        sub      edx, dword ptr [rbp-0x40]
        add      rcx, rsi
        mov      rsi, r15
        mov      r8d, r12d
        sub      r8d, dword ptr [rbp-0x40]
        mov      rdi, rbx
        xor      r9d, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        call     [rax]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
        xor      eax, eax
        mov      bword ptr [rbp-0x50], rax
 						;; size=61 bbWeight=0.50 PerfScore 7.75
 G_M36210_IG18:
        mov      bword ptr [rbp-0x48], rax
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M36210_IG19:
        xor      rax, rax
        mov      bword ptr [rbp-0x48], rax
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M36210_IG20:
        mov      bword ptr [rbp-0x50], rax
        mov      rax, r13
 						;; size=7 bbWeight=0.50 PerfScore 0.62
 G_M36210_IG21:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M36210_IG22:
        mov      rax, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M36210_IG23:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M36210_IG24:
        mov      rax, 0xD1FFAB1E      ; ''
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M36210_IG25:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M36210_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M36210_IG27:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
+G_M36210_IG28:
        mov      edi, 33
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 715, prolog size 44, PerfScore 104.71, instruction count 205, allocated bytes for code 715 (MethodHash=343e728d) for method System.Globalization.TextInfo:ChangeCaseCommon[ubyte](System.String):System.String:this (FullOpts)
+; Total bytes of code 737, prolog size 44, PerfScore 105.33, instruction count 210, allocated bytes for code 737 (MethodHash=343e728d) for method System.Globalization.TextInfo:ChangeCaseCommon[ubyte](System.String):System.String:this (FullOpts)
21 (10.00 % of base) - System.Xml.XmlEntityReference+<>c:b__27_0(System.Span`1[ushort],System.ValueTuple`2[System.String,System.String]):this
 ; Assembly listing for method System.Xml.XmlEntityReference+<>c:<ConstructBaseURI>b__27_0(System.Span`1[ushort],System.ValueTuple`2[System.String,System.String]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 6 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.Xml.XmlEntityReference+<>c>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ValueTuple`2[System.String,System.String]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V06 tmp3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.__Canon>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V08 tmp5         [V08    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp8         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.__Canon>
 ;* 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,T13] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
 ;  V15 tmp12        [V15,T14] (  2,  2   )     int  ->  rsi         "Inlining Arg"
-;  V16 tmp13        [V16,T07] (  2,  4   )     int  ->  r13         "Inlining Arg"
+;  V16 tmp13        [V16,T01] (  3,  6   )     int  ->  r13         "Inlining Arg"
 ;* V17 tmp14        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V18 tmp15        [V18,T05] (  3,  4   )   byref  ->  r12         single-def "Inlining Arg"
-;  V19 tmp16        [V19,T06] (  3,  4   )     int  ->  r14         "Inlining Arg"
+;  V18 tmp15        [V18,T06] (  3,  4   )   byref  ->  r12         single-def "Inlining Arg"
+;  V19 tmp16        [V19,T07] (  3,  4   )     int  ->  rbx         "Inlining Arg"
 ;* V20 tmp17        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V21 tmp18        [V21,T08] (  4,  3   )    long  ->   r8         "Inline stloc first use temp"
 ;* V22 tmp19        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V23 tmp20        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V24 tmp21        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V25 tmp22        [V25,T12] (  4,  2   )    long  ->  rdx         "Inline stloc first use temp"
 ;* V26 tmp23        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V27 tmp24        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;  V28 tmp25        [V28,T01] (  3,  3   )   byref  ->  r15         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V29 tmp26        [V29,T03] (  3,  3   )     int  ->  r14         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp27        [V30,T02] (  3,  3   )     ref  ->  rcx         single-def "field V02.Item1 (fldOffset=0x0)" P-INDEP
-;  V31 tmp28        [V31,T00] (  4,  3   )     ref  ->  rbx         single-def "field V02.Item2 (fldOffset=0x8)" P-INDEP
+;  V28 tmp25        [V28,T03] (  3,  3   )   byref  ->  r14         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V29 tmp26        [V29,T00] (  4,  4   )     int  ->  rbx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V30 tmp27        [V30,T04] (  3,  3   )     ref  ->  rcx         single-def "field V02.Item1 (fldOffset=0x0)" P-INDEP
+;  V31 tmp28        [V31,T02] (  4,  3   )     ref  ->  r15         single-def "field V02.Item2 (fldOffset=0x8)" P-INDEP
 ;  V32 tmp29        [V32,T11] (  4,  2   )   byref  ->  rdi         "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V33 tmp30        [V33,T10] (  4,  2.50)     int  ->  rsi         "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V34 tmp31        [V34    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V35 tmp32        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V36 tmp33        [V36    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V37 tmp34        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;  V38 tmp35        [V38,T15] (  2,  1   )   byref  ->  rdi         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
 ;  V39 tmp36        [V39,T16] (  2,  1   )     int  ->  rsi         "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V40 tmp37        [V40    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V41 tmp38        [V41    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V42 tmp39        [V42    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V43 tmp40        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V44 tmp41        [V44    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V45 tmp42        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0x8)" P-INDEP
 ;* V46 tmp43        [V46    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp44        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp45        [V48    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp46        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
 ;* V50 tmp47        [V50    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V27._reference (fldOffset=0x0)" P-INDEP
 ;* V51 tmp48        [V51    ] (  0,  0   )     int  ->  zero-ref    "field V27._length (fldOffset=0x8)" P-INDEP
 ;  V52 cse0         [V52,T09] (  3,  3   )    long  ->  r12         "CSE #03: moderate"
-;  V53 cse1         [V53,T04] (  4,  4   )     int  ->  r13         "CSE #01: moderate"
+;  V53 cse1         [V53,T05] (  4,  4   )     int  ->  r13         "CSE #01: moderate"
 ;
 ; Lcl frame size = 8
 
 G_M30333_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
-       mov      r15, rsi
-       mov      r14d, edx
-       mov      rbx, r8
-						;; size=25 bbWeight=1 PerfScore 8.25
+       mov      r14, rsi
+       mov      ebx, edx
+       mov      r15, r8
+						;; size=24 bbWeight=1 PerfScore 8.25
 G_M30333_IG02:
        mov      r13d, dword ptr [rcx+0x08]
-       cmp      r13d, r14d
-       ja       G_M30333_IG11
+       cmp      r13d, ebx
+       jg       G_M30333_IG11
        lea      rsi, bword ptr [rcx+0x0C]
        mov      r12d, r13d
        add      r12, r12
        mov      rdx, r12
-       mov      rdi, r15
+       mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       test     rbx, rbx
+       test     r15, r15
        je       SHORT G_M30333_IG04
 						;; size=46 bbWeight=1 PerfScore 9.25
 G_M30333_IG03:
-       lea      rdi, bword ptr [rbx+0x0C]
-       mov      esi, dword ptr [rbx+0x08]
+       lea      rdi, bword ptr [r15+0x0C]
+       mov      esi, dword ptr [r15+0x08]
        jmp      SHORT G_M30333_IG05
-						;; size=9 bbWeight=0.50 PerfScore 2.25
+						;; size=10 bbWeight=0.50 PerfScore 2.25
 G_M30333_IG04:
        xor      rdi, rdi
        xor      esi, esi
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M30333_IG05:
-       add      r12, r15
-       sub      r14d, r13d
+       cmp      r13d, ebx
+       ja       G_M30333_IG12
+       add      r12, r14
+       sub      ebx, r13d
        mov      r8d, esi
        test     r8, r8
        je       SHORT G_M30333_IG08
-						;; size=14 bbWeight=1 PerfScore 2.00
+						;; size=23 bbWeight=1 PerfScore 3.25
 G_M30333_IG06:
-       mov      edx, r14d
+       mov      edx, ebx
        cmp      r8, rdx
        ja       SHORT G_M30333_IG11
        mov      rdx, r12
        sub      rdx, rdi
        je       SHORT G_M30333_IG07
        mov      esi, esi
        add      rsi, rsi
        cmp      rdx, rsi
        jb       SHORT G_M30333_IG10
-       movsxd   rsi, r14d
+       movsxd   rsi, ebx
        add      rsi, rsi
        neg      rsi
        cmp      rsi, rdx
        jb       SHORT G_M30333_IG10
-						;; size=40 bbWeight=0.50 PerfScore 3.38
+						;; size=39 bbWeight=0.50 PerfScore 3.38
 G_M30333_IG07:
        mov      rsi, r12
        mov      edx, 92
        mov      ecx, 47
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:ReplaceValueType[ushort](byref,byref,ushort,ushort,ulong)
        call     [rax]System.SpanHelpers:ReplaceValueType[ushort](byref,byref,ushort,ushort,ulong)
 						;; size=25 bbWeight=0.50 PerfScore 2.00
 G_M30333_IG08:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M30333_IG09:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M30333_IG10:
        mov      edi, 72
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 G_M30333_IG11:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
+G_M30333_IG12:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 210, prolog size 16, PerfScore 31.88, instruction count 69, allocated bytes for code 210 (MethodHash=8f5d8982) for method System.Xml.XmlEntityReference+<>c:<ConstructBaseURI>b__27_0(System.Span`1[ushort],System.ValueTuple`2[System.String,System.String]):this (FullOpts)
+; Total bytes of code 231, prolog size 16, PerfScore 33.12, instruction count 74, allocated bytes for code 231 (MethodHash=8f5d8982) for method System.Xml.XmlEntityReference+<>c:<ConstructBaseURI>b__27_0(System.Span`1[ushort],System.ValueTuple`2[System.String,System.String]):this (FullOpts)
20 (8.93 % of base) - System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String
 ; Assembly listing for method System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 9 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T05] (  7, 13   )     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
 ;  V01 arg1         [V01,T08] (  3,  3   )   ubyte  ->  rsi         single-def
 ;  V02 loc0         [V02,T03] (  6, 30   )     int  ->  r15        
 ;  V03 loc1         [V03,T00] (  7, 43   )     int  ->  r14        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T06] (  2,  8   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V06 tmp2         [V06,T01] (  4, 32   )  ushort  ->  rax         "Inlining Arg"
+;  V06 tmp2         [V06,T01] (  5, 40   )  ushort  ->  rax         "Inlining Arg"
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V11 tmp7         [V11,T07] (  2,  8   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V12 tmp8         [V12,T02] (  4, 32   )  ushort  ->  rax         "Inlining Arg"
+;  V12 tmp8         [V12,T02] (  5, 40   )  ushort  ->  rax         "Inlining Arg"
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V14 tmp10        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp14        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V19 tmp15        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V23 tmp19        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp20        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V25 tmp21        [V25    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V27 tmp23        [V27    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V28 tmp24        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp25        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp26        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V31 tmp27        [V31    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V32 tmp28        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
 ;  V33 cse0         [V33,T04] (  3, 24   )     int  ->  r13         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M44774_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        lea      rbp, [rsp+0x20]
        mov      rbx, rdi
 						;; size=16 bbWeight=1 PerfScore 5.75
 G_M44774_IG02:
        mov      r15d, dword ptr [rbx+0x1C]
        add      r15d, dword ptr [rbx+0x18]
        xor      r14d, r14d
        test     sil, sil
        je       SHORT G_M44774_IG07
        jmp      SHORT G_M44774_IG04
 						;; size=18 bbWeight=1 PerfScore 8.50
 G_M44774_IG03:
        inc      r14d
 						;; size=3 bbWeight=16 PerfScore 4.00
 G_M44774_IG04:
        cmp      r14d, r15d
        jge      SHORT G_M44774_IG06
        mov      rdi, rbx
        mov      esi, r14d
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:get_Chars(int):ushort:this
        call     [rax]System.Text.StringBuilder:get_Chars(int):ushort:this
        cmp      eax, 256
-       jb       SHORT G_M44774_IG09
+       jl       SHORT G_M44774_IG09
        mov      edi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        call     [rax]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        test     eax, eax
        jne      SHORT G_M44774_IG03
        jmp      SHORT G_M44774_IG06
 						;; size=50 bbWeight=4 PerfScore 52.00
 G_M44774_IG05:
        mov      r15d, r13d
 						;; size=3 bbWeight=16 PerfScore 4.00
 G_M44774_IG06:
        test     r15d, r15d
        jle      SHORT G_M44774_IG07
        lea      r13d, [r15-0x01]
        mov      esi, r13d
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:get_Chars(int):ushort:this
        call     [rax]System.Text.StringBuilder:get_Chars(int):ushort:this
        cmp      eax, 256
-       jae      SHORT G_M44774_IG10
+       jge      SHORT G_M44774_IG10
+       cmp      eax, 256
+       jae      SHORT G_M44774_IG11
        mov      edx, eax
        mov      rdi, 0xD1FFAB1E      ; static handle
        test     byte  ptr [rdx+rdi], 128
        jne      SHORT G_M44774_IG05
-						;; size=52 bbWeight=4 PerfScore 45.00
+						;; size=59 bbWeight=4 PerfScore 50.00
 G_M44774_IG07:
        mov      edx, r15d
        sub      edx, r14d
        mov      rdi, rbx
        mov      esi, r14d
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:ToString(int,int):System.String:this
        call     [rax]System.Text.StringBuilder:ToString(int,int):System.String:this
        nop      
 						;; size=25 bbWeight=1 PerfScore 4.50
 G_M44774_IG08:
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 3.50
 G_M44774_IG09:
+       cmp      eax, 256
+       jae      SHORT G_M44774_IG11
        mov      edi, eax
        mov      rax, 0xD1FFAB1E      ; static handle
        test     byte  ptr [rdi+rax], 128
        jne      G_M44774_IG03
        jmp      SHORT G_M44774_IG06
-						;; size=24 bbWeight=4 PerfScore 26.00
+						;; size=31 bbWeight=4 PerfScore 31.00
 G_M44774_IG10:
        mov      edi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        call     [rax]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        test     eax, eax
        jne      G_M44774_IG05
        jmp      SHORT G_M44774_IG07
 						;; size=24 bbWeight=4 PerfScore 27.00
+G_M44774_IG11:
+       call     CORINFO_HELP_RNGCHKFAIL
+       int3     
+						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 224, prolog size 13, PerfScore 180.25, instruction count 66, allocated bytes for code 224 (MethodHash=b7395119) for method System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String (FullOpts)
+; Total bytes of code 244, prolog size 13, PerfScore 190.25, instruction count 72, allocated bytes for code 244 (MethodHash=b7395119) for method System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String (FullOpts)
20 (8.93 % of base) - System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String
 ; Assembly listing for method System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 9 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T05] (  7, 13   )     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
 ;  V01 arg1         [V01,T08] (  3,  3   )   ubyte  ->  rsi         single-def
 ;  V02 loc0         [V02,T03] (  6, 30   )     int  ->  r15        
 ;  V03 loc1         [V03,T00] (  7, 43   )     int  ->  r14        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T06] (  2,  8   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V06 tmp2         [V06,T01] (  4, 32   )  ushort  ->  rax         "Inlining Arg"
+;  V06 tmp2         [V06,T01] (  5, 40   )  ushort  ->  rax         "Inlining Arg"
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V11 tmp7         [V11,T07] (  2,  8   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V12 tmp8         [V12,T02] (  4, 32   )  ushort  ->  rax         "Inlining Arg"
+;  V12 tmp8         [V12,T02] (  5, 40   )  ushort  ->  rax         "Inlining Arg"
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V14 tmp10        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp14        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V19 tmp15        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V23 tmp19        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp20        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V25 tmp21        [V25    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V27 tmp23        [V27    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V28 tmp24        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp25        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp26        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V31 tmp27        [V31    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V32 tmp28        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
 ;  V33 cse0         [V33,T04] (  3, 24   )     int  ->  r13         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M44774_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        lea      rbp, [rsp+0x20]
        mov      rbx, rdi
 						;; size=16 bbWeight=1 PerfScore 5.75
 G_M44774_IG02:
        mov      r15d, dword ptr [rbx+0x1C]
        add      r15d, dword ptr [rbx+0x18]
        xor      r14d, r14d
        test     sil, sil
        je       SHORT G_M44774_IG07
        jmp      SHORT G_M44774_IG04
 						;; size=18 bbWeight=1 PerfScore 8.50
 G_M44774_IG03:
        inc      r14d
 						;; size=3 bbWeight=16 PerfScore 4.00
 G_M44774_IG04:
        cmp      r14d, r15d
        jge      SHORT G_M44774_IG06
        mov      rdi, rbx
        mov      esi, r14d
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:get_Chars(int):ushort:this
        call     [rax]System.Text.StringBuilder:get_Chars(int):ushort:this
        cmp      eax, 256
-       jb       SHORT G_M44774_IG09
+       jl       SHORT G_M44774_IG09
        mov      edi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        call     [rax]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        test     eax, eax
        jne      SHORT G_M44774_IG03
        jmp      SHORT G_M44774_IG06
 						;; size=50 bbWeight=4 PerfScore 52.00
 G_M44774_IG05:
        mov      r15d, r13d
 						;; size=3 bbWeight=16 PerfScore 4.00
 G_M44774_IG06:
        test     r15d, r15d
        jle      SHORT G_M44774_IG07
        lea      r13d, [r15-0x01]
        mov      esi, r13d
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:get_Chars(int):ushort:this
        call     [rax]System.Text.StringBuilder:get_Chars(int):ushort:this
        cmp      eax, 256
-       jae      SHORT G_M44774_IG10
+       jge      SHORT G_M44774_IG10
+       cmp      eax, 256
+       jae      SHORT G_M44774_IG11
        mov      edx, eax
        mov      rdi, 0xD1FFAB1E      ; static handle
        test     byte  ptr [rdx+rdi], 128
        jne      SHORT G_M44774_IG05
-						;; size=52 bbWeight=4 PerfScore 45.00
+						;; size=59 bbWeight=4 PerfScore 50.00
 G_M44774_IG07:
        mov      edx, r15d
        sub      edx, r14d
        mov      rdi, rbx
        mov      esi, r14d
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:ToString(int,int):System.String:this
        call     [rax]System.Text.StringBuilder:ToString(int,int):System.String:this
        nop      
 						;; size=25 bbWeight=1 PerfScore 4.50
 G_M44774_IG08:
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 3.50
 G_M44774_IG09:
+       cmp      eax, 256
+       jae      SHORT G_M44774_IG11
        mov      edi, eax
        mov      rax, 0xD1FFAB1E      ; static handle
        test     byte  ptr [rdi+rax], 128
        jne      G_M44774_IG03
        jmp      SHORT G_M44774_IG06
-						;; size=24 bbWeight=4 PerfScore 26.00
+						;; size=31 bbWeight=4 PerfScore 31.00
 G_M44774_IG10:
        mov      edi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        call     [rax]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        test     eax, eax
        jne      G_M44774_IG05
        jmp      SHORT G_M44774_IG07
 						;; size=24 bbWeight=4 PerfScore 27.00
+G_M44774_IG11:
+       call     CORINFO_HELP_RNGCHKFAIL
+       int3     
+						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 224, prolog size 13, PerfScore 180.25, instruction count 66, allocated bytes for code 224 (MethodHash=b7395119) for method System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String (FullOpts)
+; Total bytes of code 244, prolog size 13, PerfScore 190.25, instruction count 72, allocated bytes for code 244 (MethodHash=b7395119) for method System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String (FullOpts)
16 (2.45 % of base) - System.Text.RegularExpressions.RegexReplacement+<>c:b__17_1(System.Span`1[ushort],System.ValueTuple`3[long,System.String,System.String]):this
 ; Assembly listing for method System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_1(System.Span`1[ushort],System.ValueTuple`3[long,System.String,System.String]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 4 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.Text.RegularExpressions.RegexReplacement+<>c>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
 ;  V02 arg2         [V02,T19] (  3,  6   )  struct (24) [rbp+0x10]  do-not-enreg[SF] single-def <System.ValueTuple`3[long,System.String,System.String]>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[int]>
 ;* V04 loc1         [V04,T27] (  0,  0   )     int  ->  zero-ref   
 ;* V05 loc2         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;  V06 loc3         [V06,T02] (  7, 22   )     int  ->  [rbp-0x2C]  spill-single-def
 ;* V07 loc4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09,T05] (  4, 20   )     int  ->  rdx         "impAppendStmt"
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V12 tmp4         [V12    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp5         [V13    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp6         [V14    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V15 tmp7         [V15,T16] (  2,  8   )     int  ->  rdx         "Inlining Arg"
+;  V15 tmp7         [V15,T10] (  3, 12   )     int  ->  rdx         "Inlining Arg"
 ;* V16 tmp8         [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V17 tmp9         [V17,T14] (  2,  8   )   byref  ->  r15         "Inlining Arg"
+;  V17 tmp9         [V17,T15] (  2,  8   )   byref  ->  r15         "Inlining Arg"
 ;  V18 tmp10        [V18,T17] (  2,  8   )     int  ->  rbx         "Inlining Arg"
 ;* V19 tmp11        [V19    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;  V20 tmp12        [V20,T03] (  4, 24   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.__Canon>
 ;* V21 tmp13        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V22 tmp14        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;* V23 tmp15        [V23    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp16        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp17        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp18        [V26    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp19        [V27    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V28 tmp20        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;  V29 tmp21        [V29,T06] (  2, 16   )   byref  ->  r15         "Inlining Arg"
 ;  V30 tmp22        [V30,T07] (  2, 16   )     int  ->  rbx         "Inlining Arg"
 ;  V31 tmp23        [V31,T04] (  7, 19   )   byref  ->  r15         "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V32 tmp24        [V32,T01] (  8, 23   )     int  ->  rbx         "field V01._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp25        [V33,T11] (  3,  9   )   byref  ->  r14         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp24        [V32,T01] (  9, 25   )     int  ->  rbx         "field V01._length (fldOffset=0x8)" P-INDEP
+;  V33 tmp25        [V33,T12] (  3,  9   )   byref  ->  r14         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V34 tmp26        [V34,T08] (  5, 14   )     int  ->  r13         "field V03._length (fldOffset=0x8)" P-INDEP
 ;* V35 tmp27        [V35    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V36 tmp28        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp29        [V37    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V38 tmp30        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;  V39 tmp31        [V39,T22] (  2,  4   )   byref  ->  r15         "field V16._reference (fldOffset=0x0)" P-INDEP
 ;  V40 tmp32        [V40,T24] (  2,  4   )     int  ->  rbx         "field V16._length (fldOffset=0x8)" P-INDEP
-;  V41 tmp33        [V41,T13] (  3,  8   )   byref  ->  rsi         "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V41 tmp33        [V41,T14] (  3,  8   )   byref  ->  rsi         "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V42 tmp34        [V42,T09] (  4, 12   )     int  ->  rdx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V43 tmp35        [V43,T23] (  2,  4   )   byref  ->  rsi         "field V21._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp36        [V44,T26] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x8)" P-INDEP
 ;* V45 tmp37        [V45    ] (  0,  0   )   byref  ->  zero-ref    "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V46 tmp38        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V47 tmp39        [V47    ] (  0,  0   )   byref  ->  zero-ref    "field V24._reference (fldOffset=0x0)" P-INDEP
 ;* V48 tmp40        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V24._length (fldOffset=0x8)" P-INDEP
-;  V49 tmp41        [V49,T15] (  2,  8   )   byref  ->  r15         "field V28._reference (fldOffset=0x0)" P-INDEP
+;  V49 tmp41        [V49,T16] (  2,  8   )   byref  ->  r15         "field V28._reference (fldOffset=0x0)" P-INDEP
 ;  V50 tmp42        [V50,T18] (  2,  8   )     int  ->  rbx         "field V28._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp43        [V51,T21] (  3,  5   )     ref  ->  [rbp-0x48]  spill-single-def "V02.[008..016)"
 ;  V52 cse0         [V52,T20] (  3,  6   )    long  ->  [rbp-0x38]  spill-single-def "CSE #04: moderate"
-;  V53 cse1         [V53,T12] (  4,  8   )     int  ->  [rbp-0x3C]  spill-single-def "CSE #02: moderate"
-;  V54 cse2         [V54,T10] (  3, 12   )     int  ->  rdi         "CSE #05: moderate"
+;  V53 cse1         [V53,T13] (  4,  8   )     int  ->  [rbp-0x3C]  spill-single-def "CSE #02: moderate"
+;  V54 cse2         [V54,T11] (  3, 12   )     int  ->  rdi         "CSE #05: moderate"
 ;  V55 cse3         [V55,T25] (  3,  3   )    long  ->  rsi         "CSE #01: moderate"
 ;  V56 rat0         [V56,T00] (  8, 29   )    long  ->  r12         "Widened IV V04"
 ;
 ; Lcl frame size = 40
 
 G_M25538_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 40
        lea      rbp, [rsp+0x50]
        mov      r15, rsi
        mov      ebx, edx
 						;; size=24 bbWeight=1 PerfScore 7.25
 G_M25538_IG02:
        mov      rsi, qword ptr [rbp+0x20]
        mov      r14, bword ptr [rsi]
        mov      r13d, dword ptr [rsi+0x08]
        xor      r12d, r12d
        mov      rax, gword ptr [rbp+0x18]
        mov      gword ptr [rbp-0x48], rax
        test     r13d, r13d
        jle      G_M25538_IG09
 						;; size=31 bbWeight=1 PerfScore 8.50
 G_M25538_IG03:
        test     r12d, r12d
        je       SHORT G_M25538_IG05
 						;; size=5 bbWeight=4 PerfScore 5.00
 G_M25538_IG04:
        mov      ecx, dword ptr [rax+0x08]
        mov      dword ptr [rbp-0x3C], ecx
        cmp      ecx, ebx
-       ja       G_M25538_IG10
+       jg       G_M25538_IG10
        lea      rsi, bword ptr [rax+0x0C]
        mov      r8d, ecx
        add      r8, r8
        mov      qword ptr [rbp-0x38], r8
        mov      rdx, r8
        mov      rdi, r15
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edx, dword ptr [rbp-0x3C]
+       cmp      edx, ebx
+       ja       G_M25538_IG12
        mov      rdi, qword ptr [rbp-0x38]
        add      r15, rdi
        sub      ebx, edx
        mov      rax, gword ptr [rbp-0x48]
-						;; size=63 bbWeight=2 PerfScore 27.00
+						;; size=71 bbWeight=2 PerfScore 29.50
 G_M25538_IG05:
        cmp      r12d, r13d
        jae      G_M25538_IG13
        mov      edx, dword ptr [r14+4*r12]
        lea      edi, [r12+0x01]
        cmp      edi, r13d
        jae      G_M25538_IG13
        mov      ecx, dword ptr [r14+4*rdi]
        mov      dword ptr [rbp-0x2C], ecx
        mov      rdi, gword ptr [rbp+0x10]
        test     rdi, rdi
        je       SHORT G_M25538_IG07
 						;; size=43 bbWeight=4 PerfScore 41.00
 G_M25538_IG06:
        mov      esi, edx
        mov      r8d, ecx
        add      rsi, r8
        mov      r8d, dword ptr [rdi+0x08]
        cmp      rsi, r8
-       ja       SHORT G_M25538_IG12
+       ja       SHORT G_M25538_IG11
        mov      edx, edx
        lea      rsi, bword ptr [rdi+2*rdx+0x0C]
        mov      edx, ecx
        jmp      SHORT G_M25538_IG08
 						;; size=28 bbWeight=2 PerfScore 15.00
 G_M25538_IG07:
        or       edx, ecx
-       jne      SHORT G_M25538_IG12
+       jne      SHORT G_M25538_IG11
        xor      rsi, rsi
        xor      edx, edx
        mov      ecx, dword ptr [rbp-0x2C]
 						;; size=11 bbWeight=2 PerfScore 5.50
 G_M25538_IG08:
        cmp      edx, ebx
-       ja       SHORT G_M25538_IG10
+       jg       SHORT G_M25538_IG10
        mov      edx, edx
        add      rdx, rdx
        mov      rdi, r15
        mov      r8, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r8]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      ecx, dword ptr [rbp-0x2C]
        cmp      ecx, ebx
-       ja       SHORT G_M25538_IG11
+       ja       SHORT G_M25538_IG12
        mov      eax, ecx
        lea      r15, bword ptr [r15+2*rax]
        sub      ebx, ecx
        add      r12d, 2
        cmp      r12d, r13d
        mov      rax, gword ptr [rbp-0x48]
        jl       G_M25538_IG03
 						;; size=57 bbWeight=4 PerfScore 44.00
 G_M25538_IG09:
        add      rsp, 40
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M25538_IG10:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M25538_IG11:
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
-       int3     
-						;; size=13 bbWeight=0 PerfScore 0.00
-G_M25538_IG12:
        mov      edi, 33
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
+G_M25538_IG12:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=0 PerfScore 0.00
 G_M25538_IG13:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 327, prolog size 19, PerfScore 157.50, instruction count 100, allocated bytes for code 327 (MethodHash=daa39c3d) for method System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_1(System.Span`1[ushort],System.ValueTuple`3[long,System.String,System.String]):this (FullOpts)
+; Total bytes of code 335, prolog size 19, PerfScore 160.00, instruction count 102, allocated bytes for code 335 (MethodHash=daa39c3d) for method System.Text.RegularExpressions.RegexReplacement+<>c:<ReplaceSimpleText>b__17_1(System.Span`1[ushort],System.ValueTuple`3[long,System.String,System.String]):this (FullOpts)
14 (4.76 % of base) - System.Buffers.AhoCorasickNode:OptimizeChildren():this
 ; Assembly listing for method System.Buffers.AhoCorasickNode:OptimizeChildren():this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 10 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  9, 13   )   byref  ->  rbx         this single-def
+;  V00 this         [V00,T01] (  9, 13   )   byref  ->  rbx         this single-def
 ;  V01 loc0         [V01,T04] (  7,  4.50)     ref  ->  r15         class-hnd single-def <System.Collections.Generic.Dictionary`2[ushort,int]>
 ;  V02 loc1         [V02,T10] (  3,  8.50)   float  ->  [rbp-0x14] 
 ;  V03 loc2         [V03    ] (  2,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <int[]>
 ;  V04 loc3         [V04    ] (  8, 14.50)  struct (32) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.Dictionary`2+Enumerator[ushort,int]>
 ;* V05 loc4         [V05    ] (  0,  0   )  ushort  ->  zero-ref   
 ;* V06 loc5         [V06    ] (  0,  0   )     int  ->  zero-ref   
 ;* V07 loc6         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Collections.Generic.KeyValuePair`2[ushort,int]>
-;  V08 loc7         [V08,T01] (  4, 14   )  ushort  ->  rsi         ld-addr-op
+;  V08 loc7         [V08,T00] (  5, 16   )  ushort  ->  rsi         ld-addr-op
 ;* V09 loc8         [V09    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op
 ;* V10 loc9         [V10    ] (  0,  0   )   float  ->  zero-ref   
 ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[float]>
 ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V13 tmp1         [V13,T09] (  4, 12   )   float  ->  mm0        
 ;  V14 tmp2         [V14,T05] (  2,  2   )  ushort  ->  rsi         "Inlining Arg"
 ;  V15 tmp3         [V15,T06] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V16 tmp4         [V16,T08] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Dictionary`2+Enumerator[ushort,int]>
 ;* V17 tmp5         [V17    ] (  0,  0   )  struct (16) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[float]>
 ;  V18 tmp6         [V18,T02] (  2,  8   )  ushort  ->  rsi         "field V07.key (fldOffset=0x0)" P-INDEP
 ;  V19 tmp7         [V19,T03] (  2,  8   )     int  ->  rdi         "field V07.value (fldOffset=0x4)" P-INDEP
 ;* V20 tmp8         [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp9         [V21    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V22 tmp10        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp11        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V24 tmp12        [V24    ] (  0,  0   )     ref  ->  zero-ref    single-def "V16.[000..008)"
 ;  V25 tmp13        [V25,T07] (  2,  1   )     int  ->  rdi         "V16.[008..012)"
 ;* V26 tmp14        [V26    ] (  0,  0   )     int  ->  zero-ref    "V16.[012..016)"
 ;* V27 tmp15        [V27    ] (  0,  0   )     int  ->  zero-ref    "V16.[016..020)"
 ;
 ; Lcl frame size = 48
 
 G_M35338_IG01:
        push     rbp
        push     r15
        push     rbx
        sub      rsp, 48
        lea      rbp, [rsp+0x40]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x40], ymm8
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      rbx, rdi
 						;; size=32 bbWeight=1 PerfScore 7.58
 G_M35338_IG02:
        mov      rsi, gword ptr [rbx]
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.Dictionary`2[ushort,int]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        mov      r15, rax
        test     r15, r15
        je       G_M35338_IG11
 						;; size=37 bbWeight=1 PerfScore 7.00
 G_M35338_IG03:
        movzx    rsi, word  ptr [rbx+0x10]
        mov      edx, dword ptr [rbx+0x14]
        mov      rdi, r15
        mov      ecx, 2
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary`2[ushort,int]:TryInsert(ushort,int,ubyte):ubyte:this
        call     [rax]System.Collections.Generic.Dictionary`2[ushort,int]:TryInsert(ushort,int,ubyte):ubyte:this
        vmovss   xmm0, dword ptr [reloc @RWD00]
        vmovss   dword ptr [rbp-0x14], xmm0
        mov      edi, dword ptr [r15+0x44]
        mov      gword ptr [rbp-0x40], r15
        mov      dword ptr [rbp-0x38], edi
        xor      edi, edi
        mov      dword ptr [rbp-0x34], edi
        mov      dword ptr [rbp-0x30], 2
 						;; size=63 bbWeight=0.50 PerfScore 9.00
 G_M35338_IG04:
        mov      qword ptr [rbp-0x2C], rdi
        jmp      SHORT G_M35338_IG06
 						;; size=6 bbWeight=0.50 PerfScore 1.50
 G_M35338_IG05:
        vmovaps  xmm1, xmm0
        mov      dword ptr [rbx+0x10], esi
        mov      dword ptr [rbx+0x14], edi
        vmovss   dword ptr [rbp-0x14], xmm1
 						;; size=15 bbWeight=4 PerfScore 13.00
 G_M35338_IG06:
        lea      rdi, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary`2+Enumerator[ushort,int]:MoveNext():ubyte:this
        call     [rax]System.Collections.Generic.Dictionary`2+Enumerator[ushort,int]:MoveNext():ubyte:this
        test     eax, eax
        je       SHORT G_M35338_IG10
        movzx    rsi, word  ptr [rbp-0x2C]
        mov      edi, dword ptr [rbp-0x28]
        cmp      esi, 127
-       ja       SHORT G_M35338_IG08
+       jg       SHORT G_M35338_IG08
 						;; size=32 bbWeight=4 PerfScore 33.00
 G_M35338_IG07:
+       cmp      esi, 128
+       jae      SHORT G_M35338_IG13
        mov      eax, esi
        mov      rcx, 0xD1FFAB1E      ; static handle
        vmovss   xmm0, dword ptr [rcx+4*rax]
        jmp      SHORT G_M35338_IG09
-						;; size=19 bbWeight=2 PerfScore 13.00
+						;; size=27 bbWeight=2 PerfScore 15.50
 G_M35338_IG08:
        vmovss   xmm0, dword ptr [reloc @RWD04]
 						;; size=8 bbWeight=2 PerfScore 6.00
 G_M35338_IG09:
        vmovss   xmm1, dword ptr [rbp-0x14]
        vucomiss xmm0, xmm1
        vmovss   dword ptr [rbp-0x14], xmm1
        jbe      SHORT G_M35338_IG06
        jmp      SHORT G_M35338_IG05
 						;; size=18 bbWeight=4 PerfScore 36.00
 G_M35338_IG10:
        movzx    rsi, word  ptr [rbx+0x10]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary`2[ushort,int]:Remove(ushort):ubyte:this
        call     [rax]System.Collections.Generic.Dictionary`2[ushort,int]:Remove(ushort):ubyte:this
        lea      rsi, [rbp-0x20]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.AhoCorasickNode:<OptimizeChildren>g__TryCreateJumpTable|11_0(System.Collections.Generic.Dictionary`2[ushort,int],byref):ubyte
        call     [rax]System.Buffers.AhoCorasickNode:<OptimizeChildren>g__TryCreateJumpTable|11_0(System.Collections.Generic.Dictionary`2[ushort,int],byref):ubyte
        test     eax, eax
        je       SHORT G_M35338_IG11
        mov      rsi, gword ptr [rbp-0x20]
        mov      rdi, rbx
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=54 bbWeight=0.50 PerfScore 6.50
 G_M35338_IG11:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M35338_IG12:
        add      rsp, 48
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 2.75
+G_M35338_IG13:
+       call     CORINFO_HELP_RNGCHKFAIL
+       int3     
+						;; size=6 bbWeight=0 PerfScore 0.00
 RWD00  	dd	C0000000h		;        -2
 RWD04  	dd	BF800000h		;        -1
 
 
-; Total bytes of code 294, prolog size 29, PerfScore 135.58, instruction count 75, allocated bytes for code 294 (MethodHash=418c75f5) for method System.Buffers.AhoCorasickNode:OptimizeChildren():this (FullOpts)
+; Total bytes of code 308, prolog size 29, PerfScore 138.08, instruction count 79, allocated bytes for code 308 (MethodHash=418c75f5) for method System.Buffers.AhoCorasickNode:OptimizeChildren():this (FullOpts)
13 (6.37 % of base) - System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String
 ; Assembly listing for method System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T02] (  6,  9   )     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
 ;  V01 loc0         [V01,T01] (  5, 16   )     int  ->  r15        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T04] (  2,  8   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V04 tmp2         [V04,T00] (  4, 32   )  ushort  ->  rax         "Inlining Arg"
+;  V04 tmp2         [V04,T00] (  5, 40   )  ushort  ->  rax         "Inlining Arg"
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp5         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V08 tmp6         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V09 tmp7         [V09,T05] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V10 tmp8         [V10    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V12 tmp10        [V12    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V13 tmp11        [V13    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V14 tmp12        [V14    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V15 tmp13        [V15    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V16 tmp14        [V16    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp15        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V18 tmp16        [V18,T06] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
 ;  V19 cse0         [V19,T03] (  3, 10   )     int  ->  r14         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M14745_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        lea      rbp, [rsp+0x20]
        mov      rbx, rdi
 						;; size=16 bbWeight=1 PerfScore 5.75
 G_M14745_IG02:
        mov      r15d, dword ptr [rbx+0x1C]
        add      r15d, dword ptr [rbx+0x18]
        jmp      SHORT G_M14745_IG04
 						;; size=10 bbWeight=1 PerfScore 7.00
 G_M14745_IG03:
        mov      r15d, r14d
 						;; size=3 bbWeight=2 PerfScore 0.50
 G_M14745_IG04:
        test     r15d, r15d
        jle      SHORT G_M14745_IG06
 						;; size=5 bbWeight=8 PerfScore 10.00
 G_M14745_IG05:
        lea      r14d, [r15-0x01]
        mov      esi, r14d
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:get_Chars(int):ushort:this
        call     [rax]System.Text.StringBuilder:get_Chars(int):ushort:this
        cmp      eax, 256
-       jb       SHORT G_M14745_IG09
+       jl       SHORT G_M14745_IG09
        mov      edi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        call     [rax]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        test     eax, eax
        jne      SHORT G_M14745_IG03
 						;; size=47 bbWeight=4 PerfScore 41.00
 G_M14745_IG06:
        mov      rdi, rbx
        mov      edx, r15d
        xor      esi, esi
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:ToString(int,int):System.String:this
        call     [rax]System.Text.StringBuilder:ToString(int,int):System.String:this
        mov      r13, rax
        cmp      byte  ptr [r13], r13b
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
        je       SHORT G_M14745_IG10
 						;; size=42 bbWeight=1 PerfScore 11.50
 G_M14745_IG07:
        mov      rdi, 0xD1FFAB1E      ; data for System.Globalization.TextInfo:Invariant
        mov      rdi, gword ptr [rdi]
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:ToLower(System.String):System.String:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Globalization.TextInfo:ToLower(System.String):System.String:this
        nop      
 						;; size=31 bbWeight=1 PerfScore 9.00
 G_M14745_IG08:
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 3.50
 G_M14745_IG09:
+       cmp      eax, 256
+       jae      SHORT G_M14745_IG11
        mov      edi, eax
        mov      rax, 0xD1FFAB1E      ; static handle
        test     byte  ptr [rdi+rax], 128
        jne      G_M14745_IG03
        jmp      SHORT G_M14745_IG06
-						;; size=24 bbWeight=4 PerfScore 26.00
+						;; size=31 bbWeight=4 PerfScore 31.00
 G_M14745_IG10:
        mov      rdi, 0xD1FFAB1E      ; System.Globalization.TextInfo
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      SHORT G_M14745_IG07
 						;; size=17 bbWeight=0 PerfScore 0.00
+G_M14745_IG11:
+       call     CORINFO_HELP_RNGCHKFAIL
+       int3     
+						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 204, prolog size 13, PerfScore 114.25, instruction count 56, allocated bytes for code 204 (MethodHash=66d3c666) for method System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String (FullOpts)
+; Total bytes of code 217, prolog size 13, PerfScore 119.25, instruction count 60, allocated bytes for code 217 (MethodHash=66d3c666) for method System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String (FullOpts)
13 (7.83 % of base) - System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String
 ; Assembly listing for method System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T02] (  6,  9   )     ref  ->  rbx         class-hnd single-def <System.Text.StringBuilder>
 ;  V01 loc0         [V01,T01] (  5, 16   )     int  ->  r15        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T04] (  2,  8   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V04 tmp2         [V04,T00] (  4, 32   )  ushort  ->  rax         "Inlining Arg"
+;  V04 tmp2         [V04,T00] (  5, 40   )  ushort  ->  rax         "Inlining Arg"
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp5         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V08 tmp6         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V09 tmp7         [V09,T05] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V10 tmp8         [V10    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V12 tmp10        [V12    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V13 tmp11        [V13    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V14 tmp12        [V14    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V15 tmp13        [V15    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V16 tmp14        [V16    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp15        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V18 cse0         [V18,T03] (  3, 10   )     int  ->  r14         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M14745_IG01:
        push     rbp
        push     r15
        push     r14
        push     rbx
        push     rax
        lea      rbp, [rsp+0x20]
        mov      rbx, rdi
 						;; size=15 bbWeight=1 PerfScore 5.75
 G_M14745_IG02:
        mov      r15d, dword ptr [rbx+0x1C]
        add      r15d, dword ptr [rbx+0x18]
        jmp      SHORT G_M14745_IG04
 						;; size=10 bbWeight=1 PerfScore 7.00
 G_M14745_IG03:
        mov      r15d, r14d
 						;; size=3 bbWeight=2 PerfScore 0.50
 G_M14745_IG04:
        test     r15d, r15d
        jle      SHORT G_M14745_IG06
 						;; size=5 bbWeight=8 PerfScore 10.00
 G_M14745_IG05:
        lea      r14d, [r15-0x01]
        mov      esi, r14d
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:get_Chars(int):ushort:this
        call     [rax]System.Text.StringBuilder:get_Chars(int):ushort:this
        cmp      eax, 256
-       jb       SHORT G_M14745_IG08
+       jl       SHORT G_M14745_IG08
        mov      edi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        call     [rax]System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte
        test     eax, eax
        jne      SHORT G_M14745_IG03
 						;; size=47 bbWeight=4 PerfScore 41.00
 G_M14745_IG06:
        mov      rdi, rbx
        mov      edx, r15d
        xor      esi, esi
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:ToString(int,int):System.String:this
        call     [rax]System.Text.StringBuilder:ToString(int,int):System.String:this
        cmp      byte  ptr [rax], al
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rdi, gword ptr [rdi]
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Globalization.TextInfo:ToLower(System.String):System.String:this
        call     [rax]System.Globalization.TextInfo:ToLower(System.String):System.String:this
        nop      
 						;; size=51 bbWeight=1 PerfScore 13.00
 G_M14745_IG07:
        add      rsp, 8
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=1 PerfScore 3.25
 G_M14745_IG08:
+       cmp      eax, 256
+       jae      SHORT G_M14745_IG09
        mov      eax, eax
        mov      rcx, 0xD1FFAB1E      ; static handle
        test     byte  ptr [rax+rcx], 128
        jne      G_M14745_IG03
        jmp      SHORT G_M14745_IG06
-						;; size=24 bbWeight=4 PerfScore 26.00
+						;; size=31 bbWeight=4 PerfScore 31.00
+G_M14745_IG09:
+       call     CORINFO_HELP_RNGCHKFAIL
+       int3     
+						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 166, prolog size 12, PerfScore 106.50, instruction count 48, allocated bytes for code 166 (MethodHash=66d3c666) for method System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String (FullOpts)
+; Total bytes of code 179, prolog size 12, PerfScore 111.50, instruction count 52, allocated bytes for code 179 (MethodHash=66d3c666) for method System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String (FullOpts)
9 (1.08 % of base) - System.Enum:TryFormatFlagNames[double](System.Enum+EnumInfo`1[double],double,System.Span`1[ushort],byref,byref):ubyte
 ; Assembly listing for method System.Enum:TryFormatFlagNames[double](System.Enum+EnumInfo`1[double],double,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 22 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T21] (  4,  4   )     ref  ->  rdi         class-hnd single-def <System.Enum+EnumInfo`1[double]>
 ;  V01 arg1         [V01,T52] (  6,  8   )  double  ->  mm0         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
 ;  V03 arg3         [V03,T22] (  5,  3.50)   byref  ->  rbx         single-def
 ;  V04 arg4         [V04,T28] (  3,  2.50)   byref  ->   r8         single-def
-;  V05 loc0         [V05,T07] ( 11, 16   )     ref  ->  r14         class-hnd exact single-def <System.String[]>
+;  V05 loc0         [V05,T08] ( 11, 16   )     ref  ->  r14         class-hnd exact single-def <System.String[]>
 ;  V06 loc1         [V06,T16] (  7, 11   )     ref  ->  rsi         class-hnd single-def <double[]>
 ;  V07 loc2         [V07,T35] (  6,  3   )     int  ->  rax         ld-addr-op
 ;* V08 loc3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V09 loc4         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
 ;  V10 loc5         [V10,T25] (  4,  5   )     int  ->  rcx         ld-addr-op
 ;  V11 loc6         [V11,T17] (  8, 10   )     int  ->   r9         ld-addr-op
 ;  V12 loc7         [V12,T39] (  3,  1.50)     int  ->  rsi        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V15 tmp2         [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[int]>
 ;  V16 tmp3         [V16,T24] (  9,  5   )     ref  ->  r13         class-hnd "Inline return value spill temp" <System.String>
 ;  V17 tmp4         [V17,T34] (  7,  3.25)     int  ->  rax         "Inline stloc first use temp"
 ;* V18 tmp5         [V18    ] (  0,  0   )  double  ->  zero-ref    "impAppendStmt"
 ;* V19 tmp6         [V19    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp8         [V21,T45] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V22 tmp9         [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V23 tmp10        [V23    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp11        [V24    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V26 tmp13        [V26,T37] (  2,  2   )    long  ->  r13         "Inlining Arg"
 ;  V27 tmp14        [V27,T38] (  2,  2   )     int  ->  rax         "Inlining Arg"
 ;  V28 tmp15        [V28,T50] (  6, 22   )  double  ->  mm0         "Inlining Arg"
 ;  V29 tmp16        [V29,T51] (  5, 16   )  double  ->  mm1         "Inline stloc first use temp"
 ;* V30 tmp17        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V31 tmp18        [V31    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
 ;* V32 tmp19        [V32    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp20        [V33    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp22        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V36 tmp23        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp24        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp25        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V39 tmp26        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V40 tmp27        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V41 tmp28        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[int]>
 ;* V42 tmp29        [V42    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V43 tmp30        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp31        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[int]>
 ;  V45 tmp32        [V45,T43] (  2,  1   )     int  ->  rdx         "Inline stloc first use temp"
 ;  V46 tmp33        [V46,T14] (  3, 12   )     ref  ->  rsi         class-hnd exact "Inline stloc first use temp" <System.String>
 ;* V47 tmp34        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V48 tmp35        [V48    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ushort]>
 ;* V49 tmp36        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V50 tmp37        [V50    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V51 tmp38        [V51    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V52 tmp39        [V52    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V53 tmp40        [V53,T11] (  2, 16   )     int  ->  rdx         "Inlining Arg"
+;  V53 tmp40        [V53,T03] (  3, 24   )     int  ->  rdx         "Inlining Arg"
 ;* V54 tmp41        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V55 tmp42        [V55,T09] (  2, 16   )   byref  ->  r15         "Inlining Arg"
-;  V56 tmp43        [V56,T03] (  2, 16   )     int  ->  r12         "Inlining Arg"
+;  V55 tmp42        [V55,T10] (  2, 16   )   byref  ->  r15         "Inlining Arg"
+;  V56 tmp43        [V56,T04] (  2, 16   )     int  ->  r12         "Inlining Arg"
 ;* V57 tmp44        [V57    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V58 tmp45        [V58,T10] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
+;  V58 tmp45        [V58,T11] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
 ;  V59 tmp46        [V59,T12] (  2, 16   )     int  ->  r12         "Inlining Arg"
 ;  V60 tmp47        [V60,T29] (  4,  4   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V61 tmp48        [V61    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V62 tmp49        [V62    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp50        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V64 tmp51        [V64    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V65 tmp52        [V65,T30] (  3,  2   )   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V66 tmp53        [V66,T27] (  4,  2.50)     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V67 tmp54        [V67,T33] (  3,  3   )   byref  ->  r13         "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V68 tmp55        [V68,T46] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;  V69 tmp56        [V69,T40] (  2,  1   )   byref  ->  r13         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V70 tmp57        [V70,T47] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V71 tmp58        [V71    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V72 tmp59        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V73 tmp60        [V73    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V74 tmp61        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V75 tmp62        [V75,T44] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V76 tmp63        [V76,T48] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V77 tmp64        [V77,T41] (  2,  1   )   byref  ->  r13         single-def "field V35._reference (fldOffset=0x0)" P-INDEP
 ;* V78 tmp65        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V35._length (fldOffset=0x8)" P-INDEP
 ;* V79 tmp66        [V79    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V80 tmp67        [V80    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V81 tmp68        [V81,T42] (  2,  1   )   byref  ->  r13         single-def "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V82 tmp69        [V82,T49] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;  V83 tmp70        [V83,T26] (  3,  5   )   byref  ->  r13         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V84 tmp71        [V84,T23] (  4,  5.50)     int  ->  rbx         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V85 tmp72        [V85,T00] (  9, 29   )   byref  ->  r15         "field V47._reference (fldOffset=0x0)" P-INDEP
-;  V86 tmp73        [V86,T02] (  8, 25   )     int  ->  r12         "field V47._length (fldOffset=0x8)" P-INDEP
+;  V86 tmp73        [V86,T01] (  9, 29   )     int  ->  r12         "field V47._length (fldOffset=0x8)" P-INDEP
 ;* V87 tmp74        [V87    ] (  0,  0   )   byref  ->  zero-ref    "field V48._reference (fldOffset=0x0)" P-INDEP
 ;* V88 tmp75        [V88    ] (  0,  0   )     int  ->  zero-ref    "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V89 tmp76        [V89    ] (  0,  0   )   byref  ->  zero-ref    "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V90 tmp77        [V90    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
 ;  V91 tmp78        [V91,T18] (  2,  8   )   byref  ->  r15         "field V54._reference (fldOffset=0x0)" P-INDEP
 ;* V92 tmp79        [V92,T32] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x8)" P-INDEP
 ;  V93 tmp80        [V93,T19] (  2,  8   )   byref  ->  rdx         "field V57._reference (fldOffset=0x0)" P-INDEP
 ;  V94 tmp81        [V94,T20] (  2,  8   )     int  ->  r12         "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V95 tmp82        [V95    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V61._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp83        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V61._length (fldOffset=0x8)" P-INDEP
-;  V97 tmp84        [V97,T04] (  3, 24   )     int  ->  rdx         "index expr"
+;  V97 tmp84        [V97,T05] (  3, 24   )     int  ->  rdx         "index expr"
 ;  V98 tmp85        [V98,T36] (  3,  3   )     int  ->  rdx         "index expr"
 ;  V99 GsCookie     [V99    ] (  1,  1   )    long  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V100 cse0        [V100,T15] (  3, 12   )    long  ->  [rbp-0x30]  spill-single-def "CSE #13: moderate"
 ;  V101 cse1        [V101,T13] (  8, 14.50)     int  ->  rdi         multi-def "CSE #01: moderate"
-;  V102 cse2        [V102,T08] (  4, 16   )     int  ->  [rbp-0x34]  spill-single-def "CSE #11: moderate"
+;  V102 cse2        [V102,T09] (  4, 16   )     int  ->  [rbp-0x34]  spill-single-def "CSE #11: moderate"
 ;  V103 cse3        [V103,T31] (  2,  4   )    long  ->  r10         "CSE #08: moderate"
-;  V104 rat0        [V104,T05] (  9, 21.75)    long  ->  rcx         "Widened IV V17"
-;  V105 rat1        [V105,T01] (  9, 26.50)    long  ->  rax         "Widened IV V27"
-;  V106 rat2        [V106,T06] (  7, 21   )    long  ->  [rbp-0x40]  "Widened IV V45"
+;  V104 rat0        [V104,T06] (  9, 21.75)    long  ->  rcx         "Widened IV V17"
+;  V105 rat1        [V105,T02] (  9, 26.50)    long  ->  rax         "Widened IV V27"
+;  V106 rat2        [V106,T07] (  7, 21   )    long  ->  [rbp-0x40]  "Widened IV V45"
 ;
 ; Lcl frame size = 40
 
 G_M21349_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 40
        lea      rbp, [rsp+0x50]
        mov      qword ptr [rbp-0x48], 0xD1FFAB1E
        mov      r15, rsi
        mov      rbx, rcx
 						;; size=33 bbWeight=1 PerfScore 8.25
 G_M21349_IG02:
        mov      r14, gword ptr [rdi+0x10]
        mov      rsi, gword ptr [rdi+0x08]
        vxorps   xmm1, xmm1, xmm1
        vucomisd xmm0, xmm1
        jp       SHORT G_M21349_IG03
        je       SHORT G_M21349_IG09
 						;; size=20 bbWeight=1 PerfScore 8.33
 G_M21349_IG03:
        mov      edi, dword ptr [rsi+0x08]
        lea      eax, [rdi-0x01]
        mov      ecx, eax
        cmp      edi, ecx
        jbe      SHORT G_M21349_IG07
        align    [0 bytes for IG04]
 						;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M21349_IG04:
        cmp      ecx, edi
        jae      G_M21349_IG35
        vucomisd xmm0, qword ptr [rsi+8*rcx+0x10]
        jae      SHORT G_M21349_IG06
        dec      ecx
        cmp      edi, ecx
        ja       SHORT G_M21349_IG04
 						;; size=22 bbWeight=4 PerfScore 35.00
 G_M21349_IG05:
        mov      eax, ecx
        jmp      SHORT G_M21349_IG07
        align    [6 bytes for IG13]
 						;; size=10 bbWeight=0.25 PerfScore 0.56
 G_M21349_IG06:
        mov      eax, ecx
        mov      ecx, eax
        vmovsd   xmm1, qword ptr [rsi+8*rcx+0x10]
        vucomisd xmm1, xmm0
        jp       SHORT G_M21349_IG07
        je       SHORT G_M21349_IG08
 						;; size=18 bbWeight=0.50 PerfScore 4.25
 G_M21349_IG07:
        xor      r13, r13
        jmp      SHORT G_M21349_IG11
 						;; size=5 bbWeight=0.50 PerfScore 1.12
 G_M21349_IG08:
        cmp      eax, dword ptr [r14+0x08]
        jae      G_M21349_IG35
        mov      ecx, eax
        mov      r13, gword ptr [r14+8*rcx+0x10]
        jmp      SHORT G_M21349_IG11
 						;; size=19 bbWeight=0.50 PerfScore 4.12
 G_M21349_IG09:
        xor      eax, eax
        mov      edi, dword ptr [rsi+0x08]
        test     edi, edi
        je       SHORT G_M21349_IG10
        vmovsd   xmm1, qword ptr [rsi+0x10]
        vxorps   xmm2, xmm2, xmm2
        vucomisd xmm1, xmm2
        jp       SHORT G_M21349_IG10
        jne      SHORT G_M21349_IG10
        cmp      dword ptr [r14+0x08], 0
        jbe      G_M21349_IG35
        mov      r13, gword ptr [r14+0x10]
        jmp      SHORT G_M21349_IG11
 						;; size=43 bbWeight=0.50 PerfScore 9.92
 G_M21349_IG10:
        mov      r13, 0xD1FFAB1E      ; '0'
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M21349_IG11:
        test     r13, r13
        jne      G_M21349_IG23
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M21349_IG12:
        test     dword ptr [rsp], esp
        sub      rsp, 256
        lea      r13, [rsp]
        xor      ecx, ecx
        xor      r9d, r9d
        mov      eax, eax
        jmp      SHORT G_M21349_IG14
 						;; size=23 bbWeight=0.50 PerfScore 3.25
 G_M21349_IG13:
        dec      eax
 						;; size=2 bbWeight=4 PerfScore 1.00
 G_M21349_IG14:
        cmp      edi, eax
        jbe      G_M21349_IG18
        vmovsd   xmm1, qword ptr [rsi+8*rax+0x10]
        test     eax, eax
        jne      SHORT G_M21349_IG16
 						;; size=18 bbWeight=4 PerfScore 26.00
 G_M21349_IG15:
        vxorps   xmm2, xmm2, xmm2
        vucomisd xmm1, xmm2
        jp       SHORT G_M21349_IG16
        je       SHORT G_M21349_IG18
 						;; size=12 bbWeight=2 PerfScore 8.67
 G_M21349_IG16:
        vmovd    r10, xmm0
        vmovd    r11, xmm1
        and      r10, r11
        vmovd    xmm2, r10
        vucomisd xmm2, xmm1
        jp       SHORT G_M21349_IG13
        jne      SHORT G_M21349_IG13
 						;; size=26 bbWeight=4 PerfScore 41.00
 G_M21349_IG17:
        vmovd    r10, xmm1
        not      r10
        vmovd    r11, xmm0
        and      r10, r11
        vmovd    xmm0, r10
        cmp      r9d, 64
        jae      G_M21349_IG35
        mov      r10d, r9d
        mov      dword ptr [r13+4*r10], eax
        inc      r9d
        cmp      eax, dword ptr [r14+0x08]
        jae      G_M21349_IG35
        mov      r10, gword ptr [r14+8*rax+0x10]
        add      ecx, dword ptr [r10+0x08]
        jo       G_M21349_IG34
        vxorps   xmm1, xmm1, xmm1
        vucomisd xmm0, xmm1
        jp       G_M21349_IG13
        jne      G_M21349_IG13
 						;; size=87 bbWeight=2 PerfScore 47.17
 G_M21349_IG18:
        vxorps   xmm1, xmm1, xmm1
        vucomisd xmm0, xmm1
        jp       G_M21349_IG25
        jne      G_M21349_IG25
        cmp      r9d, 64
        ja       G_M21349_IG33
        lea      esi, [r9+r9]
        add      esi, -2
        add      esi, ecx
        jo       G_M21349_IG34
        cmp      esi, edx
        jg       G_M21349_IG24
        mov      dword ptr [rbx], esi
        mov      ebx, r9d
        mov      r12d, edx
        lea      edx, [rbx-0x01]
        mov      eax, edx
        test     eax, eax
        je       G_M21349_IG20
 						;; size=74 bbWeight=0.50 PerfScore 6.17
 G_M21349_IG19:
        cmp      eax, ebx
        jae      G_M21349_IG35
        mov      qword ptr [rbp-0x40], rax
        mov      edx, dword ptr [r13+4*rax]
        cmp      edx, dword ptr [r14+0x08]
        jae      G_M21349_IG35
        mov      rsi, gword ptr [r14+8*rdx+0x10]
        mov      ecx, dword ptr [rsi+0x08]
        mov      dword ptr [rbp-0x34], ecx
        cmp      ecx, r12d
-       ja       G_M21349_IG32
+       jg       G_M21349_IG32
        mov      r8d, ecx
        add      r8, r8
        mov      qword ptr [rbp-0x30], r8
        mov      rdx, r8
        add      rsi, 12
        mov      rdi, r15
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edx, dword ptr [rbp-0x34]
+       cmp      edx, r12d
+       ja       G_M21349_IG33
        mov      rsi, qword ptr [rbp-0x30]
        add      r15, rsi
        sub      r12d, edx
        cmp      r12d, 2
        jb       G_M21349_IG33
        lea      rdx, bword ptr [r15+0x04]
        add      r12d, -2
        mov      word  ptr [r15], 44
        mov      word  ptr [r15+0x02], 32
        mov      r15, rdx
        mov      rdx, qword ptr [rbp-0x40]
        dec      edx
        mov      rax, rdx
        jne      G_M21349_IG19
-						;; size=142 bbWeight=4 PerfScore 117.00
+						;; size=151 bbWeight=4 PerfScore 122.00
 G_M21349_IG20:
        test     ebx, ebx
        je       G_M21349_IG35
        mov      edx, dword ptr [r13]
        cmp      edx, dword ptr [r14+0x08]
        jae      G_M21349_IG35
        mov      rsi, gword ptr [r14+8*rdx+0x10]
        cmp      dword ptr [rsi+0x08], r12d
-       ja       G_M21349_IG32
+       jg       G_M21349_IG32
        mov      edx, dword ptr [rsi+0x08]
        add      rdx, rdx
        add      rsi, 12
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      eax, 1
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M21349_IG21
        call     CORINFO_HELP_FAIL_FAST
 						;; size=82 bbWeight=0.50 PerfScore 11.75
 G_M21349_IG21:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M21349_IG22:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M21349_IG23:
        cmp      dword ptr [r13+0x08], edx
-       jbe      SHORT G_M21349_IG29
+       jle      SHORT G_M21349_IG29
 						;; size=6 bbWeight=0.50 PerfScore 2.00
 G_M21349_IG24:
        mov      byte  ptr [r8], 1
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M21349_IG25:
        xor      eax, eax
        mov      dword ptr [rbx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M21349_IG26:
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M21349_IG27
        call     CORINFO_HELP_FAIL_FAST
 						;; size=15 bbWeight=0.50 PerfScore 2.00
 G_M21349_IG27:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M21349_IG28:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M21349_IG29:
        lea      rsi, bword ptr [r13+0x0C]
        mov      edx, dword ptr [r13+0x08]
        add      rdx, rdx
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      eax, dword ptr [r13+0x08]
        mov      dword ptr [rbx], eax
        mov      eax, 1
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M21349_IG30
        call     CORINFO_HELP_FAIL_FAST
 						;; size=52 bbWeight=0.50 PerfScore 6.75
 G_M21349_IG30:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M21349_IG31:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M21349_IG32:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M21349_IG33:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M21349_IG34:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M21349_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 834, prolog size 33, PerfScore 355.94, instruction count 233, allocated bytes for code 834 (MethodHash=96cdac9a) for method System.Enum:TryFormatFlagNames[double](System.Enum+EnumInfo`1[double],double,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
+; Total bytes of code 843, prolog size 33, PerfScore 360.94, instruction count 235, allocated bytes for code 843 (MethodHash=96cdac9a) for method System.Enum:TryFormatFlagNames[double](System.Enum+EnumInfo`1[double],double,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
9 (1.20 % of base) - System.Enum:TryFormatFlagNames[int](System.Enum+EnumInfo`1[int],int,System.Span`1[ushort],byref,byref):ubyte
 ; Assembly listing for method System.Enum:TryFormatFlagNames[int](System.Enum+EnumInfo`1[int],int,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 22 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T24] (  4,  4   )     ref  ->  rdi         class-hnd single-def <System.Enum+EnumInfo`1[int]>
 ;  V01 arg1         [V01,T20] (  6,  8   )     int  ->  rsi         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
 ;  V03 arg3         [V03,T25] (  5,  3.50)   byref  ->  rbx         single-def
 ;  V04 arg4         [V04,T31] (  3,  2.50)   byref  ->   r9         single-def
-;  V05 loc0         [V05,T09] ( 11, 16   )     ref  ->  r14         class-hnd exact single-def <System.String[]>
+;  V05 loc0         [V05,T10] ( 11, 16   )     ref  ->  r14         class-hnd exact single-def <System.String[]>
 ;  V06 loc1         [V06,T18] (  7, 11   )     ref  ->  rdx         class-hnd single-def <int[]>
 ;  V07 loc2         [V07,T37] (  6,  3   )     int  ->  rax         ld-addr-op
 ;* V08 loc3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V09 loc4         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
 ;  V10 loc5         [V10,T28] (  4,  5   )     int  ->   r8         ld-addr-op
 ;  V11 loc6         [V11,T19] (  8, 10   )     int  ->  r10         ld-addr-op
 ;  V12 loc7         [V12,T41] (  3,  1.50)     int  ->  rdx        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V15 tmp2         [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[int]>
 ;  V16 tmp3         [V16,T27] (  9,  5   )     ref  ->  r13         class-hnd "Inline return value spill temp" <System.String>
 ;  V17 tmp4         [V17,T36] (  7,  3.25)     int  ->  rax         "Inline stloc first use temp"
 ;* V18 tmp5         [V18    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V19 tmp6         [V19    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp8         [V21,T47] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V22 tmp9         [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V23 tmp10        [V23    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp11        [V24    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V26 tmp13        [V26,T39] (  2,  2   )    long  ->  r13         "Inlining Arg"
 ;  V27 tmp14        [V27,T40] (  2,  2   )     int  ->  rax         "Inlining Arg"
-;  V28 tmp15        [V28,T05] (  6, 22   )     int  ->  rsi         "Inlining Arg"
-;  V29 tmp16        [V29,T08] (  5, 18   )     int  ->  r11         "Inline stloc first use temp"
+;  V28 tmp15        [V28,T06] (  6, 22   )     int  ->  rsi         "Inlining Arg"
+;  V29 tmp16        [V29,T09] (  5, 18   )     int  ->  r11         "Inline stloc first use temp"
 ;* V30 tmp17        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V31 tmp18        [V31    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
 ;* V32 tmp19        [V32    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp20        [V33    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp22        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V36 tmp23        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp24        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp25        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V39 tmp26        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V40 tmp27        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V41 tmp28        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[int]>
 ;* V42 tmp29        [V42    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V43 tmp30        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp31        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[int]>
 ;  V45 tmp32        [V45,T45] (  2,  1   )     int  ->  rdx         "Inline stloc first use temp"
 ;  V46 tmp33        [V46,T16] (  3, 12   )     ref  ->  rsi         class-hnd exact "Inline stloc first use temp" <System.String>
 ;* V47 tmp34        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V48 tmp35        [V48    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ushort]>
 ;* V49 tmp36        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V50 tmp37        [V50    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V51 tmp38        [V51    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V52 tmp39        [V52    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V53 tmp40        [V53,T13] (  2, 16   )     int  ->  rdx         "Inlining Arg"
+;  V53 tmp40        [V53,T03] (  3, 24   )     int  ->  rdx         "Inlining Arg"
 ;* V54 tmp41        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V55 tmp42        [V55,T11] (  2, 16   )   byref  ->  r15         "Inlining Arg"
-;  V56 tmp43        [V56,T03] (  2, 16   )     int  ->  r12         "Inlining Arg"
+;  V55 tmp42        [V55,T12] (  2, 16   )   byref  ->  r15         "Inlining Arg"
+;  V56 tmp43        [V56,T04] (  2, 16   )     int  ->  r12         "Inlining Arg"
 ;* V57 tmp44        [V57    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V58 tmp45        [V58,T12] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
+;  V58 tmp45        [V58,T13] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
 ;  V59 tmp46        [V59,T14] (  2, 16   )     int  ->  r12         "Inlining Arg"
 ;  V60 tmp47        [V60,T32] (  4,  4   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V61 tmp48        [V61    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V62 tmp49        [V62    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp50        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V64 tmp51        [V64    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V65 tmp52        [V65,T33] (  3,  2   )   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V66 tmp53        [V66,T30] (  4,  2.50)     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V67 tmp54        [V67,T35] (  3,  3   )   byref  ->  r13         "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V68 tmp55        [V68,T48] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;  V69 tmp56        [V69,T42] (  2,  1   )   byref  ->  r13         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V70 tmp57        [V70,T49] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V71 tmp58        [V71    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V72 tmp59        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V73 tmp60        [V73    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V74 tmp61        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V75 tmp62        [V75,T46] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V76 tmp63        [V76,T50] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V77 tmp64        [V77,T43] (  2,  1   )   byref  ->  r13         single-def "field V35._reference (fldOffset=0x0)" P-INDEP
 ;* V78 tmp65        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V35._length (fldOffset=0x8)" P-INDEP
 ;* V79 tmp66        [V79    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V80 tmp67        [V80    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V81 tmp68        [V81,T44] (  2,  1   )   byref  ->  r13         single-def "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V82 tmp69        [V82,T51] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;  V83 tmp70        [V83,T29] (  3,  5   )   byref  ->  r13         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V84 tmp71        [V84,T26] (  4,  5.50)     int  ->  rbx         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V85 tmp72        [V85,T00] (  9, 29   )   byref  ->  r15         "field V47._reference (fldOffset=0x0)" P-INDEP
-;  V86 tmp73        [V86,T02] (  8, 25   )     int  ->  r12         "field V47._length (fldOffset=0x8)" P-INDEP
+;  V86 tmp73        [V86,T01] (  9, 29   )     int  ->  r12         "field V47._length (fldOffset=0x8)" P-INDEP
 ;* V87 tmp74        [V87    ] (  0,  0   )   byref  ->  zero-ref    "field V48._reference (fldOffset=0x0)" P-INDEP
 ;* V88 tmp75        [V88    ] (  0,  0   )     int  ->  zero-ref    "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V89 tmp76        [V89    ] (  0,  0   )   byref  ->  zero-ref    "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V90 tmp77        [V90    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
 ;  V91 tmp78        [V91,T21] (  2,  8   )   byref  ->  r15         "field V54._reference (fldOffset=0x0)" P-INDEP
 ;* V92 tmp79        [V92,T34] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x8)" P-INDEP
 ;  V93 tmp80        [V93,T22] (  2,  8   )   byref  ->  rdx         "field V57._reference (fldOffset=0x0)" P-INDEP
 ;  V94 tmp81        [V94,T23] (  2,  8   )     int  ->  r12         "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V95 tmp82        [V95    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V61._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp83        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V61._length (fldOffset=0x8)" P-INDEP
-;  V97 tmp84        [V97,T04] (  3, 24   )     int  ->  rdx         "index expr"
+;  V97 tmp84        [V97,T05] (  3, 24   )     int  ->  rdx         "index expr"
 ;  V98 tmp85        [V98,T38] (  3,  3   )     int  ->  rdx         "index expr"
 ;  V99 GsCookie     [V99    ] (  1,  1   )    long  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V100 cse0        [V100,T17] (  3, 12   )    long  ->  [rbp-0x30]  spill-single-def "CSE #10: moderate"
 ;  V101 cse1        [V101,T15] (  8, 14.50)     int  ->  rdi         multi-def "CSE #01: moderate"
-;  V102 cse2        [V102,T10] (  4, 16   )     int  ->  [rbp-0x34]  spill-single-def "CSE #08: moderate"
-;  V103 rat0        [V103,T06] (  9, 21.75)    long  ->   r8         "Widened IV V17"
-;  V104 rat1        [V104,T01] (  9, 26.50)    long  ->  rax         "Widened IV V27"
-;  V105 rat2        [V105,T07] (  7, 21   )    long  ->  [rbp-0x40]  "Widened IV V45"
+;  V102 cse2        [V102,T11] (  4, 16   )     int  ->  [rbp-0x34]  spill-single-def "CSE #08: moderate"
+;  V103 rat0        [V103,T07] (  9, 21.75)    long  ->   r8         "Widened IV V17"
+;  V104 rat1        [V104,T02] (  9, 26.50)    long  ->  rax         "Widened IV V27"
+;  V105 rat2        [V105,T08] (  7, 21   )    long  ->  [rbp-0x40]  "Widened IV V45"
 ;
 ; Lcl frame size = 40
 
 G_M51107_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 40
        lea      rbp, [rsp+0x50]
        mov      qword ptr [rbp-0x48], 0xD1FFAB1E
        mov      r15, rdx
        mov      rbx, r8
 						;; size=33 bbWeight=1 PerfScore 8.25
 G_M51107_IG02:
        mov      r14, gword ptr [rdi+0x10]
        mov      rdx, gword ptr [rdi+0x08]
        test     esi, esi
        je       SHORT G_M51107_IG09
 						;; size=12 bbWeight=1 PerfScore 5.25
 G_M51107_IG03:
        mov      edi, dword ptr [rdx+0x08]
        lea      eax, [rdi-0x01]
        mov      r8d, eax
        cmp      edi, r8d
        jbe      SHORT G_M51107_IG07
        align    [5 bytes for IG04]
 						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M51107_IG04:
        cmp      r8d, edi
        jae      G_M51107_IG35
        cmp      dword ptr [rdx+4*r8+0x10], esi
        jle      SHORT G_M51107_IG06
        dec      r8d
        cmp      edi, r8d
        ja       SHORT G_M51107_IG04
 						;; size=24 bbWeight=4 PerfScore 27.00
 G_M51107_IG05:
        mov      eax, r8d
        jmp      SHORT G_M51107_IG07
        align    [0 bytes for IG13]
 						;; size=5 bbWeight=0.25 PerfScore 0.56
 G_M51107_IG06:
        mov      eax, r8d
        mov      r8d, eax
        cmp      dword ptr [rdx+4*r8+0x10], esi
        je       SHORT G_M51107_IG08
 						;; size=13 bbWeight=0.50 PerfScore 2.25
 G_M51107_IG07:
        xor      r13, r13
        jmp      SHORT G_M51107_IG11
 						;; size=5 bbWeight=0.50 PerfScore 1.12
 G_M51107_IG08:
        cmp      eax, dword ptr [r14+0x08]
        jae      G_M51107_IG35
        mov      r8d, eax
        mov      r13, gword ptr [r14+8*r8+0x10]
        jmp      SHORT G_M51107_IG11
 						;; size=20 bbWeight=0.50 PerfScore 4.12
 G_M51107_IG09:
        xor      eax, eax
        mov      edi, dword ptr [rdx+0x08]
        test     edi, edi
        je       SHORT G_M51107_IG10
        cmp      dword ptr [rdx+0x10], 0
        jne      SHORT G_M51107_IG10
        cmp      dword ptr [r14+0x08], 0
        jbe      G_M51107_IG35
        mov      r13, gword ptr [r14+0x10]
        jmp      SHORT G_M51107_IG11
 						;; size=32 bbWeight=0.50 PerfScore 7.75
 G_M51107_IG10:
        mov      r13, 0xD1FFAB1E      ; '0'
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M51107_IG11:
        test     r13, r13
        jne      G_M51107_IG23
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M51107_IG12:
        test     dword ptr [rsp], esp
        sub      rsp, 256
        lea      r13, [rsp]
        xor      r8d, r8d
        xor      r10d, r10d
        mov      eax, eax
        jmp      SHORT G_M51107_IG14
 						;; size=24 bbWeight=0.50 PerfScore 3.25
 G_M51107_IG13:
        dec      eax
 						;; size=2 bbWeight=4 PerfScore 1.00
 G_M51107_IG14:
        cmp      edi, eax
        jbe      SHORT G_M51107_IG15
        mov      r11d, dword ptr [rdx+4*rax+0x10]
        mov      r12d, eax
        or       r12d, r11d
        jne      SHORT G_M51107_IG16
 						;; size=17 bbWeight=4 PerfScore 19.00
 G_M51107_IG15:
        test     esi, esi
        jne      G_M51107_IG25
        cmp      r10d, 64
        jbe      SHORT G_M51107_IG18
        jmp      G_M51107_IG33
 						;; size=19 bbWeight=0.50 PerfScore 2.25
 G_M51107_IG16:
        mov      r12d, esi
        and      r12d, r11d
        cmp      r12d, r11d
        jne      SHORT G_M51107_IG13
 						;; size=11 bbWeight=4 PerfScore 7.00
 G_M51107_IG17:
        andn     esi, r11d, esi
        cmp      r10d, 64
        jae      G_M51107_IG35
        mov      r11d, r10d
        mov      dword ptr [r13+4*r11], eax
        inc      r10d
        cmp      eax, dword ptr [r14+0x08]
        jae      G_M51107_IG35
        mov      r11, gword ptr [r14+8*rax+0x10]
        add      r8d, dword ptr [r11+0x08]
        jo       G_M51107_IG34
        test     esi, esi
        je       SHORT G_M51107_IG15
        jmp      SHORT G_M51107_IG13
 						;; size=57 bbWeight=2 PerfScore 33.00
 G_M51107_IG18:
        lea      edx, [r10+r10]
        add      edx, -2
        add      edx, r8d
        jo       G_M51107_IG34
        cmp      edx, ecx
        jg       G_M51107_IG24
        mov      dword ptr [rbx], edx
        mov      ebx, r10d
        mov      r12d, ecx
        lea      edx, [rbx-0x01]
        mov      eax, edx
        test     eax, eax
        je       G_M51107_IG20
 						;; size=45 bbWeight=0.50 PerfScore 3.38
 G_M51107_IG19:
        cmp      eax, ebx
        jae      G_M51107_IG35
        mov      qword ptr [rbp-0x40], rax
        mov      edx, dword ptr [r13+4*rax]
        cmp      edx, dword ptr [r14+0x08]
        jae      G_M51107_IG35
        mov      rsi, gword ptr [r14+8*rdx+0x10]
        mov      ecx, dword ptr [rsi+0x08]
        mov      dword ptr [rbp-0x34], ecx
        cmp      ecx, r12d
-       ja       G_M51107_IG32
+       jg       G_M51107_IG32
        mov      r8d, ecx
        add      r8, r8
        mov      qword ptr [rbp-0x30], r8
        mov      rdx, r8
        add      rsi, 12
        mov      rdi, r15
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edx, dword ptr [rbp-0x34]
+       cmp      edx, r12d
+       ja       G_M51107_IG33
        mov      rsi, qword ptr [rbp-0x30]
        add      r15, rsi
        sub      r12d, edx
        cmp      r12d, 2
        jb       G_M51107_IG33
        lea      rdx, bword ptr [r15+0x04]
        add      r12d, -2
        mov      word  ptr [r15], 44
        mov      word  ptr [r15+0x02], 32
        mov      r15, rdx
        mov      rdx, qword ptr [rbp-0x40]
        dec      edx
        mov      rax, rdx
        jne      G_M51107_IG19
-						;; size=142 bbWeight=4 PerfScore 117.00
+						;; size=151 bbWeight=4 PerfScore 122.00
 G_M51107_IG20:
        test     ebx, ebx
        je       G_M51107_IG35
        mov      edx, dword ptr [r13]
        cmp      edx, dword ptr [r14+0x08]
        jae      G_M51107_IG35
        mov      rsi, gword ptr [r14+8*rdx+0x10]
        cmp      dword ptr [rsi+0x08], r12d
-       ja       G_M51107_IG32
+       jg       G_M51107_IG32
        mov      edx, dword ptr [rsi+0x08]
        add      rdx, rdx
        add      rsi, 12
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      eax, 1
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M51107_IG21
        call     CORINFO_HELP_FAIL_FAST
 						;; size=82 bbWeight=0.50 PerfScore 11.75
 G_M51107_IG21:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M51107_IG22:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M51107_IG23:
        cmp      dword ptr [r13+0x08], ecx
-       jbe      SHORT G_M51107_IG29
+       jle      SHORT G_M51107_IG29
 						;; size=6 bbWeight=0.50 PerfScore 2.00
 G_M51107_IG24:
        mov      byte  ptr [r9], 1
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M51107_IG25:
        xor      eax, eax
        mov      dword ptr [rbx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M51107_IG26:
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M51107_IG27
        call     CORINFO_HELP_FAIL_FAST
 						;; size=15 bbWeight=0.50 PerfScore 2.00
 G_M51107_IG27:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M51107_IG28:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M51107_IG29:
        lea      rsi, bword ptr [r13+0x0C]
        mov      edx, dword ptr [r13+0x08]
        add      rdx, rdx
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      eax, dword ptr [r13+0x08]
        mov      dword ptr [rbx], eax
        mov      eax, 1
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M51107_IG30
        call     CORINFO_HELP_FAIL_FAST
 						;; size=52 bbWeight=0.50 PerfScore 6.75
 G_M51107_IG30:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M51107_IG31:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M51107_IG32:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M51107_IG33:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M51107_IG34:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M51107_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 748, prolog size 33, PerfScore 276.44, instruction count 214, allocated bytes for code 748 (MethodHash=5dd4385c) for method System.Enum:TryFormatFlagNames[int](System.Enum+EnumInfo`1[int],int,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
+; Total bytes of code 757, prolog size 33, PerfScore 281.44, instruction count 216, allocated bytes for code 757 (MethodHash=5dd4385c) for method System.Enum:TryFormatFlagNames[int](System.Enum+EnumInfo`1[int],int,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
9 (1.20 % of base) - System.Enum:TryFormatFlagNames[long](System.Enum+EnumInfo`1[long],long,System.Span`1[ushort],byref,byref):ubyte
 ; Assembly listing for method System.Enum:TryFormatFlagNames[long](System.Enum+EnumInfo`1[long],long,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 22 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T24] (  4,  4   )     ref  ->  rdi         class-hnd single-def <System.Enum+EnumInfo`1[long]>
 ;  V01 arg1         [V01,T20] (  6,  8   )    long  ->  rsi         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
 ;  V03 arg3         [V03,T25] (  5,  3.50)   byref  ->  rbx         single-def
 ;  V04 arg4         [V04,T31] (  3,  2.50)   byref  ->   r9         single-def
-;  V05 loc0         [V05,T08] ( 11, 16   )     ref  ->  r14         class-hnd exact single-def <System.String[]>
+;  V05 loc0         [V05,T09] ( 11, 16   )     ref  ->  r14         class-hnd exact single-def <System.String[]>
 ;  V06 loc1         [V06,T18] (  7, 11   )     ref  ->  rdx         class-hnd single-def <long[]>
 ;  V07 loc2         [V07,T37] (  6,  3   )     int  ->  rax         ld-addr-op
 ;* V08 loc3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V09 loc4         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
 ;  V10 loc5         [V10,T28] (  4,  5   )     int  ->   r8         ld-addr-op
 ;  V11 loc6         [V11,T19] (  8, 10   )     int  ->  r10         ld-addr-op
 ;  V12 loc7         [V12,T41] (  3,  1.50)     int  ->  rdx        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V15 tmp2         [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[int]>
 ;  V16 tmp3         [V16,T27] (  9,  5   )     ref  ->  r13         class-hnd "Inline return value spill temp" <System.String>
 ;  V17 tmp4         [V17,T36] (  7,  3.25)     int  ->  rax         "Inline stloc first use temp"
 ;* V18 tmp5         [V18    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
 ;* V19 tmp6         [V19    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp8         [V21,T47] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V22 tmp9         [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V23 tmp10        [V23    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp11        [V24    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V26 tmp13        [V26,T39] (  2,  2   )    long  ->  r13         "Inlining Arg"
 ;  V27 tmp14        [V27,T40] (  2,  2   )     int  ->  rax         "Inlining Arg"
-;  V28 tmp15        [V28,T05] (  6, 22   )    long  ->  rsi         "Inlining Arg"
-;  V29 tmp16        [V29,T09] (  5, 16   )    long  ->  r11         "Inline stloc first use temp"
+;  V28 tmp15        [V28,T06] (  6, 22   )    long  ->  rsi         "Inlining Arg"
+;  V29 tmp16        [V29,T10] (  5, 16   )    long  ->  r11         "Inline stloc first use temp"
 ;* V30 tmp17        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V31 tmp18        [V31    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
 ;* V32 tmp19        [V32    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp20        [V33    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp22        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V36 tmp23        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp24        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp25        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V39 tmp26        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V40 tmp27        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V41 tmp28        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[int]>
 ;* V42 tmp29        [V42    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V43 tmp30        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp31        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[int]>
 ;  V45 tmp32        [V45,T45] (  2,  1   )     int  ->  rdx         "Inline stloc first use temp"
 ;  V46 tmp33        [V46,T16] (  3, 12   )     ref  ->  rsi         class-hnd exact "Inline stloc first use temp" <System.String>
 ;* V47 tmp34        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V48 tmp35        [V48    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ushort]>
 ;* V49 tmp36        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V50 tmp37        [V50    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V51 tmp38        [V51    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V52 tmp39        [V52    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V53 tmp40        [V53,T13] (  2, 16   )     int  ->  rdx         "Inlining Arg"
+;  V53 tmp40        [V53,T03] (  3, 24   )     int  ->  rdx         "Inlining Arg"
 ;* V54 tmp41        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V55 tmp42        [V55,T11] (  2, 16   )   byref  ->  r15         "Inlining Arg"
-;  V56 tmp43        [V56,T03] (  2, 16   )     int  ->  r12         "Inlining Arg"
+;  V55 tmp42        [V55,T12] (  2, 16   )   byref  ->  r15         "Inlining Arg"
+;  V56 tmp43        [V56,T04] (  2, 16   )     int  ->  r12         "Inlining Arg"
 ;* V57 tmp44        [V57    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V58 tmp45        [V58,T12] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
+;  V58 tmp45        [V58,T13] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
 ;  V59 tmp46        [V59,T14] (  2, 16   )     int  ->  r12         "Inlining Arg"
 ;  V60 tmp47        [V60,T32] (  4,  4   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V61 tmp48        [V61    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V62 tmp49        [V62    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp50        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V64 tmp51        [V64    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V65 tmp52        [V65,T33] (  3,  2   )   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V66 tmp53        [V66,T30] (  4,  2.50)     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V67 tmp54        [V67,T35] (  3,  3   )   byref  ->  r13         "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V68 tmp55        [V68,T48] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;  V69 tmp56        [V69,T42] (  2,  1   )   byref  ->  r13         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V70 tmp57        [V70,T49] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V71 tmp58        [V71    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V72 tmp59        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V73 tmp60        [V73    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V74 tmp61        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V75 tmp62        [V75,T46] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V76 tmp63        [V76,T50] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;  V77 tmp64        [V77,T43] (  2,  1   )   byref  ->  r13         single-def "field V35._reference (fldOffset=0x0)" P-INDEP
 ;* V78 tmp65        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V35._length (fldOffset=0x8)" P-INDEP
 ;* V79 tmp66        [V79    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V80 tmp67        [V80    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V81 tmp68        [V81,T44] (  2,  1   )   byref  ->  r13         single-def "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V82 tmp69        [V82,T51] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;  V83 tmp70        [V83,T29] (  3,  5   )   byref  ->  r13         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;  V84 tmp71        [V84,T26] (  4,  5.50)     int  ->  rbx         "field V44._length (fldOffset=0x8)" P-INDEP
 ;  V85 tmp72        [V85,T00] (  9, 29   )   byref  ->  r15         "field V47._reference (fldOffset=0x0)" P-INDEP
-;  V86 tmp73        [V86,T02] (  8, 25   )     int  ->  r12         "field V47._length (fldOffset=0x8)" P-INDEP
+;  V86 tmp73        [V86,T01] (  9, 29   )     int  ->  r12         "field V47._length (fldOffset=0x8)" P-INDEP
 ;* V87 tmp74        [V87    ] (  0,  0   )   byref  ->  zero-ref    "field V48._reference (fldOffset=0x0)" P-INDEP
 ;* V88 tmp75        [V88    ] (  0,  0   )     int  ->  zero-ref    "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V89 tmp76        [V89    ] (  0,  0   )   byref  ->  zero-ref    "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V90 tmp77        [V90    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
 ;  V91 tmp78        [V91,T21] (  2,  8   )   byref  ->  r15         "field V54._reference (fldOffset=0x0)" P-INDEP
 ;* V92 tmp79        [V92,T34] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x8)" P-INDEP
 ;  V93 tmp80        [V93,T22] (  2,  8   )   byref  ->  rdx         "field V57._reference (fldOffset=0x0)" P-INDEP
 ;  V94 tmp81        [V94,T23] (  2,  8   )     int  ->  r12         "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V95 tmp82        [V95    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V61._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp83        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V61._length (fldOffset=0x8)" P-INDEP
-;  V97 tmp84        [V97,T04] (  3, 24   )     int  ->  rdx         "index expr"
+;  V97 tmp84        [V97,T05] (  3, 24   )     int  ->  rdx         "index expr"
 ;  V98 tmp85        [V98,T38] (  3,  3   )     int  ->  rdx         "index expr"
 ;  V99 GsCookie     [V99    ] (  1,  1   )    long  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V100 cse0        [V100,T17] (  3, 12   )    long  ->  [rbp-0x30]  spill-single-def "CSE #10: moderate"
 ;  V101 cse1        [V101,T15] (  8, 14.50)     int  ->  rdi         multi-def "CSE #01: moderate"
-;  V102 cse2        [V102,T10] (  4, 16   )     int  ->  [rbp-0x34]  spill-single-def "CSE #08: moderate"
-;  V103 rat0        [V103,T06] (  9, 21.75)    long  ->   r8         "Widened IV V17"
-;  V104 rat1        [V104,T01] (  9, 26.50)    long  ->  rax         "Widened IV V27"
-;  V105 rat2        [V105,T07] (  7, 21   )    long  ->  [rbp-0x40]  "Widened IV V45"
+;  V102 cse2        [V102,T11] (  4, 16   )     int  ->  [rbp-0x34]  spill-single-def "CSE #08: moderate"
+;  V103 rat0        [V103,T07] (  9, 21.75)    long  ->   r8         "Widened IV V17"
+;  V104 rat1        [V104,T02] (  9, 26.50)    long  ->  rax         "Widened IV V27"
+;  V105 rat2        [V105,T08] (  7, 21   )    long  ->  [rbp-0x40]  "Widened IV V45"
 ;
 ; Lcl frame size = 40
 
 G_M46618_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 40
        lea      rbp, [rsp+0x50]
        mov      qword ptr [rbp-0x48], 0xD1FFAB1E
        mov      r15, rdx
        mov      rbx, r8
 						;; size=33 bbWeight=1 PerfScore 8.25
 G_M46618_IG02:
        mov      r14, gword ptr [rdi+0x10]
        mov      rdx, gword ptr [rdi+0x08]
        test     rsi, rsi
        je       SHORT G_M46618_IG09
 						;; size=13 bbWeight=1 PerfScore 5.25
 G_M46618_IG03:
        mov      edi, dword ptr [rdx+0x08]
        lea      eax, [rdi-0x01]
        mov      r8d, eax
        cmp      edi, r8d
        jbe      SHORT G_M46618_IG07
        align    [4 bytes for IG04]
 						;; size=18 bbWeight=0.50 PerfScore 2.12
 G_M46618_IG04:
        cmp      r8d, edi
        jae      G_M46618_IG35
        cmp      qword ptr [rdx+8*r8+0x10], rsi
        jle      SHORT G_M46618_IG06
        dec      r8d
        cmp      edi, r8d
        ja       SHORT G_M46618_IG04
 						;; size=24 bbWeight=4 PerfScore 27.00
 G_M46618_IG05:
        mov      eax, r8d
        jmp      SHORT G_M46618_IG07
        align    [1 bytes for IG13]
 						;; size=6 bbWeight=0.25 PerfScore 0.56
 G_M46618_IG06:
        mov      eax, r8d
        mov      r8d, eax
        cmp      qword ptr [rdx+8*r8+0x10], rsi
        je       SHORT G_M46618_IG08
 						;; size=13 bbWeight=0.50 PerfScore 2.25
 G_M46618_IG07:
        xor      r13, r13
        jmp      SHORT G_M46618_IG11
 						;; size=5 bbWeight=0.50 PerfScore 1.12
 G_M46618_IG08:
        cmp      eax, dword ptr [r14+0x08]
        jae      G_M46618_IG35
        mov      r8d, eax
        mov      r13, gword ptr [r14+8*r8+0x10]
        jmp      SHORT G_M46618_IG11
 						;; size=20 bbWeight=0.50 PerfScore 4.12
 G_M46618_IG09:
        xor      eax, eax
        mov      edi, dword ptr [rdx+0x08]
        test     edi, edi
        je       SHORT G_M46618_IG10
        cmp      qword ptr [rdx+0x10], 0
        jne      SHORT G_M46618_IG10
        cmp      dword ptr [r14+0x08], 0
        jbe      G_M46618_IG35
        mov      r13, gword ptr [r14+0x10]
        jmp      SHORT G_M46618_IG11
 						;; size=33 bbWeight=0.50 PerfScore 7.75
 G_M46618_IG10:
        mov      r13, 0xD1FFAB1E      ; '0'
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M46618_IG11:
        test     r13, r13
        jne      G_M46618_IG23
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M46618_IG12:
        test     dword ptr [rsp], esp
        sub      rsp, 256
        lea      r13, [rsp]
        xor      r8d, r8d
        xor      r10d, r10d
        mov      eax, eax
        jmp      SHORT G_M46618_IG14
 						;; size=24 bbWeight=0.50 PerfScore 3.25
 G_M46618_IG13:
        dec      eax
 						;; size=2 bbWeight=4 PerfScore 1.00
 G_M46618_IG14:
        cmp      edi, eax
        jbe      SHORT G_M46618_IG18
        mov      r11, qword ptr [rdx+8*rax+0x10]
        test     eax, eax
        jne      SHORT G_M46618_IG16
 						;; size=13 bbWeight=4 PerfScore 18.00
 G_M46618_IG15:
        test     r11, r11
        je       SHORT G_M46618_IG18
 						;; size=5 bbWeight=2 PerfScore 2.50
 G_M46618_IG16:
        mov      r12, rsi
        and      r12, r11
        cmp      r12, r11
        jne      SHORT G_M46618_IG13
 						;; size=11 bbWeight=4 PerfScore 7.00
 G_M46618_IG17:
        andn     rsi, r11, rsi
        cmp      r10d, 64
        jae      G_M46618_IG35
        mov      r11d, r10d
        mov      dword ptr [r13+4*r11], eax
        inc      r10d
        cmp      eax, dword ptr [r14+0x08]
        jae      G_M46618_IG35
        mov      r11, gword ptr [r14+8*rax+0x10]
        add      r8d, dword ptr [r11+0x08]
        jo       G_M46618_IG34
        test     rsi, rsi
        jne      SHORT G_M46618_IG13
 						;; size=56 bbWeight=2 PerfScore 29.00
 G_M46618_IG18:
        test     rsi, rsi
        jne      G_M46618_IG25
        cmp      r10d, 64
        ja       G_M46618_IG33
        lea      edx, [r10+r10]
        add      edx, -2
        add      edx, r8d
        jo       G_M46618_IG34
        cmp      edx, ecx
        jg       G_M46618_IG24
        mov      dword ptr [rbx], edx
        mov      ebx, r10d
        mov      r12d, ecx
        lea      edx, [rbx-0x01]
        mov      eax, edx
        test     eax, eax
        je       G_M46618_IG20
 						;; size=64 bbWeight=0.50 PerfScore 4.62
 G_M46618_IG19:
        cmp      eax, ebx
        jae      G_M46618_IG35
        mov      qword ptr [rbp-0x40], rax
        mov      edx, dword ptr [r13+4*rax]
        cmp      edx, dword ptr [r14+0x08]
        jae      G_M46618_IG35
        mov      rsi, gword ptr [r14+8*rdx+0x10]
        mov      ecx, dword ptr [rsi+0x08]
        mov      dword ptr [rbp-0x34], ecx
        cmp      ecx, r12d
-       ja       G_M46618_IG32
+       jg       G_M46618_IG32
        mov      r8d, ecx
        add      r8, r8
        mov      qword ptr [rbp-0x30], r8
        mov      rdx, r8
        add      rsi, 12
        mov      rdi, r15
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edx, dword ptr [rbp-0x34]
+       cmp      edx, r12d
+       ja       G_M46618_IG33
        mov      rsi, qword ptr [rbp-0x30]
        add      r15, rsi
        sub      r12d, edx
        cmp      r12d, 2
        jb       G_M46618_IG33
        lea      rdx, bword ptr [r15+0x04]
        add      r12d, -2
        mov      word  ptr [r15], 44
        mov      word  ptr [r15+0x02], 32
        mov      r15, rdx
        mov      rdx, qword ptr [rbp-0x40]
        dec      edx
        mov      rax, rdx
        jne      G_M46618_IG19
-						;; size=142 bbWeight=4 PerfScore 117.00
+						;; size=151 bbWeight=4 PerfScore 122.00
 G_M46618_IG20:
        test     ebx, ebx
        je       G_M46618_IG35
        mov      edx, dword ptr [r13]
        cmp      edx, dword ptr [r14+0x08]
        jae      G_M46618_IG35
        mov      rsi, gword ptr [r14+8*rdx+0x10]
        cmp      dword ptr [rsi+0x08], r12d
-       ja       G_M46618_IG32
+       jg       G_M46618_IG32
        mov      edx, dword ptr [rsi+0x08]
        add      rdx, rdx
        add      rsi, 12
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      eax, 1
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M46618_IG21
        call     CORINFO_HELP_FAIL_FAST
 						;; size=82 bbWeight=0.50 PerfScore 11.75
 G_M46618_IG21:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M46618_IG22:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M46618_IG23:
        cmp      dword ptr [r13+0x08], ecx
-       jbe      SHORT G_M46618_IG29
+       jle      SHORT G_M46618_IG29
 						;; size=6 bbWeight=0.50 PerfScore 2.00
 G_M46618_IG24:
        mov      byte  ptr [r9], 1
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M46618_IG25:
        xor      eax, eax
        mov      dword ptr [rbx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M46618_IG26:
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M46618_IG27
        call     CORINFO_HELP_FAIL_FAST
 						;; size=15 bbWeight=0.50 PerfScore 2.00
 G_M46618_IG27:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M46618_IG28:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M46618_IG29:
        lea      rsi, bword ptr [r13+0x0C]
        mov      edx, dword ptr [r13+0x08]
        add      rdx, rdx
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      eax, dword ptr [r13+0x08]
        mov      dword ptr [rbx], eax
        mov      eax, 1
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M46618_IG30
        call     CORINFO_HELP_FAIL_FAST
 						;; size=52 bbWeight=0.50 PerfScore 6.75
 G_M46618_IG30:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M46618_IG31:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M46618_IG32:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M46618_IG33:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M46618_IG34:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M46618_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 750, prolog size 33, PerfScore 272.94, instruction count 213, allocated bytes for code 750 (MethodHash=596d49e5) for method System.Enum:TryFormatFlagNames[long](System.Enum+EnumInfo`1[long],long,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
+; Total bytes of code 759, prolog size 33, PerfScore 277.94, instruction count 215, allocated bytes for code 759 (MethodHash=596d49e5) for method System.Enum:TryFormatFlagNames[long](System.Enum+EnumInfo`1[long],long,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
9 (1.18 % of base) - System.Enum:TryFormatFlagNames[short](System.Enum+EnumInfo`1[short],short,System.Span`1[ushort],byref,byref):ubyte
 ; Assembly listing for method System.Enum:TryFormatFlagNames[short](System.Enum+EnumInfo`1[short],short,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 22 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T24] (  4,  4   )     ref  ->  rdi         class-hnd single-def <System.Enum+EnumInfo`1[short]>
 ;  V01 arg1         [V01,T30] (  3,  3   )   short  ->  rsi         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
 ;  V03 arg3         [V03,T25] (  5,  3.50)   byref  ->  rbx         single-def
 ;  V04 arg4         [V04,T32] (  3,  2.50)   byref  ->   r9         single-def
-;  V05 loc0         [V05,T09] ( 11, 16   )     ref  ->  r14         class-hnd exact single-def <System.String[]>
+;  V05 loc0         [V05,T10] ( 11, 16   )     ref  ->  r14         class-hnd exact single-def <System.String[]>
 ;  V06 loc1         [V06,T18] (  7, 11   )     ref  ->  rdx         class-hnd single-def <short[]>
 ;  V07 loc2         [V07,T38] (  6,  3   )     int  ->  rax         ld-addr-op
 ;* V08 loc3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V09 loc4         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
 ;  V10 loc5         [V10,T28] (  4,  5   )     int  ->   r8         ld-addr-op
 ;  V11 loc6         [V11,T19] (  8, 10   )     int  ->  r10         ld-addr-op
 ;  V12 loc7         [V12,T42] (  3,  1.50)     int  ->  rdx        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V15 tmp2         [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[int]>
 ;  V16 tmp3         [V16,T27] (  9,  5   )     ref  ->  r13         class-hnd "Inline return value spill temp" <System.String>
 ;  V17 tmp4         [V17,T37] (  7,  3.25)     int  ->  rax         "Inline stloc first use temp"
 ;* V18 tmp5         [V18    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V19 tmp6         [V19    ] (  0,  0   )   short  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )   short  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp8         [V21    ] (  0,  0   )   short  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp9         [V22,T48] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V23 tmp10        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V24 tmp11        [V24    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V27 tmp14        [V27,T40] (  2,  2   )    long  ->  r13         "Inlining Arg"
 ;  V28 tmp15        [V28,T41] (  2,  2   )     int  ->  rax         "Inlining Arg"
-;  V29 tmp16        [V29,T05] (  6, 22   )   short  ->  rsi         "Inlining Arg"
-;  V30 tmp17        [V30,T08] (  5, 18   )   short  ->  r11         "Inline stloc first use temp"
+;  V29 tmp16        [V29,T06] (  6, 22   )   short  ->  rsi         "Inlining Arg"
+;  V30 tmp17        [V30,T09] (  5, 18   )   short  ->  r11         "Inline stloc first use temp"
 ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V32 tmp19        [V32    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
 ;* V33 tmp20        [V33    ] (  0,  0   )   short  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )   short  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp22        [V35    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp23        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V37 tmp24        [V37    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp25        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp26        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V40 tmp27        [V40    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp28        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V42 tmp29        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[int]>
 ;* V43 tmp30        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V44 tmp31        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V45 tmp32        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[int]>
 ;  V46 tmp33        [V46,T46] (  2,  1   )     int  ->  rdx         "Inline stloc first use temp"
 ;  V47 tmp34        [V47,T16] (  3, 12   )     ref  ->  rsi         class-hnd exact "Inline stloc first use temp" <System.String>
 ;* V48 tmp35        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp36        [V49    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ushort]>
 ;* V50 tmp37        [V50    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V51 tmp38        [V51    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V52 tmp39        [V52    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp40        [V53    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V54 tmp41        [V54,T13] (  2, 16   )     int  ->  rdx         "Inlining Arg"
+;  V54 tmp41        [V54,T03] (  3, 24   )     int  ->  rdx         "Inlining Arg"
 ;* V55 tmp42        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V56 tmp43        [V56,T11] (  2, 16   )   byref  ->  r15         "Inlining Arg"
-;  V57 tmp44        [V57,T03] (  2, 16   )     int  ->  r12         "Inlining Arg"
+;  V56 tmp43        [V56,T12] (  2, 16   )   byref  ->  r15         "Inlining Arg"
+;  V57 tmp44        [V57,T04] (  2, 16   )     int  ->  r12         "Inlining Arg"
 ;* V58 tmp45        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V59 tmp46        [V59,T12] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
+;  V59 tmp46        [V59,T13] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
 ;  V60 tmp47        [V60,T14] (  2, 16   )     int  ->  r12         "Inlining Arg"
 ;  V61 tmp48        [V61,T33] (  4,  4   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V62 tmp49        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V63 tmp50        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V64 tmp51        [V64    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V65 tmp52        [V65    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V66 tmp53        [V66,T34] (  3,  2   )   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V67 tmp54        [V67,T31] (  4,  2.50)     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V68 tmp55        [V68,T36] (  3,  3   )   byref  ->  r13         "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp56        [V69,T49] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;  V70 tmp57        [V70,T43] (  2,  1   )   byref  ->  r13         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V71 tmp58        [V71,T50] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V72 tmp59        [V72    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V73 tmp60        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V74 tmp61        [V74    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V75 tmp62        [V75    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;* V76 tmp63        [V76,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V77 tmp64        [V77,T51] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
 ;  V78 tmp65        [V78,T44] (  2,  1   )   byref  ->  r13         single-def "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V79 tmp66        [V79    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
 ;* V80 tmp67        [V80    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V81 tmp68        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;  V82 tmp69        [V82,T45] (  2,  1   )   byref  ->  r13         single-def "field V42._reference (fldOffset=0x0)" P-INDEP
 ;* V83 tmp70        [V83,T52] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
 ;  V84 tmp71        [V84,T29] (  3,  5   )   byref  ->  r13         single-def "field V45._reference (fldOffset=0x0)" P-INDEP
 ;  V85 tmp72        [V85,T26] (  4,  5.50)     int  ->  rbx         "field V45._length (fldOffset=0x8)" P-INDEP
 ;  V86 tmp73        [V86,T00] (  9, 29   )   byref  ->  r15         "field V48._reference (fldOffset=0x0)" P-INDEP
-;  V87 tmp74        [V87,T02] (  8, 25   )     int  ->  r12         "field V48._length (fldOffset=0x8)" P-INDEP
+;  V87 tmp74        [V87,T01] (  9, 29   )     int  ->  r12         "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V88 tmp75        [V88    ] (  0,  0   )   byref  ->  zero-ref    "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V89 tmp76        [V89    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
 ;* V90 tmp77        [V90    ] (  0,  0   )   byref  ->  zero-ref    "field V50._reference (fldOffset=0x0)" P-INDEP
 ;* V91 tmp78        [V91    ] (  0,  0   )     int  ->  zero-ref    "field V50._length (fldOffset=0x8)" P-INDEP
 ;  V92 tmp79        [V92,T20] (  2,  8   )   byref  ->  r15         "field V55._reference (fldOffset=0x0)" P-INDEP
 ;* V93 tmp80        [V93,T35] (  0,  0   )     int  ->  zero-ref    "field V55._length (fldOffset=0x8)" P-INDEP
 ;  V94 tmp81        [V94,T21] (  2,  8   )   byref  ->  rdx         "field V58._reference (fldOffset=0x0)" P-INDEP
 ;  V95 tmp82        [V95,T22] (  2,  8   )     int  ->  r12         "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V96 tmp83        [V96    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
 ;* V97 tmp84        [V97    ] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
-;  V98 tmp85        [V98,T04] (  3, 24   )     int  ->  rdx         "index expr"
+;  V98 tmp85        [V98,T05] (  3, 24   )     int  ->  rdx         "index expr"
 ;  V99 tmp86        [V99,T39] (  3,  3   )     int  ->  rdx         "index expr"
 ;  V100 GsCookie    [V100    ] (  1,  1   )    long  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V101 cse0        [V101,T17] (  3, 12   )    long  ->  [rbp-0x30]  spill-single-def "CSE #11: moderate"
 ;  V102 cse1        [V102,T15] (  8, 14.50)     int  ->  rdi         multi-def "CSE #01: moderate"
-;  V103 cse2        [V103,T10] (  4, 16   )     int  ->  [rbp-0x34]  spill-single-def "CSE #09: moderate"
+;  V103 cse2        [V103,T11] (  4, 16   )     int  ->  [rbp-0x34]  spill-single-def "CSE #09: moderate"
 ;  V104 cse3        [V104,T23] (  5,  7   )     int  ->  rsi         "CSE #02: moderate"
-;  V105 rat0        [V105,T06] (  9, 21.75)    long  ->   r8         "Widened IV V17"
-;  V106 rat1        [V106,T01] (  9, 26.50)    long  ->  rax         "Widened IV V28"
-;  V107 rat2        [V107,T07] (  7, 21   )    long  ->  [rbp-0x40]  "Widened IV V46"
+;  V105 rat0        [V105,T07] (  9, 21.75)    long  ->   r8         "Widened IV V17"
+;  V106 rat1        [V106,T02] (  9, 26.50)    long  ->  rax         "Widened IV V28"
+;  V107 rat2        [V107,T08] (  7, 21   )    long  ->  [rbp-0x40]  "Widened IV V46"
 ;
 ; Lcl frame size = 40
 
 G_M41602_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 40
        lea      rbp, [rsp+0x50]
        mov      qword ptr [rbp-0x48], 0xD1FFAB1E
        mov      r15, rdx
        mov      rbx, r8
 						;; size=33 bbWeight=1 PerfScore 8.25
 G_M41602_IG02:
        mov      r14, gword ptr [rdi+0x10]
        mov      rdx, gword ptr [rdi+0x08]
        movsx    rsi, si
        test     esi, esi
        je       SHORT G_M41602_IG09
 						;; size=16 bbWeight=1 PerfScore 5.50
 G_M41602_IG03:
        mov      edi, dword ptr [rdx+0x08]
        lea      eax, [rdi-0x01]
        mov      r8d, eax
        cmp      edi, r8d
        jbe      SHORT G_M41602_IG07
        align    [1 bytes for IG04]
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M41602_IG04:
        cmp      r8d, edi
        jae      G_M41602_IG35
        movsx    rax, word  ptr [rdx+2*r8+0x10]
        cmp      eax, esi
        jle      SHORT G_M41602_IG06
        dec      r8d
        cmp      edi, r8d
        ja       SHORT G_M41602_IG04
 						;; size=27 bbWeight=4 PerfScore 32.00
 G_M41602_IG05:
        mov      eax, r8d
        jmp      SHORT G_M41602_IG07
        align    [0 bytes for IG13]
 						;; size=5 bbWeight=0.25 PerfScore 0.56
 G_M41602_IG06:
        mov      eax, r8d
        mov      r8d, eax
        movsx    r8, word  ptr [rdx+2*r8+0x10]
        cmp      r8d, esi
        je       SHORT G_M41602_IG08
 						;; size=17 bbWeight=0.50 PerfScore 2.88
 G_M41602_IG07:
        xor      r13, r13
        jmp      SHORT G_M41602_IG11
 						;; size=5 bbWeight=0.50 PerfScore 1.12
 G_M41602_IG08:
        cmp      eax, dword ptr [r14+0x08]
        jae      G_M41602_IG35
        mov      r8d, eax
        mov      r13, gword ptr [r14+8*r8+0x10]
        jmp      SHORT G_M41602_IG11
 						;; size=20 bbWeight=0.50 PerfScore 4.12
 G_M41602_IG09:
        xor      eax, eax
        mov      edi, dword ptr [rdx+0x08]
        test     edi, edi
        je       SHORT G_M41602_IG10
        cmp      word  ptr [rdx+0x10], 0
        jne      SHORT G_M41602_IG10
        cmp      dword ptr [r14+0x08], 0
        jbe      G_M41602_IG35
        mov      r13, gword ptr [r14+0x10]
        jmp      SHORT G_M41602_IG11
 						;; size=33 bbWeight=0.50 PerfScore 7.75
 G_M41602_IG10:
        mov      r13, 0xD1FFAB1E      ; '0'
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M41602_IG11:
        test     r13, r13
        jne      G_M41602_IG23
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M41602_IG12:
        test     dword ptr [rsp], esp
        sub      rsp, 256
        lea      r13, [rsp]
        xor      r8d, r8d
        xor      r10d, r10d
        mov      eax, eax
        jmp      SHORT G_M41602_IG14
 						;; size=24 bbWeight=0.50 PerfScore 3.25
 G_M41602_IG13:
        dec      eax
 						;; size=2 bbWeight=4 PerfScore 1.00
 G_M41602_IG14:
        cmp      edi, eax
        jbe      SHORT G_M41602_IG15
        movsx    r11, word  ptr [rdx+2*rax+0x10]
        mov      r12d, eax
        or       r12d, r11d
        jne      SHORT G_M41602_IG16
 						;; size=18 bbWeight=4 PerfScore 27.00
 G_M41602_IG15:
        test     esi, esi
        jne      G_M41602_IG25
        cmp      r10d, 64
        jbe      SHORT G_M41602_IG18
        jmp      G_M41602_IG33
 						;; size=19 bbWeight=0.50 PerfScore 2.25
 G_M41602_IG16:
        mov      r12d, esi
        and      r12d, r11d
        movsx    r12, r12w
        cmp      r12d, r11d
        jne      SHORT G_M41602_IG13
 						;; size=15 bbWeight=4 PerfScore 8.00
 G_M41602_IG17:
        andn     esi, r11d, esi
        movsx    rsi, si
        cmp      r10d, 64
        jae      G_M41602_IG35
        mov      r11d, r10d
        mov      dword ptr [r13+4*r11], eax
        inc      r10d
        cmp      eax, dword ptr [r14+0x08]
        jae      G_M41602_IG35
        mov      r11, gword ptr [r14+8*rax+0x10]
        add      r8d, dword ptr [r11+0x08]
        jo       G_M41602_IG34
        test     esi, esi
        je       SHORT G_M41602_IG15
        jmp      SHORT G_M41602_IG13
 						;; size=61 bbWeight=2 PerfScore 33.50
 G_M41602_IG18:
        lea      edx, [r10+r10]
        add      edx, -2
        add      edx, r8d
        jo       G_M41602_IG34
        cmp      edx, ecx
        jg       G_M41602_IG24
        mov      dword ptr [rbx], edx
        mov      ebx, r10d
        mov      r12d, ecx
        lea      edx, [rbx-0x01]
        mov      eax, edx
        test     eax, eax
        je       G_M41602_IG20
 						;; size=45 bbWeight=0.50 PerfScore 3.38
 G_M41602_IG19:
        cmp      eax, ebx
        jae      G_M41602_IG35
        mov      qword ptr [rbp-0x40], rax
        mov      edx, dword ptr [r13+4*rax]
        cmp      edx, dword ptr [r14+0x08]
        jae      G_M41602_IG35
        mov      rsi, gword ptr [r14+8*rdx+0x10]
        mov      ecx, dword ptr [rsi+0x08]
        mov      dword ptr [rbp-0x34], ecx
        cmp      ecx, r12d
-       ja       G_M41602_IG32
+       jg       G_M41602_IG32
        mov      r8d, ecx
        add      r8, r8
        mov      qword ptr [rbp-0x30], r8
        mov      rdx, r8
        add      rsi, 12
        mov      rdi, r15
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edx, dword ptr [rbp-0x34]
+       cmp      edx, r12d
+       ja       G_M41602_IG33
        mov      rsi, qword ptr [rbp-0x30]
        add      r15, rsi
        sub      r12d, edx
        cmp      r12d, 2
        jb       G_M41602_IG33
        lea      rdx, bword ptr [r15+0x04]
        add      r12d, -2
        mov      word  ptr [r15], 44
        mov      word  ptr [r15+0x02], 32
        mov      r15, rdx
        mov      rdx, qword ptr [rbp-0x40]
        dec      edx
        mov      rax, rdx
        jne      G_M41602_IG19
-						;; size=142 bbWeight=4 PerfScore 117.00
+						;; size=151 bbWeight=4 PerfScore 122.00
 G_M41602_IG20:
        test     ebx, ebx
        je       G_M41602_IG35
        mov      edx, dword ptr [r13]
        cmp      edx, dword ptr [r14+0x08]
        jae      G_M41602_IG35
        mov      rsi, gword ptr [r14+8*rdx+0x10]
        cmp      dword ptr [rsi+0x08], r12d
-       ja       G_M41602_IG32
+       jg       G_M41602_IG32
        mov      edx, dword ptr [rsi+0x08]
        add      rdx, rdx
        add      rsi, 12
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      eax, 1
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M41602_IG21
        call     CORINFO_HELP_FAIL_FAST
 						;; size=82 bbWeight=0.50 PerfScore 11.75
 G_M41602_IG21:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M41602_IG22:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M41602_IG23:
        cmp      dword ptr [r13+0x08], ecx
-       jbe      SHORT G_M41602_IG29
+       jle      SHORT G_M41602_IG29
 						;; size=6 bbWeight=0.50 PerfScore 2.00
 G_M41602_IG24:
        mov      byte  ptr [r9], 1
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M41602_IG25:
        xor      eax, eax
        mov      dword ptr [rbx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M41602_IG26:
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M41602_IG27
        call     CORINFO_HELP_FAIL_FAST
 						;; size=15 bbWeight=0.50 PerfScore 2.00
 G_M41602_IG27:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M41602_IG28:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M41602_IG29:
        lea      rsi, bword ptr [r13+0x0C]
        mov      edx, dword ptr [r13+0x08]
        add      rdx, rdx
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      eax, dword ptr [r13+0x08]
        mov      dword ptr [rbx], eax
        mov      eax, 1
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M41602_IG30
        call     CORINFO_HELP_FAIL_FAST
 						;; size=52 bbWeight=0.50 PerfScore 6.75
 G_M41602_IG30:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M41602_IG31:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M41602_IG32:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M41602_IG33:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M41602_IG34:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M41602_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 765, prolog size 33, PerfScore 291.81, instruction count 219, allocated bytes for code 765 (MethodHash=3d1e5d7d) for method System.Enum:TryFormatFlagNames[short](System.Enum+EnumInfo`1[short],short,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
+; Total bytes of code 774, prolog size 33, PerfScore 296.81, instruction count 221, allocated bytes for code 774 (MethodHash=3d1e5d7d) for method System.Enum:TryFormatFlagNames[short](System.Enum+EnumInfo`1[short],short,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
9 (1.18 % of base) - System.Enum:TryFormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte,System.Span`1[ushort],byref,byref):ubyte
 ; Assembly listing for method System.Enum:TryFormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 22 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T24] (  4,  4   )     ref  ->  rdi         class-hnd single-def <System.Enum+EnumInfo`1[ubyte]>
 ;  V01 arg1         [V01,T30] (  3,  3   )   ubyte  ->  rsi         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
 ;  V03 arg3         [V03,T25] (  5,  3.50)   byref  ->  rbx         single-def
 ;  V04 arg4         [V04,T32] (  3,  2.50)   byref  ->   r9         single-def
-;  V05 loc0         [V05,T09] ( 11, 16   )     ref  ->  r14         class-hnd exact single-def <System.String[]>
+;  V05 loc0         [V05,T10] ( 11, 16   )     ref  ->  r14         class-hnd exact single-def <System.String[]>
 ;  V06 loc1         [V06,T18] (  7, 11   )     ref  ->  rdx         class-hnd single-def <ubyte[]>
 ;  V07 loc2         [V07,T38] (  6,  3   )     int  ->  rax         ld-addr-op
 ;* V08 loc3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;* V09 loc4         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[int]>
 ;  V10 loc5         [V10,T28] (  4,  5   )     int  ->   r8         ld-addr-op
 ;  V11 loc6         [V11,T19] (  8, 10   )     int  ->  r10         ld-addr-op
 ;  V12 loc7         [V12,T42] (  3,  1.50)     int  ->  rdx        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V15 tmp2         [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[int]>
 ;  V16 tmp3         [V16,T27] (  9,  5   )     ref  ->  r13         class-hnd "Inline return value spill temp" <System.String>
 ;  V17 tmp4         [V17,T37] (  7,  3.25)     int  ->  rax         "Inline stloc first use temp"
 ;* V18 tmp5         [V18    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V19 tmp6         [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp8         [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp9         [V22,T48] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V23 tmp10        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V24 tmp11        [V24    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V27 tmp14        [V27,T40] (  2,  2   )    long  ->  r13         "Inlining Arg"
 ;  V28 tmp15        [V28,T41] (  2,  2   )     int  ->  rax         "Inlining Arg"
-;  V29 tmp16        [V29,T05] (  6, 22   )   ubyte  ->  rsi         "Inlining Arg"
-;  V30 tmp17        [V30,T08] (  5, 18   )   ubyte  ->  r11         "Inline stloc first use temp"
+;  V29 tmp16        [V29,T06] (  6, 22   )   ubyte  ->  rsi         "Inlining Arg"
+;  V30 tmp17        [V30,T09] (  5, 18   )   ubyte  ->  r11         "Inline stloc first use temp"
 ;* V31 tmp18        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V32 tmp19        [V32    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
 ;* V33 tmp20        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp21        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp22        [V35    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp23        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V37 tmp24        [V37    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp25        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp26        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V40 tmp27        [V40    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp28        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V42 tmp29        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[int]>
 ;* V43 tmp30        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V44 tmp31        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V45 tmp32        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[int]>
 ;  V46 tmp33        [V46,T46] (  2,  1   )     int  ->  rdx         "Inline stloc first use temp"
 ;  V47 tmp34        [V47,T16] (  3, 12   )     ref  ->  rsi         class-hnd exact "Inline stloc first use temp" <System.String>
 ;* V48 tmp35        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp36        [V49    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ushort]>
 ;* V50 tmp37        [V50    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V51 tmp38        [V51    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V52 tmp39        [V52    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp40        [V53    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V54 tmp41        [V54,T13] (  2, 16   )     int  ->  rdx         "Inlining Arg"
+;  V54 tmp41        [V54,T03] (  3, 24   )     int  ->  rdx         "Inlining Arg"
 ;* V55 tmp42        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V56 tmp43        [V56,T11] (  2, 16   )   byref  ->  r15         "Inlining Arg"
-;  V57 tmp44        [V57,T03] (  2, 16   )     int  ->  r12         "Inlining Arg"
+;  V56 tmp43        [V56,T12] (  2, 16   )   byref  ->  r15         "Inlining Arg"
+;  V57 tmp44        [V57,T04] (  2, 16   )     int  ->  r12         "Inlining Arg"
 ;* V58 tmp45        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V59 tmp46        [V59,T12] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
+;  V59 tmp46        [V59,T13] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
 ;  V60 tmp47        [V60,T14] (  2, 16   )     int  ->  r12         "Inlining Arg"
 ;  V61 tmp48        [V61,T33] (  4,  4   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V62 tmp49        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V63 tmp50        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V64 tmp51        [V64    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V65 tmp52        [V65    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V66 tmp53        [V66,T34] (  3,  2   )   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V67 tmp54        [V67,T31] (  4,  2.50)     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;  V68 tmp55        [V68,T36] (  3,  3   )   byref  ->  r13         "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp56        [V69,T49] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;  V70 tmp57        [V70,T43] (  2,  1   )   byref  ->  r13         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V71 tmp58        [V71,T50] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V72 tmp59        [V72    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V73 tmp60        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V74 tmp61        [V74    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V75 tmp62        [V75    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;* V76 tmp63        [V76,T47] (  0,  0   )   byref  ->  zero-ref    single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V77 tmp64        [V77,T51] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
 ;  V78 tmp65        [V78,T44] (  2,  1   )   byref  ->  r13         single-def "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V79 tmp66        [V79    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
 ;* V80 tmp67        [V80    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V81 tmp68        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;  V82 tmp69        [V82,T45] (  2,  1   )   byref  ->  r13         single-def "field V42._reference (fldOffset=0x0)" P-INDEP
 ;* V83 tmp70        [V83,T52] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
 ;  V84 tmp71        [V84,T29] (  3,  5   )   byref  ->  r13         single-def "field V45._reference (fldOffset=0x0)" P-INDEP
 ;  V85 tmp72        [V85,T26] (  4,  5.50)     int  ->  rbx         "field V45._length (fldOffset=0x8)" P-INDEP
 ;  V86 tmp73        [V86,T00] (  9, 29   )   byref  ->  r15         "field V48._reference (fldOffset=0x0)" P-INDEP
-;  V87 tmp74        [V87,T02] (  8, 25   )     int  ->  r12         "field V48._length (fldOffset=0x8)" P-INDEP
+;  V87 tmp74        [V87,T01] (  9, 29   )     int  ->  r12         "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V88 tmp75        [V88    ] (  0,  0   )   byref  ->  zero-ref    "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V89 tmp76        [V89    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
 ;* V90 tmp77        [V90    ] (  0,  0   )   byref  ->  zero-ref    "field V50._reference (fldOffset=0x0)" P-INDEP
 ;* V91 tmp78        [V91    ] (  0,  0   )     int  ->  zero-ref    "field V50._length (fldOffset=0x8)" P-INDEP
 ;  V92 tmp79        [V92,T20] (  2,  8   )   byref  ->  r15         "field V55._reference (fldOffset=0x0)" P-INDEP
 ;* V93 tmp80        [V93,T35] (  0,  0   )     int  ->  zero-ref    "field V55._length (fldOffset=0x8)" P-INDEP
 ;  V94 tmp81        [V94,T21] (  2,  8   )   byref  ->  rdx         "field V58._reference (fldOffset=0x0)" P-INDEP
 ;  V95 tmp82        [V95,T22] (  2,  8   )     int  ->  r12         "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V96 tmp83        [V96    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
 ;* V97 tmp84        [V97    ] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
-;  V98 tmp85        [V98,T04] (  3, 24   )     int  ->  rdx         "index expr"
+;  V98 tmp85        [V98,T05] (  3, 24   )     int  ->  rdx         "index expr"
 ;  V99 tmp86        [V99,T39] (  3,  3   )     int  ->  rdx         "index expr"
 ;  V100 GsCookie    [V100    ] (  1,  1   )    long  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V101 cse0        [V101,T17] (  3, 12   )    long  ->  [rbp-0x30]  spill-single-def "CSE #11: moderate"
 ;  V102 cse1        [V102,T15] (  8, 14.50)     int  ->  rdi         multi-def "CSE #01: moderate"
-;  V103 cse2        [V103,T10] (  4, 16   )     int  ->  [rbp-0x34]  spill-single-def "CSE #09: moderate"
+;  V103 cse2        [V103,T11] (  4, 16   )     int  ->  [rbp-0x34]  spill-single-def "CSE #09: moderate"
 ;  V104 cse3        [V104,T23] (  5,  7   )     int  ->  rsi         "CSE #02: moderate"
-;  V105 rat0        [V105,T06] (  9, 21.75)    long  ->   r8         "Widened IV V17"
-;  V106 rat1        [V106,T01] (  9, 26.50)    long  ->  rax         "Widened IV V28"
-;  V107 rat2        [V107,T07] (  7, 21   )    long  ->  [rbp-0x40]  "Widened IV V46"
+;  V105 rat0        [V105,T07] (  9, 21.75)    long  ->   r8         "Widened IV V17"
+;  V106 rat1        [V106,T02] (  9, 26.50)    long  ->  rax         "Widened IV V28"
+;  V107 rat2        [V107,T08] (  7, 21   )    long  ->  [rbp-0x40]  "Widened IV V46"
 ;
 ; Lcl frame size = 40
 
 G_M18223_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 40
        lea      rbp, [rsp+0x50]
        mov      qword ptr [rbp-0x48], 0xD1FFAB1E
        mov      r15, rdx
        mov      rbx, r8
 						;; size=33 bbWeight=1 PerfScore 8.25
 G_M18223_IG02:
        mov      r14, gword ptr [rdi+0x10]
        mov      rdx, gword ptr [rdi+0x08]
        movzx    rsi, sil
        test     esi, esi
        je       SHORT G_M18223_IG09
 						;; size=16 bbWeight=1 PerfScore 5.50
 G_M18223_IG03:
        mov      edi, dword ptr [rdx+0x08]
        lea      eax, [rdi-0x01]
        mov      r8d, eax
        cmp      edi, r8d
        jbe      SHORT G_M18223_IG07
        align    [1 bytes for IG04]
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M18223_IG04:
        cmp      r8d, edi
        jae      G_M18223_IG35
        movzx    rax, byte  ptr [rdx+r8+0x10]
        cmp      eax, esi
        jle      SHORT G_M18223_IG06
        dec      r8d
        cmp      edi, r8d
        ja       SHORT G_M18223_IG04
 						;; size=27 bbWeight=4 PerfScore 24.00
 G_M18223_IG05:
        mov      eax, r8d
        jmp      SHORT G_M18223_IG07
        align    [0 bytes for IG13]
 						;; size=5 bbWeight=0.25 PerfScore 0.56
 G_M18223_IG06:
        mov      eax, r8d
        mov      r8d, eax
        movzx    r8, byte  ptr [rdx+r8+0x10]
        cmp      r8d, esi
        je       SHORT G_M18223_IG08
 						;; size=17 bbWeight=0.50 PerfScore 1.88
 G_M18223_IG07:
        xor      r13, r13
        jmp      SHORT G_M18223_IG11
 						;; size=5 bbWeight=0.50 PerfScore 1.12
 G_M18223_IG08:
        cmp      eax, dword ptr [r14+0x08]
        jae      G_M18223_IG35
        mov      r8d, eax
        mov      r13, gword ptr [r14+8*r8+0x10]
        jmp      SHORT G_M18223_IG11
 						;; size=20 bbWeight=0.50 PerfScore 4.12
 G_M18223_IG09:
        xor      eax, eax
        mov      edi, dword ptr [rdx+0x08]
        test     edi, edi
        je       SHORT G_M18223_IG10
        cmp      byte  ptr [rdx+0x10], 0
        jne      SHORT G_M18223_IG10
        cmp      dword ptr [r14+0x08], 0
        jbe      G_M18223_IG35
        mov      r13, gword ptr [r14+0x10]
        jmp      SHORT G_M18223_IG11
 						;; size=32 bbWeight=0.50 PerfScore 7.75
 G_M18223_IG10:
        mov      r13, 0xD1FFAB1E      ; '0'
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M18223_IG11:
        test     r13, r13
        jne      G_M18223_IG23
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M18223_IG12:
        test     dword ptr [rsp], esp
        sub      rsp, 256
        lea      r13, [rsp]
        xor      r8d, r8d
        xor      r10d, r10d
        mov      eax, eax
        jmp      SHORT G_M18223_IG14
 						;; size=24 bbWeight=0.50 PerfScore 3.25
 G_M18223_IG13:
        dec      eax
 						;; size=2 bbWeight=4 PerfScore 1.00
 G_M18223_IG14:
        cmp      edi, eax
        jbe      SHORT G_M18223_IG15
        movzx    r11, byte  ptr [rdx+rax+0x10]
        mov      r12d, eax
        or       r12d, r11d
        jne      SHORT G_M18223_IG16
 						;; size=18 bbWeight=4 PerfScore 19.00
 G_M18223_IG15:
        test     esi, esi
        jne      G_M18223_IG25
        cmp      r10d, 64
        jbe      SHORT G_M18223_IG18
        jmp      G_M18223_IG33
 						;; size=19 bbWeight=0.50 PerfScore 2.25
 G_M18223_IG16:
        mov      r12d, esi
        and      r12d, r11d
        movzx    r12, r12b
        cmp      r12d, r11d
        jne      SHORT G_M18223_IG13
 						;; size=15 bbWeight=4 PerfScore 8.00
 G_M18223_IG17:
        andn     esi, r11d, esi
        movzx    rsi, sil
        cmp      r10d, 64
        jae      G_M18223_IG35
        mov      r11d, r10d
        mov      dword ptr [r13+4*r11], eax
        inc      r10d
        cmp      eax, dword ptr [r14+0x08]
        jae      G_M18223_IG35
        mov      r11, gword ptr [r14+8*rax+0x10]
        add      r8d, dword ptr [r11+0x08]
        jo       G_M18223_IG34
        test     esi, esi
        je       SHORT G_M18223_IG15
        jmp      SHORT G_M18223_IG13
 						;; size=61 bbWeight=2 PerfScore 33.50
 G_M18223_IG18:
        lea      edx, [r10+r10]
        add      edx, -2
        add      edx, r8d
        jo       G_M18223_IG34
        cmp      edx, ecx
        jg       G_M18223_IG24
        mov      dword ptr [rbx], edx
        mov      ebx, r10d
        mov      r12d, ecx
        lea      edx, [rbx-0x01]
        mov      eax, edx
        test     eax, eax
        je       G_M18223_IG20
 						;; size=45 bbWeight=0.50 PerfScore 3.38
 G_M18223_IG19:
        cmp      eax, ebx
        jae      G_M18223_IG35
        mov      qword ptr [rbp-0x40], rax
        mov      edx, dword ptr [r13+4*rax]
        cmp      edx, dword ptr [r14+0x08]
        jae      G_M18223_IG35
        mov      rsi, gword ptr [r14+8*rdx+0x10]
        mov      ecx, dword ptr [rsi+0x08]
        mov      dword ptr [rbp-0x34], ecx
        cmp      ecx, r12d
-       ja       G_M18223_IG32
+       jg       G_M18223_IG32
        mov      r8d, ecx
        add      r8, r8
        mov      qword ptr [rbp-0x30], r8
        mov      rdx, r8
        add      rsi, 12
        mov      rdi, r15
        mov      r9, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      edx, dword ptr [rbp-0x34]
+       cmp      edx, r12d
+       ja       G_M18223_IG33
        mov      rsi, qword ptr [rbp-0x30]
        add      r15, rsi
        sub      r12d, edx
        cmp      r12d, 2
        jb       G_M18223_IG33
        lea      rdx, bword ptr [r15+0x04]
        add      r12d, -2
        mov      word  ptr [r15], 44
        mov      word  ptr [r15+0x02], 32
        mov      r15, rdx
        mov      rdx, qword ptr [rbp-0x40]
        dec      edx
        mov      rax, rdx
        jne      G_M18223_IG19
-						;; size=142 bbWeight=4 PerfScore 117.00
+						;; size=151 bbWeight=4 PerfScore 122.00
 G_M18223_IG20:
        test     ebx, ebx
        je       G_M18223_IG35
        mov      edx, dword ptr [r13]
        cmp      edx, dword ptr [r14+0x08]
        jae      G_M18223_IG35
        mov      rsi, gword ptr [r14+8*rdx+0x10]
        cmp      dword ptr [rsi+0x08], r12d
-       ja       G_M18223_IG32
+       jg       G_M18223_IG32
        mov      edx, dword ptr [rsi+0x08]
        add      rdx, rdx
        add      rsi, 12
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      eax, 1
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M18223_IG21
        call     CORINFO_HELP_FAIL_FAST
 						;; size=82 bbWeight=0.50 PerfScore 11.75
 G_M18223_IG21:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M18223_IG22:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M18223_IG23:
        cmp      dword ptr [r13+0x08], ecx
-       jbe      SHORT G_M18223_IG29
+       jle      SHORT G_M18223_IG29
 						;; size=6 bbWeight=0.50 PerfScore 2.00
 G_M18223_IG24:
        mov      byte  ptr [r9], 1
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M18223_IG25:
        xor      eax, eax
        mov      dword ptr [rbx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M18223_IG26:
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M18223_IG27
        call     CORINFO_HELP_FAIL_FAST
 						;; size=15 bbWeight=0.50 PerfScore 2.00
 G_M18223_IG27:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M18223_IG28:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M18223_IG29:
        lea      rsi, bword ptr [r13+0x0C]
        mov      edx, dword ptr [r13+0x08]
        add      rdx, rdx
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        mov      eax, dword ptr [r13+0x08]
        mov      dword ptr [rbx], eax
        mov      eax, 1
        cmp      qword ptr [rbp-0x48], 0xD1FFAB1E
        je       SHORT G_M18223_IG30
        call     CORINFO_HELP_FAIL_FAST
 						;; size=52 bbWeight=0.50 PerfScore 6.75
 G_M18223_IG30:
        nop      
 						;; size=1 bbWeight=0.50 PerfScore 0.12
 G_M18223_IG31:
        lea      rsp, [rbp-0x28]
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.25
 G_M18223_IG32:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M18223_IG33:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M18223_IG34:
        call     CORINFO_HELP_OVERFLOW
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M18223_IG35:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 764, prolog size 33, PerfScore 274.81, instruction count 219, allocated bytes for code 764 (MethodHash=6119b8d0) for method System.Enum:TryFormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
+; Total bytes of code 773, prolog size 33, PerfScore 279.81, instruction count 221, allocated bytes for code 773 (MethodHash=6119b8d0) for method System.Enum:TryFormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte,System.Span`1[ushort],byref,byref):ubyte (FullOpts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment