Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created July 23, 2024 17:52
Show Gist options
  • Save MihuBot/f9b1b681dcc09e29aa478c68514b0d3e to your computer and use it in GitHub Desktop.
Save MihuBot/f9b1b681dcc09e29aa478c68514b0d3e to your computer and use it in GitHub Desktop.

Top method improvements

-61 (-2.42 % of base) - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref)
 ; Assembly listing for method System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (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; 130 single block inlinees; 56 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;  V01 arg1         [V01,T138] (  3,  3   )  struct ( 8) rdx         single-def <System.Text.Json.JsonReaderOptions>
 ;  V02 arg2         [V02,T00] ( 65,127   )   byref  ->  rbx         single-def
 ;  V03 arg3         [V03,T01] ( 20, 38   )   byref  ->  r15         single-def
 ;  V04 loc0         [V04,T48] (  5, 11   )   ubyte  ->  r14        
 ;  V05 loc1         [V05,T05] ( 12, 23   )     int  ->  r13        
 ;  V06 loc2         [V06,T03] ( 16, 31   )     int  ->  r12        
 ;  V07 loc3         [V07,T04] ( 16, 31   )     int  ->  [rbp-0x2C] 
 ;  V08 loc4         [V08    ] ( 12, 30   )  struct (192) [rbp-0xF0]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.Json.Utf8JsonReader>
 ;  V09 loc5         [V09,T02] ( 14, 32   )   ubyte  ->  [rbp-0xF4]  spill-single-def
 ;  V10 loc6         [V10,T47] (  8, 18   )     int  ->  [rbp-0xF8]  spill-single-def
 ;* V11 loc7         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Text.Json.JsonDocument+StackRow>
-;  V12 loc8         [V12,T119] (  3,  6   )     int  ->  [rbp-0xFC]  spill-single-def
+;  V12 loc8         [V12,T112] (  3,  6   )     int  ->  [rbp-0xFC]  spill-single-def
 ;  V13 loc9         [V13,T160] (  2,  4   )     int  ->  [rbp-0x100]  spill-single-def
 ;* V14 loc10        [V14    ] (  0,  0   )  struct ( 8) zero-ref    <System.Text.Json.JsonDocument+StackRow>
 ;* V15 loc11        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;* V16 loc12        [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Text.Json.JsonDocument+StackRow>
 ;  V17 loc13        [V17,T66] (  4,  8   )     int  ->  rax        
 ;  V18 loc14        [V18,T161] (  2,  4   )     int  ->  r13        
 ;* V19 loc15        [V19    ] (  0,  0   )  struct ( 8) zero-ref    <System.Text.Json.JsonDocument+StackRow>
 ;  V20 OutArgs      [V20    ] (  1,  1   )  struct (56) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V21 tmp1         [V21,T120] (  3,  6   )  struct (56) [rbp-0x138]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonReaderState>
+;  V21 tmp1         [V21,T113] (  3,  6   )  struct (56) [rbp-0x138]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonReaderState>
 ;* V22 tmp2         [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
 ;  V23 tmp3         [V23,T06] (  5, 20   )     ref  ->  rcx         class-hnd "impAppendStmt" <ubyte[]>
 ;* V24 tmp4         [V24    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V25 tmp5         [V25    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V26 tmp6         [V26,T26] (  5, 20   )     int  ->  rdx         "Inlining Arg"
 ;* V27 tmp7         [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V28 tmp8         [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V29 tmp9         [V29,T74] (  2,  8   )   byref  ->  rsi         "Inlining Arg"
-;  V30 tmp10        [V30,T94] (  2,  8   )     int  ->  rcx         "Inlining Arg"
+;  V29 tmp9         [V29,T67] (  2,  8   )   byref  ->  rsi         "Inlining Arg"
+;  V30 tmp10        [V30,T87] (  2,  8   )     int  ->  rcx         "Inlining Arg"
 ;* V31 tmp11        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V32 tmp12        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V33 tmp13        [V33    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp14        [V34    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp15        [V35    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Text.Json.JsonDocument+StackRow>
 ;* V36 tmp16        [V36    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V37 tmp17        [V37    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V38 tmp18        [V38,T07] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V39 tmp19        [V39,T27] (  5, 20   )     int  ->  rax         "Inlining Arg"
 ;* V40 tmp20        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V41 tmp21        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V42 tmp22        [V42,T75] (  2,  8   )   byref  ->  rcx         "Inlining Arg"
-;  V43 tmp23        [V43,T95] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V42 tmp22        [V42,T68] (  2,  8   )   byref  ->  rcx         "Inlining Arg"
+;  V43 tmp23        [V43,T88] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V44 tmp24        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V45 tmp25        [V45    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V46 tmp26        [V46    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V47 tmp27        [V47    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V48 tmp28        [V48    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V49 tmp29        [V49,T08] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V50 tmp30        [V50,T28] (  5, 20   )     int  ->  rcx         "Inlining Arg"
 ;* V51 tmp31        [V51    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V52 tmp32        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V53 tmp33        [V53,T76] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
-;  V54 tmp34        [V54,T96] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V53 tmp33        [V53,T69] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
+;  V54 tmp34        [V54,T89] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V55 tmp35        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V56 tmp36        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V57 tmp37        [V57    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
 ;* V58 tmp38        [V58    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V59 tmp39        [V59,T09] (  5, 20   )     ref  ->   r8         class-hnd "impAppendStmt" <ubyte[]>
 ;* V60 tmp40        [V60    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V61 tmp41        [V61    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V62 tmp42        [V62,T29] (  5, 20   )     int  ->   r9         "Inlining Arg"
 ;* V63 tmp43        [V63    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V64 tmp44        [V64    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V65 tmp45        [V65,T77] (  2,  8   )   byref  ->  r10         "Inlining Arg"
-;  V66 tmp46        [V66,T97] (  2,  8   )     int  ->   r8         "Inlining Arg"
+;  V65 tmp45        [V65,T70] (  2,  8   )   byref  ->  r10         "Inlining Arg"
+;  V66 tmp46        [V66,T90] (  2,  8   )     int  ->   r8         "Inlining Arg"
 ;* V67 tmp47        [V67    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V68 tmp48        [V68    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V69 tmp49        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V70 tmp50        [V70    ] (  0,  0   )  struct (16) zero-ref    "dup spill" <System.Span`1[ubyte]>
 ;* V71 tmp51        [V71    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V72 tmp52        [V72,T162] (  2,  4   )     int  ->  rax         ld-addr-op "Inline stloc first use temp"
+;  V72 tmp52        [V72,T162] (  2,  4   )     int  ->  rdi         ld-addr-op "Inline stloc first use temp"
 ;* V73 tmp53        [V73    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V74 tmp54        [V74,T10] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V75 tmp55        [V75,T30] (  5, 20   )     int  ->  rax         "Inlining Arg"
 ;* V76 tmp56        [V76    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V77 tmp57        [V77    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V78 tmp58        [V78,T78] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
-;  V79 tmp59        [V79,T98] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V78 tmp58        [V78,T71] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
+;  V79 tmp59        [V79,T91] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V80 tmp60        [V80    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V81 tmp61        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V82 tmp62        [V82    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V83 tmp63        [V83    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V84 tmp64        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V85 tmp65        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V86 tmp66        [V86    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V87 tmp67        [V87    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V88 tmp68        [V88    ] (  0,  0   )  struct (16) zero-ref    "dup spill" <System.Span`1[ubyte]>
 ;* V89 tmp69        [V89    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V90 tmp70        [V90,T163] (  2,  4   )     int  ->  rcx         ld-addr-op "Inline stloc first use temp"
+;  V90 tmp70        [V90,T163] (  2,  4   )     int  ->  rdi         ld-addr-op "Inline stloc first use temp"
 ;* V91 tmp71        [V91    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V92 tmp72        [V92,T11] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V93 tmp73        [V93,T31] (  5, 20   )     int  ->  rcx         "Inlining Arg"
 ;* V94 tmp74        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V95 tmp75        [V95    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V96 tmp76        [V96,T79] (  2,  8   )   byref  ->  rax         "Inlining Arg"
-;  V97 tmp77        [V97,T99] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V96 tmp76        [V96,T72] (  2,  8   )   byref  ->  rax         "Inlining Arg"
+;  V97 tmp77        [V97,T92] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V98 tmp78        [V98    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V99 tmp79        [V99    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V100 tmp80       [V100    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V101 tmp81       [V101    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V102 tmp82       [V102    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V103 tmp83       [V103    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V104 tmp84       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V105 tmp85       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V106 tmp86       [V106    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V107 tmp87       [V107    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V108 tmp88       [V108    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Text.Json.JsonDocument+StackRow>
 ;* V109 tmp89       [V109    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V110 tmp90       [V110,T12] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V111 tmp91       [V111,T32] (  5, 20   )     int  ->  rcx         "Inlining Arg"
 ;* V112 tmp92       [V112    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V113 tmp93       [V113    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V114 tmp94       [V114,T80] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
-;  V115 tmp95       [V115,T100] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V114 tmp94       [V114,T73] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
+;  V115 tmp95       [V115,T93] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V116 tmp96       [V116    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V117 tmp97       [V117    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V118 tmp98       [V118    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V119 tmp99       [V119    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V120 tmp100      [V120    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V121 tmp101      [V121    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V122 tmp102      [V122    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
 ;  V123 tmp103      [V123,T13] (  5, 20   )     ref  ->  rcx         class-hnd "impAppendStmt" <ubyte[]>
 ;* V124 tmp104      [V124    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V125 tmp105      [V125    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V126 tmp106      [V126,T33] (  5, 20   )     int  ->  rdx         "Inlining Arg"
 ;* V127 tmp107      [V127    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V128 tmp108      [V128    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V129 tmp109      [V129,T81] (  2,  8   )   byref  ->  rsi         "Inlining Arg"
-;  V130 tmp110      [V130,T101] (  2,  8   )     int  ->  rcx         "Inlining Arg"
+;  V129 tmp109      [V129,T74] (  2,  8   )   byref  ->  rsi         "Inlining Arg"
+;  V130 tmp110      [V130,T94] (  2,  8   )     int  ->  rcx         "Inlining Arg"
 ;* V131 tmp111      [V131    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V132 tmp112      [V132    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V133 tmp113      [V133    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V134 tmp114      [V134    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V135 tmp115      [V135    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Text.Json.JsonDocument+StackRow>
 ;* V136 tmp116      [V136    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V137 tmp117      [V137    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V138 tmp118      [V138,T14] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V139 tmp119      [V139,T34] (  5, 20   )     int  ->  rsi         "Inlining Arg"
 ;* V140 tmp120      [V140    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V141 tmp121      [V141    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V142 tmp122      [V142,T82] (  2,  8   )   byref  ->  rax         "Inlining Arg"
-;  V143 tmp123      [V143,T102] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V142 tmp122      [V142,T75] (  2,  8   )   byref  ->  rax         "Inlining Arg"
+;  V143 tmp123      [V143,T95] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V144 tmp124      [V144    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V145 tmp125      [V145    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V146 tmp126      [V146    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V147 tmp127      [V147    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V148 tmp128      [V148    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V149 tmp129      [V149,T15] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V150 tmp130      [V150,T35] (  5, 20   )     int  ->  rcx         "Inlining Arg"
 ;* V151 tmp131      [V151    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V152 tmp132      [V152    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V153 tmp133      [V153,T83] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
-;  V154 tmp134      [V154,T103] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V153 tmp133      [V153,T76] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
+;  V154 tmp134      [V154,T96] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V155 tmp135      [V155    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V156 tmp136      [V156    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V157 tmp137      [V157    ] (  0,  0   )  struct (16) zero-ref    "dup spill" <System.Span`1[ubyte]>
 ;* V158 tmp138      [V158    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V159 tmp139      [V159,T164] (  2,  4   )     int  ->  rcx         ld-addr-op "Inline stloc first use temp"
+;  V159 tmp139      [V159,T164] (  2,  4   )     int  ->  rdi         ld-addr-op "Inline stloc first use temp"
 ;* V160 tmp140      [V160    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V161 tmp141      [V161,T16] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V162 tmp142      [V162,T36] (  5, 20   )     int  ->  rcx         "Inlining Arg"
 ;* V163 tmp143      [V163    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V164 tmp144      [V164    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V165 tmp145      [V165,T84] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
-;  V166 tmp146      [V166,T104] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V165 tmp145      [V165,T77] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
+;  V166 tmp146      [V166,T97] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V167 tmp147      [V167    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V168 tmp148      [V168    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V169 tmp149      [V169    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V170 tmp150      [V170    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V171 tmp151      [V171    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V172 tmp152      [V172    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V173 tmp153      [V173    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V174 tmp154      [V174    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V175 tmp155      [V175    ] (  0,  0   )  struct (16) zero-ref    "dup spill" <System.Span`1[ubyte]>
 ;* V176 tmp156      [V176    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V177 tmp157      [V177,T165] (  2,  4   )     int  ->  rax         ld-addr-op "Inline stloc first use temp"
+;  V177 tmp157      [V177,T165] (  2,  4   )     int  ->  rdi         ld-addr-op "Inline stloc first use temp"
 ;* V178 tmp158      [V178    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V179 tmp159      [V179,T17] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V180 tmp160      [V180,T37] (  5, 20   )     int  ->  rax         "Inlining Arg"
 ;* V181 tmp161      [V181    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V182 tmp162      [V182    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V183 tmp163      [V183,T85] (  2,  8   )   byref  ->  rcx         "Inlining Arg"
-;  V184 tmp164      [V184,T105] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V183 tmp163      [V183,T78] (  2,  8   )   byref  ->  rcx         "Inlining Arg"
+;  V184 tmp164      [V184,T98] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V185 tmp165      [V185    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V186 tmp166      [V186    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V187 tmp167      [V187    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V188 tmp168      [V188    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V189 tmp169      [V189    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V190 tmp170      [V190    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V191 tmp171      [V191    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V192 tmp172      [V192    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V193 tmp173      [V193    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
 ;* V194 tmp174      [V194    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V195 tmp175      [V195,T18] (  5, 20   )     ref  ->  rdx         class-hnd "impAppendStmt" <ubyte[]>
 ;* V196 tmp176      [V196    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V197 tmp177      [V197    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V198 tmp178      [V198,T38] (  5, 20   )     int  ->  rsi         "Inlining Arg"
 ;* V199 tmp179      [V199    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V200 tmp180      [V200    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V201 tmp181      [V201,T86] (  2,  8   )   byref  ->   r8         "Inlining Arg"
-;  V202 tmp182      [V202,T106] (  2,  8   )     int  ->  rdx         "Inlining Arg"
+;  V201 tmp181      [V201,T79] (  2,  8   )   byref  ->   r8         "Inlining Arg"
+;  V202 tmp182      [V202,T99] (  2,  8   )     int  ->  rdx         "Inlining Arg"
 ;* V203 tmp183      [V203    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V204 tmp184      [V204    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V205 tmp185      [V205    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V206 tmp186      [V206    ] (  0,  0   )  struct (16) zero-ref    "dup spill" <System.Span`1[ubyte]>
 ;* V207 tmp187      [V207    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V208 tmp188      [V208,T166] (  2,  4   )     int  ->  rcx         ld-addr-op "Inline stloc first use temp"
+;  V208 tmp188      [V208,T166] (  2,  4   )     int  ->  rdi         ld-addr-op "Inline stloc first use temp"
 ;* V209 tmp189      [V209    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V210 tmp190      [V210,T19] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V211 tmp191      [V211,T39] (  5, 20   )     int  ->  r13         "Inlining Arg"
 ;* V212 tmp192      [V212    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V213 tmp193      [V213    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V214 tmp194      [V214,T87] (  2,  8   )   byref  ->  rax         "Inlining Arg"
-;  V215 tmp195      [V215,T107] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V214 tmp194      [V214,T80] (  2,  8   )   byref  ->  rax         "Inlining Arg"
+;  V215 tmp195      [V215,T100] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V216 tmp196      [V216    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V217 tmp197      [V217    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V218 tmp198      [V218    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V219 tmp199      [V219    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V220 tmp200      [V220    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V221 tmp201      [V221    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V222 tmp202      [V222    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V223 tmp203      [V223    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V224 tmp204      [V224    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V225 tmp205      [V225    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V226 tmp206      [V226    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Text.Json.JsonDocument+StackRow>
 ;* V227 tmp207      [V227    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V228 tmp208      [V228,T20] (  5, 20   )     ref  ->  rdi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V229 tmp209      [V229,T40] (  5, 20   )     int  ->  rcx         "Inlining Arg"
 ;* V230 tmp210      [V230    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V231 tmp211      [V231    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V232 tmp212      [V232,T88] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
-;  V233 tmp213      [V233,T108] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V232 tmp212      [V232,T81] (  2,  8   )   byref  ->  rdx         "Inlining Arg"
+;  V233 tmp213      [V233,T101] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V234 tmp214      [V234    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V235 tmp215      [V235    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V236 tmp216      [V236    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V237 tmp217      [V237    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V238 tmp218      [V238    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V239 tmp219      [V239    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V240 tmp220      [V240    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
 ;* V241 tmp221      [V241    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V242 tmp222      [V242    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V243 tmp223      [V243,T21] (  5, 20   )     ref  ->  rcx         class-hnd "impAppendStmt" <ubyte[]>
 ;* V244 tmp224      [V244    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V245 tmp225      [V245    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V246 tmp226      [V246    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V247 tmp227      [V247,T41] (  5, 20   )     int  ->  rdx         "Inlining Arg"
 ;* V248 tmp228      [V248    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V249 tmp229      [V249    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V250 tmp230      [V250,T89] (  2,  8   )   byref  ->   r8         "Inlining Arg"
-;  V251 tmp231      [V251,T109] (  2,  8   )     int  ->  rcx         "Inlining Arg"
+;  V250 tmp230      [V250,T82] (  2,  8   )   byref  ->   r8         "Inlining Arg"
+;  V251 tmp231      [V251,T102] (  2,  8   )     int  ->  rcx         "Inlining Arg"
 ;* V252 tmp232      [V252    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V253 tmp233      [V253    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V254 tmp234      [V254    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V255 tmp235      [V255,T110] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V255 tmp235      [V255,T103] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V256 tmp236      [V256    ] (  0,  0   )  struct (16) zero-ref    "dup spill" <System.Span`1[ubyte]>
 ;* V257 tmp237      [V257    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;  V258 tmp238      [V258,T167] (  2,  4   )     int  ->  rdi         ld-addr-op "Inline stloc first use temp"
 ;* V259 tmp239      [V259    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V260 tmp240      [V260,T22] (  5, 20   )     ref  ->  rsi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V261 tmp241      [V261,T42] (  5, 20   )     int  ->  rdi         "Inlining Arg"
 ;* V262 tmp242      [V262    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V263 tmp243      [V263    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V264 tmp244      [V264,T90] (  2,  8   )   byref  ->  rax         "Inlining Arg"
-;  V265 tmp245      [V265,T111] (  2,  8   )     int  ->  rsi         "Inlining Arg"
+;  V264 tmp244      [V264,T83] (  2,  8   )   byref  ->  rax         "Inlining Arg"
+;  V265 tmp245      [V265,T104] (  2,  8   )     int  ->  rsi         "Inlining Arg"
 ;* V266 tmp246      [V266    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V267 tmp247      [V267    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V268 tmp248      [V268    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V269 tmp249      [V269    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V270 tmp250      [V270    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V271 tmp251      [V271    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V272 tmp252      [V272    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V273 tmp253      [V273    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V274 tmp254      [V274    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
 ;* V275 tmp255      [V275    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V276 tmp256      [V276    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V277 tmp257      [V277,T23] (  5, 20   )     ref  ->  rdx         class-hnd "impAppendStmt" <ubyte[]>
 ;* V278 tmp258      [V278    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V279 tmp259      [V279    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V280 tmp260      [V280    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V281 tmp261      [V281,T43] (  5, 20   )     int  ->  rsi         "Inlining Arg"
 ;* V282 tmp262      [V282    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V283 tmp263      [V283    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V284 tmp264      [V284,T91] (  2,  8   )   byref  ->   r8         "Inlining Arg"
-;  V285 tmp265      [V285,T112] (  2,  8   )     int  ->  rdx         "Inlining Arg"
+;  V284 tmp264      [V284,T84] (  2,  8   )   byref  ->   r8         "Inlining Arg"
+;  V285 tmp265      [V285,T105] (  2,  8   )     int  ->  rdx         "Inlining Arg"
 ;* V286 tmp266      [V286    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V287 tmp267      [V287    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V288 tmp268      [V288    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V289 tmp269      [V289,T113] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V289 tmp269      [V289,T106] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V290 tmp270      [V290    ] (  0,  0   )  struct (16) zero-ref    "dup spill" <System.Span`1[ubyte]>
 ;* V291 tmp271      [V291    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;  V292 tmp272      [V292,T168] (  2,  4   )     int  ->  rdi         ld-addr-op "Inline stloc first use temp"
 ;* V293 tmp273      [V293    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V294 tmp274      [V294,T24] (  5, 20   )     ref  ->  rax         class-hnd "Inlining Arg" <ubyte[]>
 ;  V295 tmp275      [V295,T44] (  5, 20   )     int  ->  rdi         "Inlining Arg"
 ;* V296 tmp276      [V296    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V297 tmp277      [V297    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V298 tmp278      [V298,T92] (  2,  8   )   byref  ->  rcx         "Inlining Arg"
-;  V299 tmp279      [V299,T114] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V298 tmp278      [V298,T85] (  2,  8   )   byref  ->  rcx         "Inlining Arg"
+;  V299 tmp279      [V299,T107] (  2,  8   )     int  ->  rax         "Inlining Arg"
 ;* V300 tmp280      [V300    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V301 tmp281      [V301    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V302 tmp282      [V302    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V303 tmp283      [V303    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V304 tmp284      [V304    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V305 tmp285      [V305    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V306 tmp286      [V306    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V307 tmp287      [V307    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V308 tmp288      [V308    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Text.Json.JsonDocument+DbRow>
 ;* V309 tmp289      [V309    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V310 tmp290      [V310,T25] (  5, 20   )     ref  ->  rdi         class-hnd "impAppendStmt" <ubyte[]>
 ;* V311 tmp291      [V311    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V312 tmp292      [V312    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V313 tmp293      [V313,T45] (  5, 20   )     int  ->  rdx         "Inlining Arg"
 ;* V314 tmp294      [V314    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V315 tmp295      [V315    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V316 tmp296      [V316,T93] (  2,  8   )   byref  ->  rsi         "Inlining Arg"
-;  V317 tmp297      [V317,T115] (  2,  8   )     int  ->  rdi         "Inlining Arg"
+;  V316 tmp296      [V316,T86] (  2,  8   )   byref  ->  rsi         "Inlining Arg"
+;  V317 tmp297      [V317,T108] (  2,  8   )     int  ->  rdi         "Inlining Arg"
 ;* V318 tmp298      [V318    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V319 tmp299      [V319    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V320 tmp300      [V320    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V321 tmp301      [V321,T139] (  2,  2   )   byref  ->  rax         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
 ;  V322 tmp302      [V322,T169] (  2,  2   )     int  ->   r8         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;  V323 tmp303      [V323,T170] (  2,  4   )     int  ->  r12         "field V11.SizeOrLength (fldOffset=0x0)" P-INDEP
 ;* V324 tmp304      [V324,T215] (  0,  0   )     int  ->  zero-ref    "field V11.NumberOfRows (fldOffset=0x4)" P-INDEP
 ;* V325 tmp305      [V325    ] (  0,  0   )     int  ->  zero-ref    "field V14.SizeOrLength (fldOffset=0x0)" P-INDEP
 ;* V326 tmp306      [V326    ] (  0,  0   )     int  ->  zero-ref    "field V14.NumberOfRows (fldOffset=0x4)" P-INDEP
 ;* V327 tmp307      [V327    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;  V328 tmp308      [V328,T46] (  9, 18   )     int  ->  [rbp-0x13C]  "field V15._length (fldOffset=0x8)" P-INDEP
 ;  V329 tmp309      [V329,T171] (  2,  4   )     int  ->  r13         "field V16.SizeOrLength (fldOffset=0x0)" P-INDEP
 ;  V330 tmp310      [V330,T172] (  2,  4   )     int  ->  r14         "field V16.NumberOfRows (fldOffset=0x4)" P-INDEP
 ;* V331 tmp311      [V331    ] (  0,  0   )     int  ->  zero-ref    "field V19.SizeOrLength (fldOffset=0x0)" P-INDEP
 ;* V332 tmp312      [V332    ] (  0,  0   )     int  ->  zero-ref    "field V19.NumberOfRows (fldOffset=0x4)" P-INDEP
 ;  V333 tmp313      [V333,T173] (  2,  4   )     int  ->  rdi         "field V22._location (fldOffset=0x0)" P-INDEP
 ;* V334 tmp314      [V334,T216] (  0,  0   )     int  ->  zero-ref    "field V22._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
 ;  V335 tmp315      [V335,T174] (  2,  4   )     int  ->  rax         "field V22._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
 ;* V336 tmp316      [V336    ] (  0,  0   )   byref  ->  zero-ref    "field V24._reference (fldOffset=0x0)" P-INDEP
 ;* V337 tmp317      [V337    ] (  0,  0   )     int  ->  zero-ref    "field V24._length (fldOffset=0x8)" P-INDEP
 ;  V338 tmp318      [V338,T49] (  5, 10   )   byref  ->  rsi         "field V25._reference (fldOffset=0x0)" P-INDEP
-;  V339 tmp319      [V339,T121] (  3,  6   )     int  ->  rcx         "field V25._length (fldOffset=0x8)" P-INDEP
+;  V339 tmp319      [V339,T114] (  3,  6   )     int  ->  rcx         "field V25._length (fldOffset=0x8)" P-INDEP
 ;  V340 tmp320      [V340,T140] (  2,  4   )   byref  ->  rsi         "field V27._reference (fldOffset=0x0)" P-INDEP
 ;  V341 tmp321      [V341,T175] (  2,  4   )     int  ->  rcx         "field V27._length (fldOffset=0x8)" P-INDEP
 ;* V342 tmp322      [V342    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V343 tmp323      [V343    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V344 tmp324      [V344    ] (  0,  0   )   byref  ->  zero-ref    "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V345 tmp325      [V345    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V346 tmp326      [V346    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V347 tmp327      [V347    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V348 tmp328      [V348    ] (  0,  0   )     int  ->  zero-ref    "field V35.SizeOrLength (fldOffset=0x0)" P-INDEP
 ;* V349 tmp329      [V349    ] (  0,  0   )     int  ->  zero-ref    "field V35.NumberOfRows (fldOffset=0x4)" P-INDEP
 ;* V350 tmp330      [V350    ] (  0,  0   )   byref  ->  zero-ref    "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V351 tmp331      [V351    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
 ;  V352 tmp332      [V352,T56] (  4,  8   )   byref  ->  rcx         "field V37._reference (fldOffset=0x0)" P-INDEP
-;  V353 tmp333      [V353,T122] (  3,  6   )     int  ->  rdi         "field V37._length (fldOffset=0x8)" P-INDEP
+;  V353 tmp333      [V353,T115] (  3,  6   )     int  ->  rdi         "field V37._length (fldOffset=0x8)" P-INDEP
 ;  V354 tmp334      [V354,T141] (  2,  4   )   byref  ->  rcx         "field V40._reference (fldOffset=0x0)" P-INDEP
 ;  V355 tmp335      [V355,T176] (  2,  4   )     int  ->  rdi         "field V40._length (fldOffset=0x8)" P-INDEP
 ;* V356 tmp336      [V356    ] (  0,  0   )   byref  ->  zero-ref    "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V357 tmp337      [V357    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;* V358 tmp338      [V358    ] (  0,  0   )   byref  ->  zero-ref    "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V359 tmp339      [V359    ] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0x8)" P-INDEP
 ;* V360 tmp340      [V360    ] (  0,  0   )   byref  ->  zero-ref    "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V361 tmp341      [V361    ] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-INDEP
 ;* V362 tmp342      [V362    ] (  0,  0   )   byref  ->  zero-ref    "field V47._reference (fldOffset=0x0)" P-INDEP
 ;* V363 tmp343      [V363    ] (  0,  0   )     int  ->  zero-ref    "field V47._length (fldOffset=0x8)" P-INDEP
-;  V364 tmp344      [V364,T116] (  3,  6   )   byref  ->  rdx         "field V48._reference (fldOffset=0x0)" P-INDEP
-;  V365 tmp345      [V365,T123] (  3,  6   )     int  ->  rdi         "field V48._length (fldOffset=0x8)" P-INDEP
+;  V364 tmp344      [V364,T109] (  3,  6   )   byref  ->  rdx         "field V48._reference (fldOffset=0x0)" P-INDEP
+;  V365 tmp345      [V365,T116] (  3,  6   )     int  ->  rdi         "field V48._length (fldOffset=0x8)" P-INDEP
 ;  V366 tmp346      [V366,T142] (  2,  4   )   byref  ->  rdx         "field V51._reference (fldOffset=0x0)" P-INDEP
 ;  V367 tmp347      [V367,T177] (  2,  4   )     int  ->  rdi         "field V51._length (fldOffset=0x8)" P-INDEP
 ;* V368 tmp348      [V368    ] (  0,  0   )   byref  ->  zero-ref    "field V52._reference (fldOffset=0x0)" P-INDEP
 ;* V369 tmp349      [V369    ] (  0,  0   )     int  ->  zero-ref    "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V370 tmp350      [V370    ] (  0,  0   )   byref  ->  zero-ref    "field V55._reference (fldOffset=0x0)" P-INDEP
 ;* V371 tmp351      [V371    ] (  0,  0   )     int  ->  zero-ref    "field V55._length (fldOffset=0x8)" P-INDEP
 ;* V372 tmp352      [V372    ] (  0,  0   )   byref  ->  zero-ref    "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V373 tmp353      [V373    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
 ;  V374 tmp354      [V374,T178] (  2,  4   )     int  ->  rdi         "field V57._location (fldOffset=0x0)" P-INDEP
 ;  V375 tmp355      [V375,T179] (  2,  4   )     int  ->  rdx         "field V57._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
 ;  V376 tmp356      [V376,T180] (  2,  4   )     int  ->  rsi         "field V57._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
 ;* V377 tmp357      [V377    ] (  0,  0   )   byref  ->  zero-ref    "field V60._reference (fldOffset=0x0)" P-INDEP
 ;* V378 tmp358      [V378    ] (  0,  0   )     int  ->  zero-ref    "field V60._length (fldOffset=0x8)" P-INDEP
 ;  V379 tmp359      [V379,T50] (  5, 10   )   byref  ->  r10         "field V61._reference (fldOffset=0x0)" P-INDEP
-;  V380 tmp360      [V380,T124] (  3,  6   )     int  ->   r8         "field V61._length (fldOffset=0x8)" P-INDEP
+;  V380 tmp360      [V380,T117] (  3,  6   )     int  ->   r8         "field V61._length (fldOffset=0x8)" P-INDEP
 ;  V381 tmp361      [V381,T143] (  2,  4   )   byref  ->  r10         "field V63._reference (fldOffset=0x0)" P-INDEP
 ;  V382 tmp362      [V382,T181] (  2,  4   )     int  ->   r8         "field V63._length (fldOffset=0x8)" P-INDEP
 ;* V383 tmp363      [V383    ] (  0,  0   )   byref  ->  zero-ref    "field V64._reference (fldOffset=0x0)" P-INDEP
 ;* V384 tmp364      [V384    ] (  0,  0   )     int  ->  zero-ref    "field V64._length (fldOffset=0x8)" P-INDEP
 ;* V385 tmp365      [V385    ] (  0,  0   )   byref  ->  zero-ref    "field V67._reference (fldOffset=0x0)" P-INDEP
 ;* V386 tmp366      [V386    ] (  0,  0   )     int  ->  zero-ref    "field V67._length (fldOffset=0x8)" P-INDEP
 ;* V387 tmp367      [V387    ] (  0,  0   )   byref  ->  zero-ref    "field V68._reference (fldOffset=0x0)" P-INDEP
 ;* V388 tmp368      [V388    ] (  0,  0   )     int  ->  zero-ref    "field V68._length (fldOffset=0x8)" P-INDEP
 ;* V389 tmp369      [V389    ] (  0,  0   )   byref  ->  zero-ref    "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V390 tmp370      [V390    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
 ;* V391 tmp371      [V391    ] (  0,  0   )   byref  ->  zero-ref    "field V71._reference (fldOffset=0x0)" P-INDEP
 ;* V392 tmp372      [V392    ] (  0,  0   )     int  ->  zero-ref    "field V71._length (fldOffset=0x8)" P-INDEP
 ;  V393 tmp373      [V393,T57] (  4,  8   )   byref  ->  rdx         "field V73._reference (fldOffset=0x0)" P-INDEP
-;  V394 tmp374      [V394,T67] (  4,  8   )     int  ->  rdi         "field V73._length (fldOffset=0x8)" P-INDEP
+;  V394 tmp374      [V394,T118] (  3,  6   )     int  ->  rdi         "field V73._length (fldOffset=0x8)" P-INDEP
 ;  V395 tmp375      [V395,T144] (  2,  4   )   byref  ->  rdx         "field V76._reference (fldOffset=0x0)" P-INDEP
 ;  V396 tmp376      [V396,T182] (  2,  4   )     int  ->  rdi         "field V76._length (fldOffset=0x8)" P-INDEP
 ;* V397 tmp377      [V397    ] (  0,  0   )   byref  ->  zero-ref    "field V77._reference (fldOffset=0x0)" P-INDEP
 ;* V398 tmp378      [V398    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x8)" P-INDEP
 ;* V399 tmp379      [V399    ] (  0,  0   )   byref  ->  zero-ref    "field V80._reference (fldOffset=0x0)" P-INDEP
 ;* V400 tmp380      [V400    ] (  0,  0   )     int  ->  zero-ref    "field V80._length (fldOffset=0x8)" P-INDEP
 ;* V401 tmp381      [V401    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V402 tmp382      [V402    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V403 tmp383      [V403    ] (  0,  0   )   byref  ->  zero-ref    "field V84._reference (fldOffset=0x0)" P-INDEP
 ;* V404 tmp384      [V404    ] (  0,  0   )     int  ->  zero-ref    "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V405 tmp385      [V405    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V406 tmp386      [V406    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
 ;* V407 tmp387      [V407    ] (  0,  0   )   byref  ->  zero-ref    "field V86._reference (fldOffset=0x0)" P-INDEP
 ;* V408 tmp388      [V408    ] (  0,  0   )     int  ->  zero-ref    "field V86._length (fldOffset=0x8)" P-INDEP
 ;* V409 tmp389      [V409    ] (  0,  0   )   byref  ->  zero-ref    "field V87._reference (fldOffset=0x0)" P-INDEP
 ;* V410 tmp390      [V410    ] (  0,  0   )     int  ->  zero-ref    "field V87._length (fldOffset=0x8)" P-INDEP
 ;* V411 tmp391      [V411    ] (  0,  0   )   byref  ->  zero-ref    "field V88._reference (fldOffset=0x0)" P-INDEP
 ;* V412 tmp392      [V412    ] (  0,  0   )     int  ->  zero-ref    "field V88._length (fldOffset=0x8)" P-INDEP
 ;* V413 tmp393      [V413    ] (  0,  0   )   byref  ->  zero-ref    "field V89._reference (fldOffset=0x0)" P-INDEP
 ;* V414 tmp394      [V414    ] (  0,  0   )     int  ->  zero-ref    "field V89._length (fldOffset=0x8)" P-INDEP
 ;  V415 tmp395      [V415,T58] (  4,  8   )   byref  ->  rax         "field V91._reference (fldOffset=0x0)" P-INDEP
-;  V416 tmp396      [V416,T68] (  4,  8   )     int  ->  rdi         "field V91._length (fldOffset=0x8)" P-INDEP
+;  V416 tmp396      [V416,T119] (  3,  6   )     int  ->  rdi         "field V91._length (fldOffset=0x8)" P-INDEP
 ;  V417 tmp397      [V417,T145] (  2,  4   )   byref  ->  rax         "field V94._reference (fldOffset=0x0)" P-INDEP
 ;  V418 tmp398      [V418,T183] (  2,  4   )     int  ->  rdi         "field V94._length (fldOffset=0x8)" P-INDEP
 ;* V419 tmp399      [V419    ] (  0,  0   )   byref  ->  zero-ref    "field V95._reference (fldOffset=0x0)" P-INDEP
 ;* V420 tmp400      [V420    ] (  0,  0   )     int  ->  zero-ref    "field V95._length (fldOffset=0x8)" P-INDEP
 ;* V421 tmp401      [V421    ] (  0,  0   )   byref  ->  zero-ref    "field V98._reference (fldOffset=0x0)" P-INDEP
 ;* V422 tmp402      [V422    ] (  0,  0   )     int  ->  zero-ref    "field V98._length (fldOffset=0x8)" P-INDEP
 ;* V423 tmp403      [V423    ] (  0,  0   )   byref  ->  zero-ref    "field V99._reference (fldOffset=0x0)" P-INDEP
 ;* V424 tmp404      [V424    ] (  0,  0   )     int  ->  zero-ref    "field V99._length (fldOffset=0x8)" P-INDEP
 ;* V425 tmp405      [V425    ] (  0,  0   )   byref  ->  zero-ref    "field V102._reference (fldOffset=0x0)" P-INDEP
 ;* V426 tmp406      [V426    ] (  0,  0   )     int  ->  zero-ref    "field V102._length (fldOffset=0x8)" P-INDEP
 ;* V427 tmp407      [V427    ] (  0,  0   )   byref  ->  zero-ref    "field V103._reference (fldOffset=0x0)" P-INDEP
 ;* V428 tmp408      [V428    ] (  0,  0   )     int  ->  zero-ref    "field V103._length (fldOffset=0x8)" P-INDEP
 ;* V429 tmp409      [V429    ] (  0,  0   )   byref  ->  zero-ref    "field V104._reference (fldOffset=0x0)" P-INDEP
 ;* V430 tmp410      [V430    ] (  0,  0   )     int  ->  zero-ref    "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V431 tmp411      [V431    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V432 tmp412      [V432    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;* V433 tmp413      [V433    ] (  0,  0   )   byref  ->  zero-ref    "field V106._reference (fldOffset=0x0)" P-INDEP
 ;* V434 tmp414      [V434    ] (  0,  0   )     int  ->  zero-ref    "field V106._length (fldOffset=0x8)" P-INDEP
 ;* V435 tmp415      [V435    ] (  0,  0   )   byref  ->  zero-ref    "field V107._reference (fldOffset=0x0)" P-INDEP
 ;* V436 tmp416      [V436    ] (  0,  0   )     int  ->  zero-ref    "field V107._length (fldOffset=0x8)" P-INDEP
 ;  V437 tmp417      [V437,T184] (  2,  4   )     int  ->  rdi         "field V108.SizeOrLength (fldOffset=0x0)" P-INDEP
 ;* V438 tmp418      [V438    ] (  0,  0   )     int  ->  zero-ref    "field V108.NumberOfRows (fldOffset=0x4)" P-INDEP
-;  V439 tmp419      [V439,T117] (  3,  6   )   byref  ->  rdx         "field V109._reference (fldOffset=0x0)" P-INDEP
-;  V440 tmp420      [V440,T125] (  3,  6   )     int  ->  rdi         "field V109._length (fldOffset=0x8)" P-INDEP
+;  V439 tmp419      [V439,T110] (  3,  6   )   byref  ->  rdx         "field V109._reference (fldOffset=0x0)" P-INDEP
+;  V440 tmp420      [V440,T120] (  3,  6   )     int  ->  rdi         "field V109._length (fldOffset=0x8)" P-INDEP
 ;  V441 tmp421      [V441,T146] (  2,  4   )   byref  ->  rdx         "field V112._reference (fldOffset=0x0)" P-INDEP
 ;  V442 tmp422      [V442,T185] (  2,  4   )     int  ->  rdi         "field V112._length (fldOffset=0x8)" P-INDEP
 ;* V443 tmp423      [V443    ] (  0,  0   )   byref  ->  zero-ref    "field V113._reference (fldOffset=0x0)" P-INDEP
 ;* V444 tmp424      [V444    ] (  0,  0   )     int  ->  zero-ref    "field V113._length (fldOffset=0x8)" P-INDEP
 ;* V445 tmp425      [V445    ] (  0,  0   )   byref  ->  zero-ref    "field V116._reference (fldOffset=0x0)" P-INDEP
 ;* V446 tmp426      [V446    ] (  0,  0   )     int  ->  zero-ref    "field V116._length (fldOffset=0x8)" P-INDEP
 ;* V447 tmp427      [V447    ] (  0,  0   )   byref  ->  zero-ref    "field V117._reference (fldOffset=0x0)" P-INDEP
 ;* V448 tmp428      [V448    ] (  0,  0   )     int  ->  zero-ref    "field V117._length (fldOffset=0x8)" P-INDEP
 ;* V449 tmp429      [V449    ] (  0,  0   )   byref  ->  zero-ref    "field V120._reference (fldOffset=0x0)" P-INDEP
 ;* V450 tmp430      [V450    ] (  0,  0   )     int  ->  zero-ref    "field V120._length (fldOffset=0x8)" P-INDEP
 ;* V451 tmp431      [V451    ] (  0,  0   )   byref  ->  zero-ref    "field V121._reference (fldOffset=0x0)" P-INDEP
 ;* V452 tmp432      [V452    ] (  0,  0   )     int  ->  zero-ref    "field V121._length (fldOffset=0x8)" P-INDEP
 ;  V453 tmp433      [V453,T186] (  2,  4   )     int  ->  rdi         "field V122._location (fldOffset=0x0)" P-INDEP
 ;* V454 tmp434      [V454,T217] (  0,  0   )     int  ->  zero-ref    "field V122._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
 ;  V455 tmp435      [V455,T187] (  2,  4   )     int  ->  rax         "field V122._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
 ;* V456 tmp436      [V456    ] (  0,  0   )   byref  ->  zero-ref    "field V124._reference (fldOffset=0x0)" P-INDEP
 ;* V457 tmp437      [V457    ] (  0,  0   )     int  ->  zero-ref    "field V124._length (fldOffset=0x8)" P-INDEP
 ;  V458 tmp438      [V458,T51] (  5, 10   )   byref  ->  rsi         "field V125._reference (fldOffset=0x0)" P-INDEP
-;  V459 tmp439      [V459,T126] (  3,  6   )     int  ->  rcx         "field V125._length (fldOffset=0x8)" P-INDEP
+;  V459 tmp439      [V459,T121] (  3,  6   )     int  ->  rcx         "field V125._length (fldOffset=0x8)" P-INDEP
 ;  V460 tmp440      [V460,T147] (  2,  4   )   byref  ->  rsi         "field V127._reference (fldOffset=0x0)" P-INDEP
 ;  V461 tmp441      [V461,T188] (  2,  4   )     int  ->  rcx         "field V127._length (fldOffset=0x8)" P-INDEP
 ;* V462 tmp442      [V462    ] (  0,  0   )   byref  ->  zero-ref    "field V128._reference (fldOffset=0x0)" P-INDEP
 ;* V463 tmp443      [V463    ] (  0,  0   )     int  ->  zero-ref    "field V128._length (fldOffset=0x8)" P-INDEP
 ;* V464 tmp444      [V464    ] (  0,  0   )   byref  ->  zero-ref    "field V131._reference (fldOffset=0x0)" P-INDEP
 ;* V465 tmp445      [V465    ] (  0,  0   )     int  ->  zero-ref    "field V131._length (fldOffset=0x8)" P-INDEP
 ;* V466 tmp446      [V466    ] (  0,  0   )   byref  ->  zero-ref    "field V132._reference (fldOffset=0x0)" P-INDEP
 ;* V467 tmp447      [V467    ] (  0,  0   )     int  ->  zero-ref    "field V132._length (fldOffset=0x8)" P-INDEP
 ;* V468 tmp448      [V468    ] (  0,  0   )     int  ->  zero-ref    "field V135.SizeOrLength (fldOffset=0x0)" P-INDEP
 ;* V469 tmp449      [V469    ] (  0,  0   )     int  ->  zero-ref    "field V135.NumberOfRows (fldOffset=0x4)" P-INDEP
 ;* V470 tmp450      [V470    ] (  0,  0   )   byref  ->  zero-ref    "field V136._reference (fldOffset=0x0)" P-INDEP
 ;* V471 tmp451      [V471    ] (  0,  0   )     int  ->  zero-ref    "field V136._length (fldOffset=0x8)" P-INDEP
 ;  V472 tmp452      [V472,T59] (  4,  8   )   byref  ->  rax         "field V137._reference (fldOffset=0x0)" P-INDEP
-;  V473 tmp453      [V473,T127] (  3,  6   )     int  ->  rdi         "field V137._length (fldOffset=0x8)" P-INDEP
+;  V473 tmp453      [V473,T122] (  3,  6   )     int  ->  rdi         "field V137._length (fldOffset=0x8)" P-INDEP
 ;  V474 tmp454      [V474,T148] (  2,  4   )   byref  ->  rax         "field V140._reference (fldOffset=0x0)" P-INDEP
 ;  V475 tmp455      [V475,T189] (  2,  4   )     int  ->  rdi         "field V140._length (fldOffset=0x8)" P-INDEP
 ;* V476 tmp456      [V476    ] (  0,  0   )   byref  ->  zero-ref    "field V141._reference (fldOffset=0x0)" P-INDEP
 ;* V477 tmp457      [V477    ] (  0,  0   )     int  ->  zero-ref    "field V141._length (fldOffset=0x8)" P-INDEP
 ;* V478 tmp458      [V478    ] (  0,  0   )   byref  ->  zero-ref    "field V144._reference (fldOffset=0x0)" P-INDEP
 ;* V479 tmp459      [V479    ] (  0,  0   )     int  ->  zero-ref    "field V144._length (fldOffset=0x8)" P-INDEP
 ;* V480 tmp460      [V480    ] (  0,  0   )   byref  ->  zero-ref    "field V145._reference (fldOffset=0x0)" P-INDEP
 ;* V481 tmp461      [V481    ] (  0,  0   )     int  ->  zero-ref    "field V145._length (fldOffset=0x8)" P-INDEP
 ;* V482 tmp462      [V482    ] (  0,  0   )   byref  ->  zero-ref    "field V147._reference (fldOffset=0x0)" P-INDEP
 ;* V483 tmp463      [V483    ] (  0,  0   )     int  ->  zero-ref    "field V147._length (fldOffset=0x8)" P-INDEP
-;  V484 tmp464      [V484,T118] (  3,  6   )   byref  ->  rdx         "field V148._reference (fldOffset=0x0)" P-INDEP
-;  V485 tmp465      [V485,T128] (  3,  6   )     int  ->  rdi         "field V148._length (fldOffset=0x8)" P-INDEP
+;  V484 tmp464      [V484,T111] (  3,  6   )   byref  ->  rdx         "field V148._reference (fldOffset=0x0)" P-INDEP
+;  V485 tmp465      [V485,T123] (  3,  6   )     int  ->  rdi         "field V148._length (fldOffset=0x8)" P-INDEP
 ;  V486 tmp466      [V486,T149] (  2,  4   )   byref  ->  rdx         "field V151._reference (fldOffset=0x0)" P-INDEP
 ;  V487 tmp467      [V487,T190] (  2,  4   )     int  ->  rdi         "field V151._length (fldOffset=0x8)" P-INDEP
 ;* V488 tmp468      [V488    ] (  0,  0   )   byref  ->  zero-ref    "field V152._reference (fldOffset=0x0)" P-INDEP
 ;* V489 tmp469      [V489    ] (  0,  0   )     int  ->  zero-ref    "field V152._length (fldOffset=0x8)" P-INDEP
 ;* V490 tmp470      [V490    ] (  0,  0   )   byref  ->  zero-ref    "field V155._reference (fldOffset=0x0)" P-INDEP
 ;* V491 tmp471      [V491    ] (  0,  0   )     int  ->  zero-ref    "field V155._length (fldOffset=0x8)" P-INDEP
 ;* V492 tmp472      [V492    ] (  0,  0   )   byref  ->  zero-ref    "field V156._reference (fldOffset=0x0)" P-INDEP
 ;* V493 tmp473      [V493    ] (  0,  0   )     int  ->  zero-ref    "field V156._length (fldOffset=0x8)" P-INDEP
 ;* V494 tmp474      [V494    ] (  0,  0   )   byref  ->  zero-ref    "field V157._reference (fldOffset=0x0)" P-INDEP
 ;* V495 tmp475      [V495    ] (  0,  0   )     int  ->  zero-ref    "field V157._length (fldOffset=0x8)" P-INDEP
 ;* V496 tmp476      [V496    ] (  0,  0   )   byref  ->  zero-ref    "field V158._reference (fldOffset=0x0)" P-INDEP
 ;* V497 tmp477      [V497    ] (  0,  0   )     int  ->  zero-ref    "field V158._length (fldOffset=0x8)" P-INDEP
 ;  V498 tmp478      [V498,T60] (  4,  8   )   byref  ->  rdx         "field V160._reference (fldOffset=0x0)" P-INDEP
-;  V499 tmp479      [V499,T69] (  4,  8   )     int  ->  rdi         "field V160._length (fldOffset=0x8)" P-INDEP
+;  V499 tmp479      [V499,T124] (  3,  6   )     int  ->  rdi         "field V160._length (fldOffset=0x8)" P-INDEP
 ;  V500 tmp480      [V500,T150] (  2,  4   )   byref  ->  rdx         "field V163._reference (fldOffset=0x0)" P-INDEP
 ;  V501 tmp481      [V501,T191] (  2,  4   )     int  ->  rdi         "field V163._length (fldOffset=0x8)" P-INDEP
 ;* V502 tmp482      [V502    ] (  0,  0   )   byref  ->  zero-ref    "field V164._reference (fldOffset=0x0)" P-INDEP
 ;* V503 tmp483      [V503    ] (  0,  0   )     int  ->  zero-ref    "field V164._length (fldOffset=0x8)" P-INDEP
 ;* V504 tmp484      [V504    ] (  0,  0   )   byref  ->  zero-ref    "field V167._reference (fldOffset=0x0)" P-INDEP
 ;* V505 tmp485      [V505    ] (  0,  0   )     int  ->  zero-ref    "field V167._length (fldOffset=0x8)" P-INDEP
 ;* V506 tmp486      [V506    ] (  0,  0   )   byref  ->  zero-ref    "field V168._reference (fldOffset=0x0)" P-INDEP
 ;* V507 tmp487      [V507    ] (  0,  0   )     int  ->  zero-ref    "field V168._length (fldOffset=0x8)" P-INDEP
 ;* V508 tmp488      [V508    ] (  0,  0   )   byref  ->  zero-ref    "field V171._reference (fldOffset=0x0)" P-INDEP
 ;* V509 tmp489      [V509    ] (  0,  0   )     int  ->  zero-ref    "field V171._length (fldOffset=0x8)" P-INDEP
 ;* V510 tmp490      [V510    ] (  0,  0   )   byref  ->  zero-ref    "field V172._reference (fldOffset=0x0)" P-INDEP
 ;* V511 tmp491      [V511    ] (  0,  0   )     int  ->  zero-ref    "field V172._length (fldOffset=0x8)" P-INDEP
 ;* V512 tmp492      [V512    ] (  0,  0   )   byref  ->  zero-ref    "field V173._reference (fldOffset=0x0)" P-INDEP
 ;* V513 tmp493      [V513    ] (  0,  0   )     int  ->  zero-ref    "field V173._length (fldOffset=0x8)" P-INDEP
 ;* V514 tmp494      [V514    ] (  0,  0   )   byref  ->  zero-ref    "field V174._reference (fldOffset=0x0)" P-INDEP
 ;* V515 tmp495      [V515    ] (  0,  0   )     int  ->  zero-ref    "field V174._length (fldOffset=0x8)" P-INDEP
 ;* V516 tmp496      [V516    ] (  0,  0   )   byref  ->  zero-ref    "field V175._reference (fldOffset=0x0)" P-INDEP
 ;* V517 tmp497      [V517    ] (  0,  0   )     int  ->  zero-ref    "field V175._length (fldOffset=0x8)" P-INDEP
 ;* V518 tmp498      [V518    ] (  0,  0   )   byref  ->  zero-ref    "field V176._reference (fldOffset=0x0)" P-INDEP
 ;* V519 tmp499      [V519    ] (  0,  0   )     int  ->  zero-ref    "field V176._length (fldOffset=0x8)" P-INDEP
 ;  V520 tmp500      [V520,T61] (  4,  8   )   byref  ->  rcx         "field V178._reference (fldOffset=0x0)" P-INDEP
-;  V521 tmp501      [V521,T70] (  4,  8   )     int  ->  rdi         "field V178._length (fldOffset=0x8)" P-INDEP
+;  V521 tmp501      [V521,T125] (  3,  6   )     int  ->  rdi         "field V178._length (fldOffset=0x8)" P-INDEP
 ;  V522 tmp502      [V522,T151] (  2,  4   )   byref  ->  rcx         "field V181._reference (fldOffset=0x0)" P-INDEP
 ;  V523 tmp503      [V523,T192] (  2,  4   )     int  ->  rdi         "field V181._length (fldOffset=0x8)" P-INDEP
 ;* V524 tmp504      [V524    ] (  0,  0   )   byref  ->  zero-ref    "field V182._reference (fldOffset=0x0)" P-INDEP
 ;* V525 tmp505      [V525    ] (  0,  0   )     int  ->  zero-ref    "field V182._length (fldOffset=0x8)" P-INDEP
 ;* V526 tmp506      [V526    ] (  0,  0   )   byref  ->  zero-ref    "field V185._reference (fldOffset=0x0)" P-INDEP
 ;* V527 tmp507      [V527    ] (  0,  0   )     int  ->  zero-ref    "field V185._length (fldOffset=0x8)" P-INDEP
 ;* V528 tmp508      [V528    ] (  0,  0   )   byref  ->  zero-ref    "field V186._reference (fldOffset=0x0)" P-INDEP
 ;* V529 tmp509      [V529    ] (  0,  0   )     int  ->  zero-ref    "field V186._length (fldOffset=0x8)" P-INDEP
 ;* V530 tmp510      [V530    ] (  0,  0   )   byref  ->  zero-ref    "field V189._reference (fldOffset=0x0)" P-INDEP
 ;* V531 tmp511      [V531    ] (  0,  0   )     int  ->  zero-ref    "field V189._length (fldOffset=0x8)" P-INDEP
 ;* V532 tmp512      [V532    ] (  0,  0   )   byref  ->  zero-ref    "field V190._reference (fldOffset=0x0)" P-INDEP
 ;* V533 tmp513      [V533    ] (  0,  0   )     int  ->  zero-ref    "field V190._length (fldOffset=0x8)" P-INDEP
 ;* V534 tmp514      [V534    ] (  0,  0   )   byref  ->  zero-ref    "field V191._reference (fldOffset=0x0)" P-INDEP
 ;* V535 tmp515      [V535    ] (  0,  0   )     int  ->  zero-ref    "field V191._length (fldOffset=0x8)" P-INDEP
 ;* V536 tmp516      [V536    ] (  0,  0   )   byref  ->  zero-ref    "field V192._reference (fldOffset=0x0)" P-INDEP
 ;* V537 tmp517      [V537    ] (  0,  0   )     int  ->  zero-ref    "field V192._length (fldOffset=0x8)" P-INDEP
 ;  V538 tmp518      [V538,T193] (  2,  4   )     int  ->  rdi         "field V193._location (fldOffset=0x0)" P-INDEP
 ;  V539 tmp519      [V539,T194] (  2,  4   )     int  ->  rax         "field V193._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
 ;  V540 tmp520      [V540,T195] (  2,  4   )     int  ->  rcx         "field V193._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
 ;* V541 tmp521      [V541    ] (  0,  0   )   byref  ->  zero-ref    "field V196._reference (fldOffset=0x0)" P-INDEP
 ;* V542 tmp522      [V542    ] (  0,  0   )     int  ->  zero-ref    "field V196._length (fldOffset=0x8)" P-INDEP
 ;  V543 tmp523      [V543,T52] (  5, 10   )   byref  ->   r8         "field V197._reference (fldOffset=0x0)" P-INDEP
-;  V544 tmp524      [V544,T129] (  3,  6   )     int  ->  rdx         "field V197._length (fldOffset=0x8)" P-INDEP
+;  V544 tmp524      [V544,T126] (  3,  6   )     int  ->  rdx         "field V197._length (fldOffset=0x8)" P-INDEP
 ;  V545 tmp525      [V545,T152] (  2,  4   )   byref  ->   r8         "field V199._reference (fldOffset=0x0)" P-INDEP
 ;  V546 tmp526      [V546,T196] (  2,  4   )     int  ->  rdx         "field V199._length (fldOffset=0x8)" P-INDEP
 ;* V547 tmp527      [V547    ] (  0,  0   )   byref  ->  zero-ref    "field V200._reference (fldOffset=0x0)" P-INDEP
 ;* V548 tmp528      [V548    ] (  0,  0   )     int  ->  zero-ref    "field V200._length (fldOffset=0x8)" P-INDEP
 ;* V549 tmp529      [V549    ] (  0,  0   )   byref  ->  zero-ref    "field V203._reference (fldOffset=0x0)" P-INDEP
 ;* V550 tmp530      [V550    ] (  0,  0   )     int  ->  zero-ref    "field V203._length (fldOffset=0x8)" P-INDEP
 ;* V551 tmp531      [V551    ] (  0,  0   )   byref  ->  zero-ref    "field V204._reference (fldOffset=0x0)" P-INDEP
 ;* V552 tmp532      [V552    ] (  0,  0   )     int  ->  zero-ref    "field V204._length (fldOffset=0x8)" P-INDEP
 ;* V553 tmp533      [V553    ] (  0,  0   )   byref  ->  zero-ref    "field V206._reference (fldOffset=0x0)" P-INDEP
 ;* V554 tmp534      [V554    ] (  0,  0   )     int  ->  zero-ref    "field V206._length (fldOffset=0x8)" P-INDEP
 ;* V555 tmp535      [V555    ] (  0,  0   )   byref  ->  zero-ref    "field V207._reference (fldOffset=0x0)" P-INDEP
 ;* V556 tmp536      [V556    ] (  0,  0   )     int  ->  zero-ref    "field V207._length (fldOffset=0x8)" P-INDEP
 ;  V557 tmp537      [V557,T62] (  4,  8   )   byref  ->  rax         "field V209._reference (fldOffset=0x0)" P-INDEP
-;  V558 tmp538      [V558,T71] (  4,  8   )     int  ->  rdi         "field V209._length (fldOffset=0x8)" P-INDEP
+;  V558 tmp538      [V558,T127] (  3,  6   )     int  ->  rdi         "field V209._length (fldOffset=0x8)" P-INDEP
 ;  V559 tmp539      [V559,T153] (  2,  4   )   byref  ->  rax         "field V212._reference (fldOffset=0x0)" P-INDEP
 ;  V560 tmp540      [V560,T197] (  2,  4   )     int  ->  rdi         "field V212._length (fldOffset=0x8)" P-INDEP
 ;* V561 tmp541      [V561    ] (  0,  0   )   byref  ->  zero-ref    "field V213._reference (fldOffset=0x0)" P-INDEP
 ;* V562 tmp542      [V562    ] (  0,  0   )     int  ->  zero-ref    "field V213._length (fldOffset=0x8)" P-INDEP
 ;* V563 tmp543      [V563    ] (  0,  0   )   byref  ->  zero-ref    "field V216._reference (fldOffset=0x0)" P-INDEP
 ;* V564 tmp544      [V564    ] (  0,  0   )     int  ->  zero-ref    "field V216._length (fldOffset=0x8)" P-INDEP
 ;* V565 tmp545      [V565    ] (  0,  0   )   byref  ->  zero-ref    "field V217._reference (fldOffset=0x0)" P-INDEP
 ;* V566 tmp546      [V566    ] (  0,  0   )     int  ->  zero-ref    "field V217._length (fldOffset=0x8)" P-INDEP
 ;* V567 tmp547      [V567    ] (  0,  0   )   byref  ->  zero-ref    "field V220._reference (fldOffset=0x0)" P-INDEP
 ;* V568 tmp548      [V568    ] (  0,  0   )     int  ->  zero-ref    "field V220._length (fldOffset=0x8)" P-INDEP
 ;* V569 tmp549      [V569    ] (  0,  0   )   byref  ->  zero-ref    "field V221._reference (fldOffset=0x0)" P-INDEP
 ;* V570 tmp550      [V570    ] (  0,  0   )     int  ->  zero-ref    "field V221._length (fldOffset=0x8)" P-INDEP
 ;* V571 tmp551      [V571    ] (  0,  0   )   byref  ->  zero-ref    "field V222._reference (fldOffset=0x0)" P-INDEP
 ;* V572 tmp552      [V572    ] (  0,  0   )     int  ->  zero-ref    "field V222._length (fldOffset=0x8)" P-INDEP
 ;* V573 tmp553      [V573    ] (  0,  0   )   byref  ->  zero-ref    "field V223._reference (fldOffset=0x0)" P-INDEP
 ;* V574 tmp554      [V574    ] (  0,  0   )     int  ->  zero-ref    "field V223._length (fldOffset=0x8)" P-INDEP
 ;* V575 tmp555      [V575    ] (  0,  0   )   byref  ->  zero-ref    "field V224._reference (fldOffset=0x0)" P-INDEP
 ;* V576 tmp556      [V576    ] (  0,  0   )     int  ->  zero-ref    "field V224._length (fldOffset=0x8)" P-INDEP
 ;* V577 tmp557      [V577    ] (  0,  0   )   byref  ->  zero-ref    "field V225._reference (fldOffset=0x0)" P-INDEP
 ;* V578 tmp558      [V578    ] (  0,  0   )     int  ->  zero-ref    "field V225._length (fldOffset=0x8)" P-INDEP
 ;  V579 tmp559      [V579,T198] (  2,  4   )     int  ->  r13         "field V226.SizeOrLength (fldOffset=0x0)" P-INDEP
 ;  V580 tmp560      [V580,T199] (  2,  4   )     int  ->  rdi         "field V226.NumberOfRows (fldOffset=0x4)" P-INDEP
 ;  V581 tmp561      [V581,T63] (  4,  8   )   byref  ->  rdx         "field V227._reference (fldOffset=0x0)" P-INDEP
-;  V582 tmp562      [V582,T130] (  3,  6   )     int  ->  rdi         "field V227._length (fldOffset=0x8)" P-INDEP
+;  V582 tmp562      [V582,T128] (  3,  6   )     int  ->  rdi         "field V227._length (fldOffset=0x8)" P-INDEP
 ;  V583 tmp563      [V583,T154] (  2,  4   )   byref  ->  rdx         "field V230._reference (fldOffset=0x0)" P-INDEP
 ;  V584 tmp564      [V584,T200] (  2,  4   )     int  ->  rdi         "field V230._length (fldOffset=0x8)" P-INDEP
 ;* V585 tmp565      [V585    ] (  0,  0   )   byref  ->  zero-ref    "field V231._reference (fldOffset=0x0)" P-INDEP
 ;* V586 tmp566      [V586    ] (  0,  0   )     int  ->  zero-ref    "field V231._length (fldOffset=0x8)" P-INDEP
 ;* V587 tmp567      [V587    ] (  0,  0   )   byref  ->  zero-ref    "field V234._reference (fldOffset=0x0)" P-INDEP
 ;* V588 tmp568      [V588    ] (  0,  0   )     int  ->  zero-ref    "field V234._length (fldOffset=0x8)" P-INDEP
 ;* V589 tmp569      [V589    ] (  0,  0   )   byref  ->  zero-ref    "field V235._reference (fldOffset=0x0)" P-INDEP
 ;* V590 tmp570      [V590    ] (  0,  0   )     int  ->  zero-ref    "field V235._length (fldOffset=0x8)" P-INDEP
 ;* V591 tmp571      [V591    ] (  0,  0   )   byref  ->  zero-ref    "field V238._reference (fldOffset=0x0)" P-INDEP
 ;* V592 tmp572      [V592    ] (  0,  0   )     int  ->  zero-ref    "field V238._length (fldOffset=0x8)" P-INDEP
 ;* V593 tmp573      [V593    ] (  0,  0   )   byref  ->  zero-ref    "field V239._reference (fldOffset=0x0)" P-INDEP
 ;* V594 tmp574      [V594    ] (  0,  0   )     int  ->  zero-ref    "field V239._length (fldOffset=0x8)" P-INDEP
 ;  V595 tmp575      [V595,T201] (  2,  4   )     int  ->  rdi         "field V240._location (fldOffset=0x0)" P-INDEP
 ;  V596 tmp576      [V596,T202] (  2,  4   )     int  ->  rsi         "field V240._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
 ;  V597 tmp577      [V597,T203] (  2,  4   )     int  ->  rax         "field V240._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
 ;* V598 tmp578      [V598    ] (  0,  0   )   byref  ->  zero-ref    "field V244._reference (fldOffset=0x0)" P-INDEP
 ;* V599 tmp579      [V599    ] (  0,  0   )     int  ->  zero-ref    "field V244._length (fldOffset=0x8)" P-INDEP
 ;  V600 tmp580      [V600,T53] (  5, 10   )   byref  ->   r8         "field V246._reference (fldOffset=0x0)" P-INDEP
-;  V601 tmp581      [V601,T131] (  3,  6   )     int  ->  rcx         "field V246._length (fldOffset=0x8)" P-INDEP
+;  V601 tmp581      [V601,T129] (  3,  6   )     int  ->  rcx         "field V246._length (fldOffset=0x8)" P-INDEP
 ;  V602 tmp582      [V602,T155] (  2,  4   )   byref  ->   r8         "field V248._reference (fldOffset=0x0)" P-INDEP
 ;  V603 tmp583      [V603,T204] (  2,  4   )     int  ->  rcx         "field V248._length (fldOffset=0x8)" P-INDEP
 ;* V604 tmp584      [V604    ] (  0,  0   )   byref  ->  zero-ref    "field V249._reference (fldOffset=0x0)" P-INDEP
 ;* V605 tmp585      [V605    ] (  0,  0   )     int  ->  zero-ref    "field V249._length (fldOffset=0x8)" P-INDEP
 ;* V606 tmp586      [V606    ] (  0,  0   )   byref  ->  zero-ref    "field V252._reference (fldOffset=0x0)" P-INDEP
 ;* V607 tmp587      [V607    ] (  0,  0   )     int  ->  zero-ref    "field V252._length (fldOffset=0x8)" P-INDEP
 ;* V608 tmp588      [V608    ] (  0,  0   )   byref  ->  zero-ref    "field V253._reference (fldOffset=0x0)" P-INDEP
 ;* V609 tmp589      [V609    ] (  0,  0   )     int  ->  zero-ref    "field V253._length (fldOffset=0x8)" P-INDEP
 ;* V610 tmp590      [V610    ] (  0,  0   )   byref  ->  zero-ref    "field V256._reference (fldOffset=0x0)" P-INDEP
 ;* V611 tmp591      [V611    ] (  0,  0   )     int  ->  zero-ref    "field V256._length (fldOffset=0x8)" P-INDEP
 ;* V612 tmp592      [V612    ] (  0,  0   )   byref  ->  zero-ref    "field V257._reference (fldOffset=0x0)" P-INDEP
 ;* V613 tmp593      [V613    ] (  0,  0   )     int  ->  zero-ref    "field V257._length (fldOffset=0x8)" P-INDEP
 ;  V614 tmp594      [V614,T64] (  4,  8   )   byref  ->  rax         "field V259._reference (fldOffset=0x0)" P-INDEP
-;  V615 tmp595      [V615,T72] (  4,  8   )     int  ->  rsi         "field V259._length (fldOffset=0x8)" P-INDEP
+;  V615 tmp595      [V615,T130] (  3,  6   )     int  ->  rsi         "field V259._length (fldOffset=0x8)" P-INDEP
 ;  V616 tmp596      [V616,T156] (  2,  4   )   byref  ->  rax         "field V262._reference (fldOffset=0x0)" P-INDEP
 ;  V617 tmp597      [V617,T205] (  2,  4   )     int  ->  rsi         "field V262._length (fldOffset=0x8)" P-INDEP
 ;* V618 tmp598      [V618    ] (  0,  0   )   byref  ->  zero-ref    "field V263._reference (fldOffset=0x0)" P-INDEP
 ;* V619 tmp599      [V619    ] (  0,  0   )     int  ->  zero-ref    "field V263._length (fldOffset=0x8)" P-INDEP
 ;* V620 tmp600      [V620    ] (  0,  0   )   byref  ->  zero-ref    "field V266._reference (fldOffset=0x0)" P-INDEP
 ;* V621 tmp601      [V621    ] (  0,  0   )     int  ->  zero-ref    "field V266._length (fldOffset=0x8)" P-INDEP
 ;* V622 tmp602      [V622    ] (  0,  0   )   byref  ->  zero-ref    "field V267._reference (fldOffset=0x0)" P-INDEP
 ;* V623 tmp603      [V623    ] (  0,  0   )     int  ->  zero-ref    "field V267._length (fldOffset=0x8)" P-INDEP
 ;* V624 tmp604      [V624    ] (  0,  0   )   byref  ->  zero-ref    "field V270._reference (fldOffset=0x0)" P-INDEP
 ;* V625 tmp605      [V625    ] (  0,  0   )     int  ->  zero-ref    "field V270._length (fldOffset=0x8)" P-INDEP
 ;* V626 tmp606      [V626    ] (  0,  0   )   byref  ->  zero-ref    "field V271._reference (fldOffset=0x0)" P-INDEP
 ;* V627 tmp607      [V627    ] (  0,  0   )     int  ->  zero-ref    "field V271._length (fldOffset=0x8)" P-INDEP
 ;* V628 tmp608      [V628    ] (  0,  0   )   byref  ->  zero-ref    "field V272._reference (fldOffset=0x0)" P-INDEP
 ;* V629 tmp609      [V629    ] (  0,  0   )     int  ->  zero-ref    "field V272._length (fldOffset=0x8)" P-INDEP
 ;* V630 tmp610      [V630    ] (  0,  0   )   byref  ->  zero-ref    "field V273._reference (fldOffset=0x0)" P-INDEP
 ;* V631 tmp611      [V631    ] (  0,  0   )     int  ->  zero-ref    "field V273._length (fldOffset=0x8)" P-INDEP
 ;  V632 tmp612      [V632,T206] (  2,  4   )     int  ->  rdi         "field V274._location (fldOffset=0x0)" P-INDEP
 ;  V633 tmp613      [V633,T207] (  2,  4   )     int  ->  rcx         "field V274._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
 ;  V634 tmp614      [V634,T208] (  2,  4   )     int  ->  rax         "field V274._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
 ;* V635 tmp615      [V635    ] (  0,  0   )   byref  ->  zero-ref    "field V278._reference (fldOffset=0x0)" P-INDEP
 ;* V636 tmp616      [V636    ] (  0,  0   )     int  ->  zero-ref    "field V278._length (fldOffset=0x8)" P-INDEP
 ;  V637 tmp617      [V637,T54] (  5, 10   )   byref  ->   r8         "field V280._reference (fldOffset=0x0)" P-INDEP
-;  V638 tmp618      [V638,T132] (  3,  6   )     int  ->  rdx         "field V280._length (fldOffset=0x8)" P-INDEP
+;  V638 tmp618      [V638,T131] (  3,  6   )     int  ->  rdx         "field V280._length (fldOffset=0x8)" P-INDEP
 ;  V639 tmp619      [V639,T157] (  2,  4   )   byref  ->   r8         "field V282._reference (fldOffset=0x0)" P-INDEP
 ;  V640 tmp620      [V640,T209] (  2,  4   )     int  ->  rdx         "field V282._length (fldOffset=0x8)" P-INDEP
 ;* V641 tmp621      [V641    ] (  0,  0   )   byref  ->  zero-ref    "field V283._reference (fldOffset=0x0)" P-INDEP
 ;* V642 tmp622      [V642    ] (  0,  0   )     int  ->  zero-ref    "field V283._length (fldOffset=0x8)" P-INDEP
 ;* V643 tmp623      [V643    ] (  0,  0   )   byref  ->  zero-ref    "field V286._reference (fldOffset=0x0)" P-INDEP
 ;* V644 tmp624      [V644    ] (  0,  0   )     int  ->  zero-ref    "field V286._length (fldOffset=0x8)" P-INDEP
 ;* V645 tmp625      [V645    ] (  0,  0   )   byref  ->  zero-ref    "field V287._reference (fldOffset=0x0)" P-INDEP
 ;* V646 tmp626      [V646    ] (  0,  0   )     int  ->  zero-ref    "field V287._length (fldOffset=0x8)" P-INDEP
 ;* V647 tmp627      [V647    ] (  0,  0   )   byref  ->  zero-ref    "field V290._reference (fldOffset=0x0)" P-INDEP
 ;* V648 tmp628      [V648    ] (  0,  0   )     int  ->  zero-ref    "field V290._length (fldOffset=0x8)" P-INDEP
 ;* V649 tmp629      [V649    ] (  0,  0   )   byref  ->  zero-ref    "field V291._reference (fldOffset=0x0)" P-INDEP
 ;* V650 tmp630      [V650    ] (  0,  0   )     int  ->  zero-ref    "field V291._length (fldOffset=0x8)" P-INDEP
 ;  V651 tmp631      [V651,T65] (  4,  8   )   byref  ->  rcx         "field V293._reference (fldOffset=0x0)" P-INDEP
-;  V652 tmp632      [V652,T73] (  4,  8   )     int  ->  rax         "field V293._length (fldOffset=0x8)" P-INDEP
+;  V652 tmp632      [V652,T132] (  3,  6   )     int  ->  rax         "field V293._length (fldOffset=0x8)" P-INDEP
 ;  V653 tmp633      [V653,T158] (  2,  4   )   byref  ->  rcx         "field V296._reference (fldOffset=0x0)" P-INDEP
 ;  V654 tmp634      [V654,T210] (  2,  4   )     int  ->  rax         "field V296._length (fldOffset=0x8)" P-INDEP
 ;* V655 tmp635      [V655    ] (  0,  0   )   byref  ->  zero-ref    "field V297._reference (fldOffset=0x0)" P-INDEP
 ;* V656 tmp636      [V656    ] (  0,  0   )     int  ->  zero-ref    "field V297._length (fldOffset=0x8)" P-INDEP
 ;* V657 tmp637      [V657    ] (  0,  0   )   byref  ->  zero-ref    "field V300._reference (fldOffset=0x0)" P-INDEP
 ;* V658 tmp638      [V658    ] (  0,  0   )     int  ->  zero-ref    "field V300._length (fldOffset=0x8)" P-INDEP
 ;* V659 tmp639      [V659    ] (  0,  0   )   byref  ->  zero-ref    "field V301._reference (fldOffset=0x0)" P-INDEP
 ;* V660 tmp640      [V660    ] (  0,  0   )     int  ->  zero-ref    "field V301._length (fldOffset=0x8)" P-INDEP
 ;* V661 tmp641      [V661    ] (  0,  0   )   byref  ->  zero-ref    "field V304._reference (fldOffset=0x0)" P-INDEP
 ;* V662 tmp642      [V662    ] (  0,  0   )     int  ->  zero-ref    "field V304._length (fldOffset=0x8)" P-INDEP
 ;* V663 tmp643      [V663    ] (  0,  0   )   byref  ->  zero-ref    "field V305._reference (fldOffset=0x0)" P-INDEP
 ;* V664 tmp644      [V664    ] (  0,  0   )     int  ->  zero-ref    "field V305._length (fldOffset=0x8)" P-INDEP
 ;* V665 tmp645      [V665    ] (  0,  0   )   byref  ->  zero-ref    "field V306._reference (fldOffset=0x0)" P-INDEP
 ;* V666 tmp646      [V666    ] (  0,  0   )     int  ->  zero-ref    "field V306._length (fldOffset=0x8)" P-INDEP
 ;* V667 tmp647      [V667    ] (  0,  0   )   byref  ->  zero-ref    "field V307._reference (fldOffset=0x0)" P-INDEP
 ;* V668 tmp648      [V668    ] (  0,  0   )     int  ->  zero-ref    "field V307._length (fldOffset=0x8)" P-INDEP
 ;  V669 tmp649      [V669,T211] (  2,  4   )     int  ->  rcx         "field V308._location (fldOffset=0x0)" P-INDEP
 ;  V670 tmp650      [V670,T212] (  2,  4   )     int  ->  r14         "field V308._sizeOrLengthUnion (fldOffset=0x4)" P-INDEP
 ;  V671 tmp651      [V671,T213] (  2,  4   )     int  ->  rax         "field V308._numberOfRowsAndTypeUnion (fldOffset=0x8)" P-INDEP
 ;* V672 tmp652      [V672    ] (  0,  0   )   byref  ->  zero-ref    "field V311._reference (fldOffset=0x0)" P-INDEP
 ;* V673 tmp653      [V673    ] (  0,  0   )     int  ->  zero-ref    "field V311._length (fldOffset=0x8)" P-INDEP
 ;  V674 tmp654      [V674,T55] (  5, 10   )   byref  ->  rsi         "field V312._reference (fldOffset=0x0)" P-INDEP
 ;  V675 tmp655      [V675,T133] (  3,  6   )     int  ->  rdi         "field V312._length (fldOffset=0x8)" P-INDEP
 ;  V676 tmp656      [V676,T159] (  2,  4   )   byref  ->  rsi         "field V314._reference (fldOffset=0x0)" P-INDEP
 ;  V677 tmp657      [V677,T214] (  2,  4   )     int  ->  rdi         "field V314._length (fldOffset=0x8)" P-INDEP
 ;* V678 tmp658      [V678    ] (  0,  0   )   byref  ->  zero-ref    "field V315._reference (fldOffset=0x0)" P-INDEP
 ;* V679 tmp659      [V679    ] (  0,  0   )     int  ->  zero-ref    "field V315._length (fldOffset=0x8)" P-INDEP
 ;* V680 tmp660      [V680    ] (  0,  0   )   byref  ->  zero-ref    "field V318._reference (fldOffset=0x0)" P-INDEP
 ;* V681 tmp661      [V681    ] (  0,  0   )     int  ->  zero-ref    "field V318._length (fldOffset=0x8)" P-INDEP
 ;* V682 tmp662      [V682    ] (  0,  0   )   byref  ->  zero-ref    "field V319._reference (fldOffset=0x0)" P-INDEP
 ;* V683 tmp663      [V683    ] (  0,  0   )     int  ->  zero-ref    "field V319._length (fldOffset=0x8)" P-INDEP
 ;  V684 cse0        [V684,T134] (  3,  6   )     int  ->  rdi         "CSE #06: conservative"
 ;  V685 cse1        [V685,T135] (  3,  6   )     int  ->  rax         "CSE #12: conservative"
 ;  V686 cse2        [V686,T136] (  3,  6   )     int  ->  rdi         "CSE #23: conservative"
 ;  V687 cse3        [V687,T137] (  3,  6   )     int  ->  rax         "CSE #27: conservative"
 ;
 ; Lcl frame size = 344
 
 G_M25387_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 344
        lea      rbp, [rsp+0x180]
        xor      eax, eax
        mov      qword ptr [rbp-0x138], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x130], zmm8
        vmovdqu32 zmmword ptr [rbp-0xF0], zmm8
        vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
        vmovdqu32 zmmword ptr [rbp-0x70], zmm8
        mov      rax, rdi
        mov      rbx, rcx
        mov      r15, r8
        mov      r8d, esi
 						;; size=91 bbWeight=1 PerfScore 17.33
 G_M25387_IG02:
        xor      r14d, r14d
        xor      r13d, r13d
        xor      r12d, r12d
        xor      r9d, r9d
        mov      dword ptr [rbp-0x2C], r9d
        mov      qword ptr [rbp-0x120], rdx
        vxorps   xmm0, xmm0, xmm0
        vmovdqu  xmmword ptr [rbp-0x118], xmm0
        vmovdqu  xmmword ptr [rbp-0x110], xmm0
        lea      rdi, [rsp]
        lea      rsi, [rbp-0x138]
        mov      ecx, 4
        rep movsq 
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x20], rcx
        add      rsi, 8
        add      rdi, 8
        movsq    
        movsq    
        mov      rsi, rax
        mov      edx, r8d
        lea      rdi, [rbp-0xF0]
        mov      ecx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:.ctor(System.ReadOnlySpan`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this
        call     [rax]System.Text.Json.Utf8JsonReader:.ctor(System.ReadOnlySpan`1[ubyte],ubyte,System.Text.Json.JsonReaderState):this
        lea      rdi, [rbp-0xF0]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
        test     eax, eax
        je       G_M25387_IG65
 						;; size=139 bbWeight=1 PerfScore 46.58
 G_M25387_IG03:
        movzx    rax, byte  ptr [rbp-0xC8]
        mov      dword ptr [rbp-0xF4], eax
        mov      ecx, dword ptr [rbp-0xD8]
        mov      dword ptr [rbp-0xF8], ecx
        cmp      eax, 1
        je       G_M25387_IG56
 						;; size=34 bbWeight=4 PerfScore 21.00
 G_M25387_IG04:
        cmp      eax, 2
        je       G_M25387_IG44
        cmp      eax, 3
        je       G_M25387_IG36
        cmp      eax, 4
        je       G_M25387_IG21
        mov      r9d, dword ptr [rbp-0x2C]
        inc      r9d
        mov      dword ptr [rbp-0x2C], r9d
        inc      r12d
        cmp      eax, 5
        je       G_M25387_IG15
        test     r14d, r14d
        je       SHORT G_M25387_IG05
        inc      r13d
 						;; size=58 bbWeight=2 PerfScore 18.00
 G_M25387_IG05:
        mov      r14d, dword ptr [rbp-0x50]
        cmp      eax, 7
        je       SHORT G_M25387_IG09
        mov      edi, dword ptr [rbx+0x08]
        mov      rdx, gword ptr [rbx]
        mov      edx, dword ptr [rdx+0x08]
        add      edx, -12
        cmp      edi, edx
        jl       SHORT G_M25387_IG06
        mov      rdi, rbx
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
        call     [rdx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
 						;; size=40 bbWeight=2 PerfScore 26.50
 G_M25387_IG06:
        mov      ecx, dword ptr [rbp-0xF8]
        mov      eax, dword ptr [rbp-0xF4]
        shl      eax, 28
        mov      rdi, gword ptr [rbx]
        mov      edx, dword ptr [rbx+0x08]
        test     rdi, rdi
        je       SHORT G_M25387_IG07
        cmp      dword ptr [rdi+0x08], edx
        jb       G_M25387_IG68
        mov      esi, edx
        lea      rsi, bword ptr [rdi+rsi+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, edx
        jmp      SHORT G_M25387_IG08
 						;; size=49 bbWeight=2 PerfScore 34.50
 G_M25387_IG07:
        test     edx, edx
        jne      G_M25387_IG68
        xor      rsi, rsi
        xor      edi, edi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG08:
        cmp      edi, 12
-       jb       G_M25387_IG67
+       jl       G_M25387_IG67
        mov      dword ptr [rsi], ecx
        mov      dword ptr [rsi+0x04], r14d
        mov      dword ptr [rsi+0x08], eax
        add      dword ptr [rbx+0x08], 12
        jmp      G_M25387_IG64
 						;; size=27 bbWeight=2 PerfScore 18.50
 G_M25387_IG09:
        mov      edi, dword ptr [rbx+0x08]
        mov      rdx, gword ptr [rbx]
        mov      edx, dword ptr [rdx+0x08]
        add      edx, -12
        cmp      edi, edx
        jl       SHORT G_M25387_IG10
        mov      rdi, rbx
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
        call     [rdx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
 						;; size=31 bbWeight=2 PerfScore 22.00
 G_M25387_IG10:
        mov      ecx, dword ptr [rbp-0xF8]
        lea      edi, [rcx+0x01]
        mov      ecx, r14d
        mov      eax, dword ptr [rbp-0xF4]
        shl      eax, 28
        mov      rdx, gword ptr [rbx]
        mov      esi, dword ptr [rbx+0x08]
        test     rdx, rdx
        je       SHORT G_M25387_IG11
        cmp      dword ptr [rdx+0x08], esi
        jb       G_M25387_IG68
        mov      r8d, esi
        lea      r8, bword ptr [rdx+r8+0x10]
        mov      edx, dword ptr [rdx+0x08]
        sub      edx, esi
        jmp      SHORT G_M25387_IG12
 						;; size=56 bbWeight=2 PerfScore 36.00
 G_M25387_IG11:
        test     esi, esi
        jne      G_M25387_IG68
        xor      r8, r8
        xor      edx, edx
 						;; size=13 bbWeight=2 PerfScore 3.50
 G_M25387_IG12:
        cmp      edx, 12
-       jb       G_M25387_IG67
+       jl       G_M25387_IG67
        mov      dword ptr [r8], edi
        mov      dword ptr [r8+0x04], ecx
        mov      dword ptr [r8+0x08], eax
        add      dword ptr [rbx+0x08], 12
        cmp      byte  ptr [rbp-0xC2], 0
        je       G_M25387_IG64
        mov      edi, dword ptr [rbx+0x08]
        add      edi, -12
        mov      rax, gword ptr [rbx]
        add      edi, 4
        test     rax, rax
        je       SHORT G_M25387_IG13
        cmp      dword ptr [rax+0x08], edi
        jb       G_M25387_IG68
        mov      ecx, edi
        lea      rcx, bword ptr [rax+rcx+0x10]
        mov      eax, dword ptr [rax+0x08]
        sub      eax, edi
        jmp      SHORT G_M25387_IG14
 						;; size=77 bbWeight=2 PerfScore 51.00
 G_M25387_IG13:
        test     edi, edi
        jne      G_M25387_IG68
        xor      rcx, rcx
        xor      eax, eax
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG14:
        cmp      eax, 4
        jl       G_M25387_IG67
        mov      edi, dword ptr [rcx]
        or       edi, 0xD1FFAB1E
-       cmp      eax, 4
-       jb       G_M25387_IG67
        mov      dword ptr [rcx], edi
        jmp      G_M25387_IG64
-						;; size=33 bbWeight=2 PerfScore 15.50
+						;; size=24 bbWeight=2 PerfScore 13.00
 G_M25387_IG15:
        mov      r14d, dword ptr [rbp-0x50]
        mov      edi, dword ptr [rbx+0x08]
        mov      rdx, gword ptr [rbx]
        mov      edx, dword ptr [rdx+0x08]
        add      edx, -12
        cmp      edi, edx
        jl       SHORT G_M25387_IG16
        mov      rdi, rbx
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
        call     [rdx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
        mov      eax, dword ptr [rbp-0xF4]
 						;; size=41 bbWeight=2 PerfScore 26.00
 G_M25387_IG16:
        mov      ecx, dword ptr [rbp-0xF8]
        lea      edi, [rcx+0x01]
        mov      esi, r14d
        shl      eax, 28
        mov      rcx, gword ptr [rbx]
        mov      edx, dword ptr [rbx+0x08]
        test     rcx, rcx
        je       SHORT G_M25387_IG17
        cmp      dword ptr [rcx+0x08], edx
        jb       G_M25387_IG68
        mov      r8d, edx
        lea      r8, bword ptr [rcx+r8+0x10]
        mov      ecx, dword ptr [rcx+0x08]
        sub      ecx, edx
        jmp      SHORT G_M25387_IG18
 						;; size=50 bbWeight=2 PerfScore 34.00
 G_M25387_IG17:
        test     edx, edx
        jne      G_M25387_IG68
        xor      r8, r8
        xor      ecx, ecx
 						;; size=13 bbWeight=2 PerfScore 3.50
 G_M25387_IG18:
        cmp      ecx, 12
-       jb       G_M25387_IG67
+       jl       G_M25387_IG67
        mov      dword ptr [r8], edi
        mov      dword ptr [r8+0x04], esi
        mov      dword ptr [r8+0x08], eax
        add      dword ptr [rbx+0x08], 12
        cmp      byte  ptr [rbp-0xC2], 0
        je       G_M25387_IG64
        mov      edi, dword ptr [rbx+0x08]
        add      edi, -12
        mov      rsi, gword ptr [rbx]
        add      edi, 4
        test     rsi, rsi
        je       SHORT G_M25387_IG19
        cmp      dword ptr [rsi+0x08], edi
        jb       G_M25387_IG68
        mov      eax, edi
        lea      rax, bword ptr [rsi+rax+0x10]
        mov      esi, dword ptr [rsi+0x08]
        sub      esi, edi
        jmp      SHORT G_M25387_IG20
 						;; size=77 bbWeight=2 PerfScore 51.00
 G_M25387_IG19:
        test     edi, edi
        jne      G_M25387_IG68
        xor      rax, rax
        xor      esi, esi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG20:
        cmp      esi, 4
        jl       G_M25387_IG67
        mov      edi, dword ptr [rax]
        or       edi, 0xD1FFAB1E
-       cmp      esi, 4
-       jb       G_M25387_IG67
        mov      dword ptr [rax], edi
        jmp      G_M25387_IG64
-						;; size=33 bbWeight=2 PerfScore 15.50
+						;; size=24 bbWeight=2 PerfScore 13.00
 G_M25387_IG21:
        mov      rdi, rbx
        mov      esi, 3
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+MetadataDb:FindOpenElement(ubyte):int:this
        call     [rdx]System.Text.Json.JsonDocument+MetadataDb:FindOpenElement(ubyte):int:this
        mov      r14d, dword ptr [rbp-0x2C]
        inc      r14d
        inc      r12d
        mov      rdi, gword ptr [rbx]
        lea      ecx, [rax+0x04]
        test     rdi, rdi
        je       SHORT G_M25387_IG22
        cmp      dword ptr [rdi+0x08], ecx
        jb       G_M25387_IG68
        mov      edx, ecx
        lea      rdx, bword ptr [rdi+rdx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, ecx
        jmp      SHORT G_M25387_IG23
 						;; size=64 bbWeight=2 PerfScore 37.00
 G_M25387_IG22:
        test     ecx, ecx
        jne      G_M25387_IG68
        xor      rdx, rdx
        xor      edi, edi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG23:
        cmp      edi, 4
-       jb       G_M25387_IG67
+       jl       G_M25387_IG67
        mov      dword ptr [rdx], r13d
        mov      rdi, gword ptr [rbx]
        lea      ecx, [rax+0x08]
        test     rdi, rdi
        je       SHORT G_M25387_IG24
        cmp      dword ptr [rdi+0x08], ecx
        jb       G_M25387_IG68
        mov      edx, ecx
        lea      rdx, bword ptr [rdi+rdx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, ecx
        jmp      SHORT G_M25387_IG25
 						;; size=46 bbWeight=2 PerfScore 31.00
 G_M25387_IG24:
        test     ecx, ecx
        jne      G_M25387_IG68
        xor      rdx, rdx
        xor      edi, edi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG25:
        cmp      edi, 4
        jl       G_M25387_IG67
-       mov      ecx, dword ptr [rdx]
-       and      ecx, 0xD1FFAB1E
-       or       ecx, r14d
-       cmp      edi, 4
-       jb       G_M25387_IG67
-       mov      dword ptr [rdx], ecx
+       mov      edi, dword ptr [rdx]
+       and      edi, 0xD1FFAB1E
+       or       edi, r14d
+       mov      dword ptr [rdx], edi
        lea      edi, [r13+0x01]
        cmp      edi, r14d
        je       SHORT G_M25387_IG28
        mov      rdi, gword ptr [rbx]
        add      eax, 4
        test     rdi, rdi
        je       SHORT G_M25387_IG26
        cmp      dword ptr [rdi+0x08], eax
        jb       G_M25387_IG68
        mov      ecx, eax
        lea      rcx, bword ptr [rdi+rcx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, eax
        jmp      SHORT G_M25387_IG27
-						;; size=74 bbWeight=2 PerfScore 41.50
+						;; size=65 bbWeight=2 PerfScore 39.00
 G_M25387_IG26:
        test     eax, eax
        jne      G_M25387_IG68
        xor      rcx, rcx
        xor      edi, edi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG27:
        cmp      edi, 4
        jl       G_M25387_IG67
-       mov      eax, dword ptr [rcx]
-       or       eax, 0xD1FFAB1E
-       cmp      edi, 4
-       jb       G_M25387_IG67
-       mov      dword ptr [rcx], eax
-						;; size=27 bbWeight=2 PerfScore 11.50
+       mov      edi, dword ptr [rcx]
+       or       edi, 0xD1FFAB1E
+       mov      dword ptr [rcx], edi
+						;; size=19 bbWeight=2 PerfScore 9.00
 G_M25387_IG28:
        mov      edi, dword ptr [rbx+0x08]
        mov      r13d, edi
        mov      eax, dword ptr [rbp-0x50]
        mov      dword ptr [rbp-0x13C], eax
        mov      rcx, gword ptr [rbx]
        mov      ecx, dword ptr [rcx+0x08]
        add      ecx, -12
        cmp      ecx, edi
        jg       SHORT G_M25387_IG29
        mov      rdi, rbx
        mov      rcx, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
        call     [rcx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
 						;; size=43 bbWeight=2 PerfScore 26.50
 G_M25387_IG29:
        mov      ecx, dword ptr [rbp-0xF8]
        mov      edi, ecx
        mov      eax, dword ptr [rbp-0x13C]
        mov      edx, dword ptr [rbp-0xF4]
        mov      ecx, edx
        shl      ecx, 28
        mov      rdx, gword ptr [rbx]
        mov      esi, dword ptr [rbx+0x08]
        test     rdx, rdx
        je       SHORT G_M25387_IG30
        cmp      dword ptr [rdx+0x08], esi
        jb       G_M25387_IG68
        mov      r8d, esi
        lea      r8, bword ptr [rdx+r8+0x10]
        mov      edx, dword ptr [rdx+0x08]
        sub      edx, esi
        jmp      SHORT G_M25387_IG31
 						;; size=60 bbWeight=2 PerfScore 37.50
 G_M25387_IG30:
        test     esi, esi
        jne      G_M25387_IG68
        xor      r8, r8
        xor      edx, edx
 						;; size=13 bbWeight=2 PerfScore 3.50
 G_M25387_IG31:
        cmp      edx, 12
-       jb       G_M25387_IG67
+       jl       G_M25387_IG67
        mov      dword ptr [r8], edi
        mov      dword ptr [r8+0x04], eax
        mov      dword ptr [r8+0x08], ecx
        add      dword ptr [rbx+0x08], 12
        mov      rdi, gword ptr [rbx]
        add      r13d, 8
        test     rdi, rdi
        je       SHORT G_M25387_IG32
        cmp      dword ptr [rdi+0x08], r13d
        jb       G_M25387_IG68
        mov      eax, r13d
        lea      rax, bword ptr [rdi+rax+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, r13d
        jmp      SHORT G_M25387_IG33
 						;; size=62 bbWeight=2 PerfScore 40.50
 G_M25387_IG32:
        test     r13d, r13d
        jne      G_M25387_IG68
        xor      rax, rax
        xor      edi, edi
 						;; size=13 bbWeight=2 PerfScore 3.50
 G_M25387_IG33:
        cmp      edi, 4
        jl       G_M25387_IG67
-       mov      ecx, dword ptr [rax]
-       and      ecx, 0xD1FFAB1E
-       or       ecx, r14d
-       cmp      edi, 4
-       jb       G_M25387_IG67
-       mov      dword ptr [rax], ecx
+       mov      edi, dword ptr [rax]
+       and      edi, 0xD1FFAB1E
+       or       edi, r14d
+       mov      dword ptr [rax], edi
        mov      rdi, gword ptr [r15]
        mov      eax, dword ptr [r15+0x08]
        mov      ecx, eax
        test     rdi, rdi
        je       SHORT G_M25387_IG34
        cmp      dword ptr [rdi+0x08], ecx
        jb       G_M25387_IG68
        mov      edx, ecx
        lea      rdx, bword ptr [rdi+rdx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, ecx
        jmp      SHORT G_M25387_IG35
-						;; size=68 bbWeight=2 PerfScore 42.00
+						;; size=59 bbWeight=2 PerfScore 39.50
 G_M25387_IG34:
        test     ecx, ecx
        jne      G_M25387_IG68
        xor      rdx, rdx
        xor      edi, edi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG35:
        cmp      edi, 8
        jl       G_M25387_IG67
        mov      r13d, dword ptr [rdx]
        mov      edi, dword ptr [rdx+0x04]
        add      eax, 8
        mov      dword ptr [r15+0x08], eax
        add      r14d, edi
        mov      dword ptr [rbp-0x2C], r14d
        jmp      G_M25387_IG64
 						;; size=34 bbWeight=2 PerfScore 19.50
 G_M25387_IG36:
        test     r14d, r14d
        je       SHORT G_M25387_IG37
        inc      r13d
 						;; size=8 bbWeight=2 PerfScore 3.00
 G_M25387_IG37:
        inc      r12d
        mov      edi, dword ptr [rbx+0x08]
        mov      rdx, gword ptr [rbx]
        mov      edx, dword ptr [rdx+0x08]
        add      edx, -12
        cmp      edi, edx
        jl       SHORT G_M25387_IG38
        mov      rdi, rbx
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
        call     [rdx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
        mov      eax, dword ptr [rbp-0xF4]
 						;; size=40 bbWeight=2 PerfScore 24.50
 G_M25387_IG38:
        mov      ecx, dword ptr [rbp-0xF8]
        mov      edi, ecx
        shl      eax, 28
        mov      rcx, gword ptr [rbx]
        mov      edx, dword ptr [rbx+0x08]
        test     rcx, rcx
        je       SHORT G_M25387_IG39
        cmp      dword ptr [rcx+0x08], edx
        jb       G_M25387_IG68
        mov      esi, edx
        lea      rsi, bword ptr [rcx+rsi+0x10]
        mov      ecx, dword ptr [rcx+0x08]
        sub      ecx, edx
        jmp      SHORT G_M25387_IG40
 						;; size=45 bbWeight=2 PerfScore 33.00
 G_M25387_IG39:
        test     edx, edx
        jne      G_M25387_IG68
        xor      rsi, rsi
        xor      ecx, ecx
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG40:
        cmp      ecx, 12
-       jb       G_M25387_IG67
+       jl       G_M25387_IG67
        mov      dword ptr [rsi], edi
        mov      dword ptr [rsi+0x04], -1
        mov      dword ptr [rsi+0x08], eax
        add      dword ptr [rbx+0x08], 12
        mov      r14d, dword ptr [rbp-0x2C]
        inc      r14d
        cmp      dword ptr [r15+0x08], 8
        jge      SHORT G_M25387_IG41
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+StackRowStack:Enlarge():this
        call     [rax]System.Text.Json.JsonDocument+StackRowStack:Enlarge():this
 						;; size=54 bbWeight=2 PerfScore 32.00
 G_M25387_IG41:
        add      dword ptr [r15+0x08], -8
        mov      rdi, gword ptr [r15]
        mov      esi, dword ptr [r15+0x08]
        test     rdi, rdi
        je       SHORT G_M25387_IG42
        cmp      dword ptr [rdi+0x08], esi
        jb       G_M25387_IG68
        mov      eax, esi
        lea      rax, bword ptr [rdi+rax+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, esi
        jmp      SHORT G_M25387_IG43
 						;; size=40 bbWeight=2 PerfScore 35.50
 G_M25387_IG42:
        test     esi, esi
        jne      G_M25387_IG68
        xor      rax, rax
        xor      edi, edi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG43:
        cmp      edi, 8
-       jb       G_M25387_IG67
+       jl       G_M25387_IG67
        mov      dword ptr [rax], r13d
        mov      dword ptr [rax+0x04], r14d
        xor      r13d, r13d
        xor      r14d, r14d
        mov      dword ptr [rbp-0x2C], r14d
        jmp      G_M25387_IG64
 						;; size=31 bbWeight=2 PerfScore 13.50
 G_M25387_IG44:
        mov      rdi, rbx
        mov      esi, 1
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+MetadataDb:FindOpenElement(ubyte):int:this
        call     [rdx]System.Text.Json.JsonDocument+MetadataDb:FindOpenElement(ubyte):int:this
        mov      dword ptr [rbp-0xFC], eax
        mov      r14d, dword ptr [rbp-0x2C]
        inc      r14d
        inc      r12d
        mov      rdi, gword ptr [rbx]
        lea      ecx, [rax+0x04]
        test     rdi, rdi
        je       SHORT G_M25387_IG45
        cmp      dword ptr [rdi+0x08], ecx
        jb       G_M25387_IG68
        mov      edx, ecx
        lea      rdx, bword ptr [rdi+rdx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, ecx
        jmp      SHORT G_M25387_IG46
 						;; size=70 bbWeight=2 PerfScore 39.00
 G_M25387_IG45:
        test     ecx, ecx
        jne      G_M25387_IG68
        xor      rdx, rdx
        xor      edi, edi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG46:
        cmp      edi, 4
-       jb       G_M25387_IG67
+       jl       G_M25387_IG67
        mov      dword ptr [rdx], r12d
        mov      edi, dword ptr [rbx+0x08]
        mov      dword ptr [rbp-0x100], edi
        mov      edx, dword ptr [rbp-0x50]
        mov      dword ptr [rbp-0x13C], edx
        mov      rsi, gword ptr [rbx]
        mov      esi, dword ptr [rsi+0x08]
        add      esi, -12
        cmp      esi, edi
        jg       SHORT G_M25387_IG47
        mov      rdi, rbx
        mov      rsi, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
        call     [rsi]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
 						;; size=58 bbWeight=2 PerfScore 32.50
 G_M25387_IG47:
        mov      esi, dword ptr [rbp-0xF8]
        mov      edi, esi
        mov      edx, dword ptr [rbp-0x13C]
        mov      r8d, dword ptr [rbp-0xF4]
        mov      esi, r8d
        shl      esi, 28
        mov      r8, gword ptr [rbx]
        mov      r9d, dword ptr [rbx+0x08]
        test     r8, r8
        je       SHORT G_M25387_IG48
        cmp      dword ptr [r8+0x08], r9d
        jb       G_M25387_IG68
        mov      r10d, r9d
        lea      r10, bword ptr [r8+r10+0x10]
        mov      r8d, dword ptr [r8+0x08]
        sub      r8d, r9d
        jmp      SHORT G_M25387_IG49
 						;; size=66 bbWeight=2 PerfScore 37.50
 G_M25387_IG48:
        test     r9d, r9d
        jne      G_M25387_IG68
        xor      r10, r10
        xor      r8d, r8d
 						;; size=15 bbWeight=2 PerfScore 3.50
 G_M25387_IG49:
        cmp      r8d, 12
-       jb       G_M25387_IG67
+       jl       G_M25387_IG67
        mov      dword ptr [r10], edi
        mov      dword ptr [r10+0x04], edx
        mov      dword ptr [r10+0x08], esi
        add      dword ptr [rbx+0x08], 12
        mov      rdi, gword ptr [rbx]
        mov      eax, dword ptr [rbp-0xFC]
        add      eax, 8
        test     rdi, rdi
        je       SHORT G_M25387_IG50
        cmp      dword ptr [rdi+0x08], eax
        jb       G_M25387_IG68
        mov      edx, eax
        lea      rdx, bword ptr [rdi+rdx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, eax
        jmp      SHORT G_M25387_IG51
 						;; size=65 bbWeight=2 PerfScore 42.50
 G_M25387_IG50:
        test     eax, eax
        jne      G_M25387_IG68
        xor      rdx, rdx
        xor      edi, edi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG51:
        cmp      edi, 4
        jl       G_M25387_IG67
-       mov      eax, dword ptr [rdx]
-       and      eax, 0xD1FFAB1E
-       or       eax, r12d
-       cmp      edi, 4
-       jb       G_M25387_IG67
-       mov      dword ptr [rdx], eax
+       mov      edi, dword ptr [rdx]
+       and      edi, 0xD1FFAB1E
+       or       edi, r12d
+       mov      dword ptr [rdx], edi
        mov      rdi, gword ptr [rbx]
        mov      ecx, dword ptr [rbp-0x100]
        add      ecx, 8
        test     rdi, rdi
        je       SHORT G_M25387_IG52
        cmp      dword ptr [rdi+0x08], ecx
        jb       G_M25387_IG68
        mov      eax, ecx
        lea      rax, bword ptr [rdi+rax+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, ecx
        jmp      SHORT G_M25387_IG53
-						;; size=70 bbWeight=2 PerfScore 40.00
+						;; size=62 bbWeight=2 PerfScore 37.50
 G_M25387_IG52:
        test     ecx, ecx
        jne      G_M25387_IG68
        xor      rax, rax
        xor      edi, edi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG53:
        cmp      edi, 4
        jl       G_M25387_IG67
-       mov      ecx, dword ptr [rax]
-       and      ecx, 0xD1FFAB1E
-       or       ecx, r12d
-       cmp      edi, 4
-       jb       G_M25387_IG67
-       mov      dword ptr [rax], ecx
+       mov      edi, dword ptr [rax]
+       and      edi, 0xD1FFAB1E
+       or       edi, r12d
+       mov      dword ptr [rax], edi
        mov      rdi, gword ptr [r15]
        mov      eax, dword ptr [r15+0x08]
        mov      ecx, eax
        test     rdi, rdi
        je       SHORT G_M25387_IG54
        cmp      dword ptr [rdi+0x08], ecx
        jb       G_M25387_IG68
        mov      edx, ecx
        lea      rdx, bword ptr [rdi+rdx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, ecx
        jmp      SHORT G_M25387_IG55
-						;; size=68 bbWeight=2 PerfScore 42.00
+						;; size=59 bbWeight=2 PerfScore 39.50
 G_M25387_IG54:
        test     ecx, ecx
        jne      G_M25387_IG68
        xor      rdx, rdx
        xor      edi, edi
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG55:
        cmp      edi, 8
        jl       G_M25387_IG67
        mov      edi, dword ptr [rdx]
        add      eax, 8
        mov      dword ptr [r15+0x08], eax
        add      r12d, edi
        mov      dword ptr [rbp-0x2C], r14d
        jmp      G_M25387_IG64
 						;; size=30 bbWeight=2 PerfScore 15.50
 G_M25387_IG56:
        test     r14d, r14d
        je       SHORT G_M25387_IG57
        inc      r13d
 						;; size=8 bbWeight=2 PerfScore 3.00
 G_M25387_IG57:
        mov      r14d, dword ptr [rbp-0x2C]
        inc      r14d
        mov      dword ptr [rbp-0x2C], r14d
        mov      edi, dword ptr [rbx+0x08]
        mov      rdx, gword ptr [rbx]
        mov      edx, dword ptr [rdx+0x08]
        add      edx, -12
        cmp      edi, edx
        jl       SHORT G_M25387_IG58
        mov      rdi, rbx
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
        call     [rdx]System.Text.Json.JsonDocument+MetadataDb:Enlarge():this
        mov      eax, dword ptr [rbp-0xF4]
 						;; size=48 bbWeight=2 PerfScore 28.50
 G_M25387_IG58:
        mov      ecx, dword ptr [rbp-0xF8]
        mov      edi, ecx
        shl      eax, 28
        mov      rcx, gword ptr [rbx]
        mov      edx, dword ptr [rbx+0x08]
        test     rcx, rcx
        je       SHORT G_M25387_IG59
        cmp      dword ptr [rcx+0x08], edx
        jb       G_M25387_IG68
        mov      esi, edx
        lea      rsi, bword ptr [rcx+rsi+0x10]
        mov      ecx, dword ptr [rcx+0x08]
        sub      ecx, edx
        jmp      SHORT G_M25387_IG60
 						;; size=45 bbWeight=2 PerfScore 33.00
 G_M25387_IG59:
        test     edx, edx
        jne      G_M25387_IG68
        xor      rsi, rsi
        xor      ecx, ecx
 						;; size=12 bbWeight=2 PerfScore 3.50
 G_M25387_IG60:
        cmp      ecx, 12
-       jb       G_M25387_IG67
+       jl       G_M25387_IG67
        mov      dword ptr [rsi], edi
        mov      dword ptr [rsi+0x04], -1
        mov      dword ptr [rsi+0x08], eax
        add      dword ptr [rbx+0x08], 12
        inc      r12d
        cmp      dword ptr [r15+0x08], 8
        jge      SHORT G_M25387_IG61
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+StackRowStack:Enlarge():this
        call     [rax]System.Text.Json.JsonDocument+StackRowStack:Enlarge():this
 						;; size=50 bbWeight=2 PerfScore 30.00
 G_M25387_IG61:
        add      dword ptr [r15+0x08], -8
        mov      rdi, gword ptr [r15]
        mov      eax, dword ptr [r15+0x08]
        test     rdi, rdi
        je       SHORT G_M25387_IG62
        cmp      dword ptr [rdi+0x08], eax
        jb       G_M25387_IG68
        mov      ecx, eax
        lea      rcx, bword ptr [rdi+rcx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        sub      edi, eax
        jmp      SHORT G_M25387_IG63
 						;; size=40 bbWeight=2 PerfScore 35.50
 G_M25387_IG62:
        test     eax, eax
        jne      SHORT G_M25387_IG68
        xor      rcx, rcx
        xor      edi, edi
 						;; size=8 bbWeight=2 PerfScore 3.50
 G_M25387_IG63:
        cmp      edi, 8
-       jb       SHORT G_M25387_IG67
+       jl       SHORT G_M25387_IG67
        mov      dword ptr [rcx], r12d
        mov      dword ptr [rcx+0x04], -1
        xor      r12d, r12d
 						;; size=18 bbWeight=2 PerfScore 7.00
 G_M25387_IG64:
        cmp      byte  ptr [rbp-0xCA], 0
        sete     r14b
        movzx    r14, r14b
        lea      rdi, [rbp-0xF0]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
        test     eax, eax
        jne      G_M25387_IG03
 						;; size=42 bbWeight=4 PerfScore 33.00
 G_M25387_IG65:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonDocument+MetadataDb:CompleteAllocations():this
        call     [rax]System.Text.Json.JsonDocument+MetadataDb:CompleteAllocations():this
        nop      
 						;; size=16 bbWeight=1 PerfScore 3.75
 G_M25387_IG66:
        add      rsp, 344
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=1 PerfScore 4.25
 G_M25387_IG67:
        mov      edi, 40
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 G_M25387_IG68:
        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 2518, prolog size 79, PerfScore 1358.92, instruction count 692, allocated bytes for code 2518 (MethodHash=71ac9cd4) for method System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (FullOpts)
+; Total bytes of code 2457, prolog size 79, PerfScore 1341.42, instruction count 678, allocated bytes for code 2457 (MethodHash=71ac9cd4) for method System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (FullOpts)
-43 (-31.16 % of base) - System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
 ; Assembly listing for method System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (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; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
 ;  V02 arg2         [V02,T00] (  4,  3   )   byref  ->  rbx         single-def
 ;* V03 loc0         [V03    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T05] (  3,  1.50)    long  ->  rax         "Inline return value spill temp"
 ;* V06 tmp2         [V06    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V08 tmp4         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V09 tmp5         [V09,T06] (  2,  1   )    long  ->  rax         ld-addr-op single-def "Inline stloc first use temp"
 ;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V13 tmp9         [V13,T03] (  3,  2   )   byref  ->  rsi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp9         [V13,T02] (  3,  2   )   byref  ->  rsi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
 ;  V14 tmp10        [V14,T01] (  4,  2.50)     int  ->  rax         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V15 tmp11        [V15,T04] (  2,  1.50)   byref  ->  r14         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V16 tmp12        [V16,T02] (  3,  2.50)     int  ->  r15         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V15 tmp11        [V15,T04] (  2,  1.50)   byref  ->  r15         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V16 tmp12        [V16,T03] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp14        [V18    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V19 tmp15        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    single-def "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V23 tmp19        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V12._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp20        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M55114_IG01:
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x10]
        mov      eax, esi
        mov      rsi, rdi
-       mov      r14, rdx
-       mov      r15d, ecx
+       mov      r15, rdx
        mov      rbx, r8
-						;; size=26 bbWeight=1 PerfScore 6.75
+						;; size=20 bbWeight=1 PerfScore 4.50
 G_M55114_IG02:
-       cmp      r15d, 8
+       cmp      ecx, 8
        jl       SHORT G_M55114_IG07
-						;; size=6 bbWeight=1 PerfScore 1.25
+						;; size=5 bbWeight=1 PerfScore 1.25
 G_M55114_IG03:
        cmp      eax, 16
        jge      SHORT G_M55114_IG04
        mov      edx, eax
        xor      edi, edi
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.Crc64:UpdateScalar(ulong,System.ReadOnlySpan`1[ubyte]):ulong
        call     [rax]System.IO.Hashing.Crc64:UpdateScalar(ulong,System.ReadOnlySpan`1[ubyte]):ulong
        jmp      SHORT G_M55114_IG05
 						;; size=23 bbWeight=0.50 PerfScore 3.50
 G_M55114_IG04:
        mov      edx, eax
        xor      edi, edi
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong
        call     [rax]System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong
 						;; size=16 bbWeight=0.50 PerfScore 1.88
 G_M55114_IG05:
        bswap    rax
-       cmp      r15d, 8
-       jb       SHORT G_M55114_IG09
-       mov      qword ptr [r14], rax
+       mov      qword ptr [r15], rax
        mov      dword ptr [rbx], 8
        mov      eax, 1
-						;; size=23 bbWeight=0.50 PerfScore 2.25
+						;; size=17 bbWeight=0.50 PerfScore 1.62
 G_M55114_IG06:
-       add      rsp, 8
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M55114_IG07:
        xor      eax, eax
        mov      dword ptr [rbx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M55114_IG08:
-       add      rsp, 8
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M55114_IG09:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 
-; Total bytes of code 138, prolog size 12, PerfScore 19.50, instruction count 48, allocated bytes for code 138 (MethodHash=5ef028b5) for method System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
+; Total bytes of code 95, prolog size 9, PerfScore 15.88, instruction count 35, allocated bytes for code 95 (MethodHash=5ef028b5) for method System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
-43 (-39.81 % of base) - System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte
 ; Assembly listing for method System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte (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; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
 ;  V02 arg2         [V02,T00] (  4,  3   )   byref  ->  rbx         single-def
 ;  V03 arg3         [V03,T01] (  3,  2.50)     int  ->   r9         single-def
 ;  V04 loc0         [V04,T06] (  2,  1   )     int  ->  rax         single-def
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T07] (  2,  1   )     int  ->  rax         ld-addr-op single-def "Inline stloc first use temp"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V10 tmp5         [V10,T03] (  2,  1.50)   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
 ;  V11 tmp6         [V11,T05] (  2,  1.50)     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V12 tmp7         [V12,T04] (  2,  1.50)   byref  ->  r14         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp8         [V13,T02] (  3,  2.50)     int  ->  r15         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V12 tmp7         [V12,T04] (  2,  1.50)   byref  ->  r15         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp8         [V13,T02] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V14 tmp9         [V14    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V15 tmp10        [V15    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V16 tmp11        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    single-def "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V18 tmp13        [V18    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V19 tmp14        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M36118_IG01:
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
-       mov      r14, rdx
-       mov      r15d, ecx
+       lea      rbp, [rsp+0x10]
+       mov      r15, rdx
        mov      rbx, r8
-						;; size=21 bbWeight=1 PerfScore 6.25
+						;; size=15 bbWeight=1 PerfScore 4.00
 G_M36118_IG02:
-       cmp      r15d, 4
+       cmp      ecx, 4
        jl       SHORT G_M36118_IG05
-						;; size=6 bbWeight=1 PerfScore 1.25
+						;; size=5 bbWeight=1 PerfScore 1.25
 G_M36118_IG03:
        mov      edx, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint
        call     [rax]System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint
        bswap    eax
-       cmp      r15d, 4
-       jb       SHORT G_M36118_IG07
-       mov      dword ptr [r14], eax
+       mov      dword ptr [r15], eax
        mov      dword ptr [rbx], 4
        mov      eax, 1
-						;; size=37 bbWeight=0.50 PerfScore 3.75
+						;; size=31 bbWeight=0.50 PerfScore 3.12
 G_M36118_IG04:
-       add      rsp, 8
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M36118_IG05:
        xor      eax, eax
        mov      dword ptr [rbx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M36118_IG06:
-       add      rsp, 8
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M36118_IG07:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 
-; Total bytes of code 108, prolog size 12, PerfScore 15.12, instruction count 38, allocated bytes for code 108 (MethodHash=c50672e9) for method System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte (FullOpts)
+; Total bytes of code 65, prolog size 9, PerfScore 11.50, instruction count 25, allocated bytes for code 65 (MethodHash=c50672e9) for method System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte (FullOpts)
-43 (-39.45 % of base) - System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte
 ; Assembly listing for method System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (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; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
 ;  V02 arg2         [V02,T00] (  4,  3   )   byref  ->  rbx         single-def
 ;  V03 arg3         [V03,T01] (  3,  2.50)    long  ->   r9         single-def
 ;  V04 loc0         [V04,T06] (  2,  1   )    long  ->  rax         single-def
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T07] (  2,  1   )    long  ->  rax         ld-addr-op single-def "Inline stloc first use temp"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V10 tmp5         [V10,T03] (  2,  1.50)   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
 ;  V11 tmp6         [V11,T05] (  2,  1.50)     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V12 tmp7         [V12,T04] (  2,  1.50)   byref  ->  r14         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp8         [V13,T02] (  3,  2.50)     int  ->  r15         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V12 tmp7         [V12,T04] (  2,  1.50)   byref  ->  r15         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp8         [V13,T02] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V14 tmp9         [V14    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V15 tmp10        [V15    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V16 tmp11        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    single-def "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V18 tmp13        [V18    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V19 tmp14        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M59884_IG01:
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
-       mov      r14, rdx
-       mov      r15d, ecx
+       lea      rbp, [rsp+0x10]
+       mov      r15, rdx
        mov      rbx, r8
-						;; size=21 bbWeight=1 PerfScore 6.25
+						;; size=15 bbWeight=1 PerfScore 4.00
 G_M59884_IG02:
-       cmp      r15d, 8
+       cmp      ecx, 8
        jl       SHORT G_M59884_IG05
-						;; size=6 bbWeight=1 PerfScore 1.25
+						;; size=5 bbWeight=1 PerfScore 1.25
 G_M59884_IG03:
        mov      rdx, r9
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.XxHash64:HashToUInt64(System.ReadOnlySpan`1[ubyte],long):ulong
        call     [rax]System.IO.Hashing.XxHash64:HashToUInt64(System.ReadOnlySpan`1[ubyte],long):ulong
        bswap    rax
-       cmp      r15d, 8
-       jb       SHORT G_M59884_IG07
-       mov      qword ptr [r14], rax
+       mov      qword ptr [r15], rax
        mov      dword ptr [rbx], 8
        mov      eax, 1
-						;; size=38 bbWeight=0.50 PerfScore 4.00
+						;; size=32 bbWeight=0.50 PerfScore 3.38
 G_M59884_IG04:
-       add      rsp, 8
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M59884_IG05:
        xor      eax, eax
        mov      dword ptr [rbx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M59884_IG06:
-       add      rsp, 8
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M59884_IG07:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 
-; Total bytes of code 109, prolog size 12, PerfScore 15.38, instruction count 38, allocated bytes for code 109 (MethodHash=83591613) for method System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (FullOpts)
+; Total bytes of code 66, prolog size 9, PerfScore 11.75, instruction count 25, allocated bytes for code 66 (MethodHash=83591613) for method System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (FullOpts)
-37 (-17.70 % of base) - System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte
 ; Assembly listing for method System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],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; 3 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
 ;  V02 arg2         [V02,T03] (  4,  3   )   byref  ->  rbx         single-def
 ;  V03 loc0         [V03,T13] (  2,  1   )     int  ->  rax         single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T11] (  3,  1.50)     int  ->  r13         "Inline return value spill temp"
+;  V05 tmp1         [V05,T11] (  3,  1.50)     int  ->  r14         "Inline return value spill temp"
 ;* V06 tmp2         [V06    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V08 tmp4         [V08    ] (  0,  0   )     int  ->  zero-ref   
 ;* V09 tmp5         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp6         [V10    ] (  0,  0   )     int  ->  zero-ref   
 ;* V11 tmp7         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp8         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp9         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
 ;* V16 tmp12        [V16,T14] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp13        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V18 tmp14        [V18,T00] (  5, 26   )     int  ->  rdx         "Inlining Arg"
 ;  V19 tmp15        [V19,T02] (  3, 12   )   ubyte  ->   r8         "Inline stloc first use temp"
 ;* V20 tmp16        [V20    ] (  0,  0   )  struct (16) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V23 tmp19        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V24 tmp20        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V25 tmp21        [V25,T09] (  3,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V26 tmp22        [V26,T05] (  4,  2.50)     int  ->  [rbp-0x24]  single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V27 tmp23        [V27,T10] (  2,  1.50)   byref  ->  r14         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V28 tmp24        [V28,T06] (  3,  2.50)     int  ->  r15         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp21        [V25,T08] (  3,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V26 tmp22        [V26,T05] (  4,  2.50)     int  ->  [rbp-0x1C]  single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V27 tmp23        [V27,T10] (  2,  1.50)   byref  ->  r15         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V28 tmp24        [V28,T09] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp25        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp26        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp27        [V31,T07] (  2,  4.50)   byref  ->  rax         single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;  V31 tmp27        [V31,T06] (  2,  4.50)   byref  ->  rax         single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V32 tmp28        [V32,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V15._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp29        [V33,T08] (  2,  4.50)   byref  ->  rdi         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;  V33 tmp29        [V33,T07] (  2,  4.50)   byref  ->  rdi         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
 ;  V34 tmp30        [V34,T04] (  3,  5   )     int  ->  rsi         single-def "field V17._length (fldOffset=0x8)" P-INDEP
 ;  V35 tmp31        [V35,T12] (  2,  1   )   byref  ->  rax         single-def "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V36 tmp32        [V36,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V20._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp33        [V37    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;* V38 tmp34        [V38    ] (  0,  0   )     int  ->  zero-ref    single-def "field V21._length (fldOffset=0x8)" P-INDEP
 ;* V39 tmp35        [V39    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V40 tmp36        [V40    ] (  0,  0   )     int  ->  zero-ref    single-def "field V23._length (fldOffset=0x8)" P-INDEP
 ;* V41 tmp37        [V41    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V24._reference (fldOffset=0x0)" P-INDEP
 ;* V42 tmp38        [V42    ] (  0,  0   )     int  ->  zero-ref    "field V24._length (fldOffset=0x8)" P-INDEP
 ;  V43 rat0         [V43,T01] (  5, 16.50)    long  ->  rcx         "Widened IV V16"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M17033_IG01:
        push     rbp
        push     r15
        push     r14
-       push     r13
        push     rbx
-       sub      rsp, 16
-       lea      rbp, [rsp+0x30]
-       mov      r14, rdx
-       mov      r15d, ecx
+       push     rax
+       lea      rbp, [rsp+0x20]
+       mov      r15, rdx
        mov      rbx, r8
-						;; size=26 bbWeight=1 PerfScore 6.50
+						;; size=18 bbWeight=1 PerfScore 6.00
 G_M17033_IG02:
-       cmp      r15d, 4
+       cmp      ecx, 4
        jl       G_M17033_IG09
-						;; size=10 bbWeight=1 PerfScore 1.25
+						;; size=9 bbWeight=1 PerfScore 1.25
 G_M17033_IG03:
        cmp      esi, 16
        jge      SHORT G_M17033_IG06
        mov      edx, -1
        mov      rax, 0xD1FFAB1E      ; static handle
        xor      ecx, ecx
        test     esi, esi
        jle      SHORT G_M17033_IG05
        align    [0 bytes for IG04]
 						;; size=26 bbWeight=0.50 PerfScore 1.62
 G_M17033_IG04:
        movzx    r8, byte  ptr [rdi+rcx]
        xor      r8d, edx
        movzx    r8, r8b
        cmp      r8d, 256
-       jae      SHORT G_M17033_IG12
+       jae      SHORT G_M17033_IG11
        shr      edx, 8
        xor      edx, dword ptr [rax+4*r8]
        inc      ecx
        cmp      ecx, esi
        jl       SHORT G_M17033_IG04
 						;; size=34 bbWeight=4 PerfScore 35.00
 G_M17033_IG05:
-       mov      r13d, edx
+       mov      r14d, edx
        jmp      SHORT G_M17033_IG07
 						;; size=5 bbWeight=0.50 PerfScore 1.12
 G_M17033_IG06:
-       mov      dword ptr [rbp-0x24], esi
+       mov      dword ptr [rbp-0x1C], esi
        mov      rsi, rdi
-       mov      edx, dword ptr [rbp-0x24]
+       mov      edx, dword ptr [rbp-0x1C]
        mov      edi, -1
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint
        call     [rax]System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint
-       mov      r13d, eax
+       mov      r14d, eax
 						;; size=29 bbWeight=0.50 PerfScore 3.00
 G_M17033_IG07:
-       mov      eax, r13d
+       mov      eax, r14d
        not      eax
-       cmp      r15d, 4
-       jb       SHORT G_M17033_IG11
-       mov      dword ptr [r14], eax
+       mov      dword ptr [r15], eax
        mov      dword ptr [rbx], 4
        mov      eax, 1
-						;; size=25 bbWeight=0.50 PerfScore 2.00
+						;; size=19 bbWeight=0.50 PerfScore 1.38
 G_M17033_IG08:
-       add      rsp, 16
+       add      rsp, 8
        pop      rbx
-       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=13 bbWeight=0.50 PerfScore 1.88
+						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M17033_IG09:
        xor      eax, eax
        mov      dword ptr [rbx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M17033_IG10:
-       add      rsp, 16
+       add      rsp, 8
        pop      rbx
-       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=13 bbWeight=0.50 PerfScore 1.88
+						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M17033_IG11:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M17033_IG12:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 209, prolog size 26, PerfScore 54.88, instruction count 68, allocated bytes for code 209 (MethodHash=6cb4bd76) for method System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
+; Total bytes of code 172, prolog size 18, PerfScore 53.25, instruction count 58, allocated bytes for code 172 (MethodHash=6cb4bd76) for method System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts)
-31 (-16.67 % of base) - System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int
 ; Assembly listing for method System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (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; 3 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
 ;  V02 loc0         [V02,T11] (  2,  2   )     int  ->  rax         single-def
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T10] (  3,  2   )     int  ->  r14         "Inline return value spill temp"
+;  V04 tmp1         [V04,T10] (  3,  2   )     int  ->  r15         "Inline return value spill temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref   
 ;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp7         [V10    ] (  0,  0   )     int  ->  zero-ref   
 ;* V11 tmp8         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp9         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp10        [V13    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
 ;* V15 tmp12        [V15,T13] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V16 tmp13        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V17 tmp14        [V17,T00] (  5, 26   )     int  ->  rdx         "Inlining Arg"
 ;  V18 tmp15        [V18,T02] (  3, 12   )   ubyte  ->   r8         "Inline stloc first use temp"
 ;* V19 tmp16        [V19    ] (  0,  0   )  struct (16) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
 ;* V20 tmp17        [V20    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V22 tmp19        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V23 tmp20        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V24 tmp21        [V24,T08] (  3,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp22        [V25,T03] (  4,  3   )     int  ->  [rbp-0x1C]  single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V26 tmp23        [V26,T09] (  2,  2   )   byref  ->  r15         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp24        [V27,T04] (  3,  3   )     int  ->  rbx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V24 tmp21        [V24,T07] (  3,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp22        [V25,T03] (  4,  3   )     int  ->  [rbp-0x14]  single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V26 tmp23        [V26,T08] (  2,  2   )   byref  ->  rbx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V27 tmp24        [V27,T09] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp25        [V28    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp27        [V30,T06] (  2,  4.50)   byref  ->  rax         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V30 tmp27        [V30,T05] (  2,  4.50)   byref  ->  rax         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp28        [V31,T14] (  0,  0   )     int  ->  zero-ref    single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp29        [V32,T07] (  2,  4.50)   byref  ->  rdi         single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;  V33 tmp30        [V33,T05] (  3,  5   )     int  ->  rsi         single-def "field V16._length (fldOffset=0x8)" P-INDEP
+;  V32 tmp29        [V32,T06] (  2,  4.50)   byref  ->  rdi         single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V33 tmp30        [V33,T04] (  3,  5   )     int  ->  rsi         single-def "field V16._length (fldOffset=0x8)" P-INDEP
 ;  V34 tmp31        [V34,T12] (  2,  1   )   byref  ->  rax         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V35 tmp32        [V35,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V36 tmp33        [V36    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V37 tmp34        [V37    ] (  0,  0   )     int  ->  zero-ref    single-def "field V20._length (fldOffset=0x8)" P-INDEP
 ;* V38 tmp35        [V38    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp36        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V40 tmp37        [V40    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V41 tmp38        [V41    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;  V42 rat0         [V42,T01] (  5, 16.50)    long  ->  rcx         "Widened IV V15"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M38940_IG01:
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       push     rax
+       sub      rsp, 16
        lea      rbp, [rsp+0x20]
-       mov      r15, rdx
-       mov      ebx, ecx
-						;; size=17 bbWeight=1 PerfScore 6.00
+       mov      rbx, rdx
+						;; size=16 bbWeight=1 PerfScore 4.00
 G_M38940_IG02:
-       cmp      ebx, 4
-       jl       G_M38940_IG10
+       cmp      ecx, 4
+       jl       SHORT G_M38940_IG09
        cmp      esi, 16
        jge      SHORT G_M38940_IG06
-						;; size=14 bbWeight=1 PerfScore 2.50
+						;; size=10 bbWeight=1 PerfScore 2.50
 G_M38940_IG03:
        mov      edx, -1
        mov      rax, 0xD1FFAB1E      ; static handle
        xor      ecx, ecx
        test     esi, esi
        jle      SHORT G_M38940_IG05
        align    [0 bytes for IG04]
 						;; size=21 bbWeight=0.50 PerfScore 1.00
 G_M38940_IG04:
        movzx    r8, byte  ptr [rdi+rcx]
        xor      r8d, edx
        movzx    r8, r8b
        cmp      r8d, 256
-       jae      SHORT G_M38940_IG11
+       jae      SHORT G_M38940_IG10
        shr      edx, 8
        xor      edx, dword ptr [rax+4*r8]
        inc      ecx
        cmp      ecx, esi
        jl       SHORT G_M38940_IG04
 						;; size=34 bbWeight=4 PerfScore 35.00
 G_M38940_IG05:
-       mov      r14d, edx
+       mov      r15d, edx
        jmp      SHORT G_M38940_IG07
 						;; size=5 bbWeight=0.50 PerfScore 1.12
 G_M38940_IG06:
-       mov      dword ptr [rbp-0x1C], esi
+       mov      dword ptr [rbp-0x14], esi
        mov      rsi, rdi
-       mov      edx, dword ptr [rbp-0x1C]
+       mov      edx, dword ptr [rbp-0x14]
        mov      edi, -1
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint
        call     [rax]System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint
-       mov      r14d, eax
+       mov      r15d, eax
 						;; size=29 bbWeight=0.50 PerfScore 3.00
 G_M38940_IG07:
-       mov      eax, r14d
+       mov      eax, r15d
        not      eax
-       cmp      ebx, 4
-       jb       SHORT G_M38940_IG09
-       mov      dword ptr [r15], eax
+       mov      dword ptr [rbx], eax
        mov      eax, 4
-						;; size=18 bbWeight=1 PerfScore 3.00
+						;; size=12 bbWeight=1 PerfScore 1.75
 G_M38940_IG08:
-       add      rsp, 8
+       add      rsp, 16
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=1 PerfScore 3.25
+						;; size=9 bbWeight=1 PerfScore 2.75
 G_M38940_IG09:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M38940_IG10:
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
        call     [rax]System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M38940_IG11:
+G_M38940_IG10:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 186, prolog size 17, PerfScore 54.88, instruction count 58, allocated bytes for code 186 (MethodHash=b30467e3) for method System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
+; Total bytes of code 155, prolog size 16, PerfScore 51.12, instruction count 49, allocated bytes for code 159 (MethodHash=b30467e3) for method System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
-25 (-29.41 % of base) - System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int
 ; Assembly listing for method System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (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; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
 ;  V02 arg2         [V02,T00] (  3,  3   )     int  ->   r8         single-def
 ;  V03 loc0         [V03,T05] (  2,  2   )     int  ->  rax         single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T06] (  2,  2   )     int  ->  rax         ld-addr-op single-def "Inline stloc first use temp"
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V09 tmp5         [V09,T02] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp6         [V10,T04] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V11 tmp7         [V11,T03] (  2,  2   )   byref  ->  r15         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V12 tmp8         [V12,T01] (  3,  3   )     int  ->  rbx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp5         [V09,T01] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V10 tmp6         [V10,T03] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V11 tmp7         [V11,T02] (  2,  2   )   byref  ->  rbx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V12 tmp8         [V12,T04] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V13 tmp9         [V13    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V15 tmp11        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp14        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M27075_IG01:
        push     rbp
-       push     r15
        push     rbx
+       push     rax
        lea      rbp, [rsp+0x10]
-       mov      r15, rdx
-       mov      ebx, ecx
-						;; size=14 bbWeight=1 PerfScore 4.00
+       mov      rbx, rdx
+						;; size=11 bbWeight=1 PerfScore 3.75
 G_M27075_IG02:
-       cmp      ebx, 4
-       jl       SHORT G_M27075_IG05
+       cmp      ecx, 4
+       jl       SHORT G_M27075_IG04
        mov      edx, r8d
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint
        call     [rax]System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint
        bswap    eax
-       cmp      ebx, 4
-       jb       SHORT G_M27075_IG04
-       mov      dword ptr [r15], eax
+       mov      dword ptr [rbx], eax
        mov      eax, 4
-						;; size=35 bbWeight=1 PerfScore 7.75
+						;; size=29 bbWeight=1 PerfScore 6.50
 G_M27075_IG03:
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-						;; size=5 bbWeight=1 PerfScore 2.50
+						;; size=7 bbWeight=1 PerfScore 2.25
 G_M27075_IG04:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M27075_IG05:
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
        call     [rax]System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 85, prolog size 9, PerfScore 14.25, instruction count 27, allocated bytes for code 85 (MethodHash=fb2a963c) for method System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 12.50, instruction count 20, allocated bytes for code 60 (MethodHash=fb2a963c) for method System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (FullOpts)
-24 (-20.87 % of base) - System.IO.Hashing.Crc64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int
 ; Assembly listing for method System.IO.Hashing.Crc64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (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; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
 ;* V02 loc0         [V02    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T04] (  3,  2   )    long  ->  rax         "Inline return value spill temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp4         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V08 tmp5         [V08,T05] (  2,  2   )    long  ->  rax         ld-addr-op single-def "Inline stloc first use temp"
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V10 tmp7         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V11 tmp8         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V12 tmp9         [V12,T02] (  3,  2   )   byref  ->  rsi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V12 tmp9         [V12,T01] (  3,  2   )   byref  ->  rsi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
 ;  V13 tmp10        [V13,T00] (  4,  3   )     int  ->  rax         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp11        [V14,T03] (  2,  2   )   byref  ->  r15         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp12        [V15,T01] (  3,  3   )     int  ->  rbx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp11        [V14,T02] (  2,  2   )   byref  ->  rbx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V15 tmp12        [V15,T03] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V16 tmp13        [V16    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp14        [V17    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V19 tmp16        [V19    ] (  0,  0   )     int  ->  zero-ref    single-def "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    single-def "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M59327_IG01:
        push     rbp
-       push     r15
        push     rbx
+       push     rax
        lea      rbp, [rsp+0x10]
        mov      eax, esi
        mov      rsi, rdi
-       mov      r15, rdx
-       mov      ebx, ecx
-						;; size=19 bbWeight=1 PerfScore 4.50
+       mov      rbx, rdx
+						;; size=16 bbWeight=1 PerfScore 4.25
 G_M59327_IG02:
-       cmp      ebx, 8
-       jl       SHORT G_M59327_IG08
+       cmp      ecx, 8
+       jl       SHORT G_M59327_IG07
        cmp      eax, 16
        jge      SHORT G_M59327_IG04
 						;; size=10 bbWeight=1 PerfScore 2.50
 G_M59327_IG03:
        mov      edx, eax
        xor      edi, edi
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.Crc64:UpdateScalar(ulong,System.ReadOnlySpan`1[ubyte]):ulong
        call     [rax]System.IO.Hashing.Crc64:UpdateScalar(ulong,System.ReadOnlySpan`1[ubyte]):ulong
        jmp      SHORT G_M59327_IG05
 						;; size=18 bbWeight=0.50 PerfScore 2.88
 G_M59327_IG04:
        mov      edx, eax
        xor      edi, edi
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong
        call     [rax]System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong
 						;; size=16 bbWeight=0.50 PerfScore 1.88
 G_M59327_IG05:
        bswap    rax
-       cmp      ebx, 8
-       jb       SHORT G_M59327_IG07
-       mov      qword ptr [r15], rax
+       mov      qword ptr [rbx], rax
        mov      eax, 8
-						;; size=16 bbWeight=1 PerfScore 3.50
+						;; size=11 bbWeight=1 PerfScore 2.25
 G_M59327_IG06:
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-						;; size=5 bbWeight=1 PerfScore 2.50
+						;; size=7 bbWeight=1 PerfScore 2.25
 G_M59327_IG07:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M59327_IG08:
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
        call     [rax]System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 115, prolog size 9, PerfScore 17.75, instruction count 37, allocated bytes for code 115 (MethodHash=ca6f1840) for method System.IO.Hashing.Crc64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
+; Total bytes of code 91, prolog size 8, PerfScore 16.00, instruction count 30, allocated bytes for code 91 (MethodHash=ca6f1840) for method System.IO.Hashing.Crc64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
-24 (-27.91 % of base) - System.IO.Hashing.XxHash64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],long):int
 ; Assembly listing for method System.IO.Hashing.XxHash64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],long):int (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; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
 ;  V02 arg2         [V02,T00] (  3,  3   )    long  ->   r8         single-def
 ;  V03 loc0         [V03,T05] (  2,  2   )    long  ->  rax         single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T06] (  2,  2   )    long  ->  rax         ld-addr-op single-def "Inline stloc first use temp"
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V09 tmp5         [V09,T02] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V10 tmp6         [V10,T04] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V11 tmp7         [V11,T03] (  2,  2   )   byref  ->  r15         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V12 tmp8         [V12,T01] (  3,  3   )     int  ->  rbx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp5         [V09,T01] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V10 tmp6         [V10,T03] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V11 tmp7         [V11,T02] (  2,  2   )   byref  ->  rbx         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V12 tmp8         [V12,T04] (  2,  2   )     int  ->  rcx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V13 tmp9         [V13    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V15 tmp11        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp14        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M49657_IG01:
        push     rbp
-       push     r15
        push     rbx
+       push     rax
        lea      rbp, [rsp+0x10]
-       mov      r15, rdx
-       mov      ebx, ecx
-						;; size=14 bbWeight=1 PerfScore 4.00
+       mov      rbx, rdx
+						;; size=11 bbWeight=1 PerfScore 3.75
 G_M49657_IG02:
-       cmp      ebx, 8
-       jl       SHORT G_M49657_IG05
+       cmp      ecx, 8
+       jl       SHORT G_M49657_IG04
        mov      rdx, r8
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.XxHash64:HashToUInt64(System.ReadOnlySpan`1[ubyte],long):ulong
        call     [rax]System.IO.Hashing.XxHash64:HashToUInt64(System.ReadOnlySpan`1[ubyte],long):ulong
        bswap    rax
-       cmp      ebx, 8
-       jb       SHORT G_M49657_IG04
-       mov      qword ptr [r15], rax
+       mov      qword ptr [rbx], rax
        mov      eax, 8
-						;; size=36 bbWeight=1 PerfScore 8.25
+						;; size=31 bbWeight=1 PerfScore 7.00
 G_M49657_IG03:
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-						;; size=5 bbWeight=1 PerfScore 2.50
+						;; size=7 bbWeight=1 PerfScore 2.25
 G_M49657_IG04:
-       mov      edi, 40
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
-       int3     
-						;; size=18 bbWeight=0 PerfScore 0.00
-G_M49657_IG05:
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
        call     [rax]System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 86, prolog size 9, PerfScore 14.75, instruction count 27, allocated bytes for code 86 (MethodHash=3cb63e06) for method System.IO.Hashing.XxHash64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],long):int (FullOpts)
+; Total bytes of code 62, prolog size 8, PerfScore 13.00, instruction count 20, allocated bytes for code 62 (MethodHash=3cb63e06) for method System.IO.Hashing.XxHash64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],long):int (FullOpts)
-23 (-20.72 % of base) - System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this
 ; Assembly listing for method System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte: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; 7 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  rdi         this class-hnd single-def <System.Net.IPAddress>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
 ;  V02 arg2         [V02,T00] (  6,  4   )   byref  ->  rcx         single-def
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T05] (  3,  1.50)     ref  ->   r8         class-hnd single-def "Inline stloc first use temp" <ushort[]>
 ;  V05 tmp2         [V05,T07] (  5,  2.50)  simd16  ->  mm0         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ushort]>
 ;* V06 tmp3         [V06    ] (  0,  0   )  simd16  ->  zero-ref    "impAppendStmt"
 ;* V07 tmp4         [V07    ] (  0,  0   )  simd16  ->  zero-ref    "spilled call-like call argument"
 ;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V10 tmp7         [V10,T06] (  2,  1   )     int  ->  rax         ld-addr-op "Inline stloc first use temp"
 ;* V11 tmp8         [V11    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Span`1[ubyte]>
 ;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V14 tmp11        [V14,T03] (  3,  2   )   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp12        [V15,T02] (  4,  2.50)     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V14 tmp11        [V14,T02] (  3,  2   )   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V15 tmp12        [V15,T03] (  3,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V16 tmp13        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp14        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V19 tmp16        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V12._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V24 tmp21        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V25 tmp22        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;  V26 cse0         [V26,T04] (  3,  2.50)     ref  ->   r8         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M50495_IG01:
        push     rbp
        mov      rbp, rsp
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M50495_IG02:
        mov      r8, gword ptr [rdi+0x08]
        test     r8, r8
        jne      SHORT G_M50495_IG06
 						;; size=9 bbWeight=1 PerfScore 3.25
 G_M50495_IG03:
        cmp      edx, 4
        jl       SHORT G_M50495_IG04
        mov      eax, dword ptr [rdi+0x18]
-       cmp      edx, 4
-       jb       SHORT G_M50495_IG11
        mov      dword ptr [rsi], eax
        mov      dword ptr [rcx], 4
        jmp      SHORT G_M50495_IG07
-						;; size=23 bbWeight=0.50 PerfScore 4.25
+						;; size=18 bbWeight=0.50 PerfScore 3.62
 G_M50495_IG04:
        xor      eax, eax
        mov      dword ptr [rcx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M50495_IG05:
        pop      rbp
        ret      
 						;; size=2 bbWeight=0.50 PerfScore 0.75
 G_M50495_IG06:
        cmp      edx, 16
        jl       SHORT G_M50495_IG09
        cmp      byte  ptr [r8], r8b
        vmovups  xmm0, xmmword ptr [r8+0x10]
        vpsllw   xmm1, xmm0, 8
        vpsrlw   xmm0, xmm0, 8
        vpor     xmm0, xmm0, xmm1
        vmovups  xmmword ptr [rsi], xmm0
        mov      dword ptr [rcx], 16
 						;; size=38 bbWeight=0.50 PerfScore 6.79
 G_M50495_IG07:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M50495_IG08:
        pop      rbp
        ret      
 						;; size=2 bbWeight=0.50 PerfScore 0.75
 G_M50495_IG09:
        xor      eax, eax
        mov      dword ptr [rcx], eax
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M50495_IG10:
        pop      rbp
        ret      
 						;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M50495_IG11:
-       mov      edi, 40
-       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 111, prolog size 4, PerfScore 19.17, instruction count 37, allocated bytes for code 111 (MethodHash=ea6a3ac0) for method System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
+; Total bytes of code 88, prolog size 4, PerfScore 18.54, instruction count 31, allocated bytes for code 88 (MethodHash=ea6a3ac0) for method System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
-12 (-11.43 % of base) - System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte:this
 ; Assembly listing for method System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte: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,T00] (  7,  4.50)   byref  ->  rdi         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T04] (  3,  2.50)   ubyte  ->  rcx         single-def
+;  V02 arg2         [V02,T03] (  3,  2.50)   ubyte  ->  rcx         single-def
 ;  V03 arg3         [V03,T02] (  4,  3   )   byref  ->   r8         single-def
 ;* V04 loc0         [V04,T09] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <System.Guid>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Guid]>
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V08 tmp3         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.Guid]>
 ;* V12 tmp7         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V13 tmp8         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.Guid]>
 ;* V14 tmp9         [V14    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V15 tmp10        [V15    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V19 tmp14        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V20 tmp15        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V21 tmp16        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V22 tmp17        [V22,T01] (  6,  3.50)   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V23 tmp18        [V23,T03] (  4,  3   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp18        [V23,T04] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V24 tmp19        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V25 tmp20        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp24        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp26        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V32 tmp27        [V32    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V12._reference (fldOffset=0x0)" P-INDEP
 ;* V35 tmp30        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V36 tmp31        [V36    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
 ;* V40 tmp35        [V40    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V41 tmp36        [V41    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V42 tmp37        [V42    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V43 tmp38        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V45 tmp40        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0x8)" P-INDEP
 ;* V46 tmp41        [V46    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp42        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x8)" P-INDEP
 ;  V48 tmp43        [V48,T05] (  4,  2   )     int  ->  rax         "V04.[000..004)"
 ;  V49 tmp44        [V49,T06] (  4,  2   )   short  ->  rcx         "V04.[004..006)"
-;  V50 tmp45        [V50,T07] (  4,  2   )   short  ->   r9         "V04.[006..008)"
+;  V50 tmp45        [V50,T07] (  4,  2   )   short  ->  rdx         "V04.[006..008)"
 ;  V51 cse0         [V51,T08] (  2,  1   )    long  ->  rdi         "CSE #01: moderate"
 ;
 ; Lcl frame size = 0
 
 G_M3213_IG01:
        push     rbp
        mov      rbp, rsp
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M3213_IG02:
        cmp      edx, 16
        jl       SHORT G_M3213_IG07
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M3213_IG03:
        cmp      cl, 1
        jne      SHORT G_M3213_IG04
        mov      eax, dword ptr [rdi]
        movsx    rcx, word  ptr [rdi+0x04]
-       movsx    r9, word  ptr [rdi+0x06]
+       movsx    rdx, word  ptr [rdi+0x06]
        mov      rdi, qword ptr [rdi+0x08]
        bswap    eax
        ror      cx, 8
        movsx    rcx, cx
-       ror      r9w, 8
-       movsx    r9, r9w
-       cmp      edx, 16
-       jb       SHORT G_M3213_IG05
+       ror      dx, 8
+       movsx    rdx, dx
        mov      dword ptr [rsi], eax
        mov      word  ptr [rsi+0x04], cx
-       mov      word  ptr [rsi+0x06], r9w
+       mov      word  ptr [rsi+0x06], dx
        mov      qword ptr [rsi+0x08], rdi
        jmp      SHORT G_M3213_IG05
-						;; size=62 bbWeight=0.50 PerfScore 11.25
+						;; size=55 bbWeight=0.50 PerfScore 10.62
 G_M3213_IG04:
-       cmp      edx, 16
-       jb       SHORT G_M3213_IG05
        vmovups  xmm0, xmmword ptr [rdi]
        vmovups  xmmword ptr [rsi], xmm0
-						;; size=13 bbWeight=0.50 PerfScore 3.62
+						;; size=8 bbWeight=0.50 PerfScore 3.00
 G_M3213_IG05:
        mov      dword ptr [r8], 16
        mov      eax, 1
 						;; size=12 bbWeight=0.50 PerfScore 0.62
 G_M3213_IG06:
        pop      rbp
        ret      
 						;; size=2 bbWeight=0.50 PerfScore 0.75
 G_M3213_IG07:
        xor      eax, eax
        mov      dword ptr [r8], eax
 						;; size=5 bbWeight=0.50 PerfScore 0.62
 G_M3213_IG08:
        pop      rbp
        ret      
 						;; size=2 bbWeight=0.50 PerfScore 0.75
 
-; Total bytes of code 105, prolog size 4, PerfScore 20.12, instruction count 34, allocated bytes for code 105 (MethodHash=8006f372) for method System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte:this (FullOpts)
+; Total bytes of code 93, prolog size 4, PerfScore 18.88, instruction count 30, allocated bytes for code 93 (MethodHash=8006f372) for method System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte:this (FullOpts)
-11 (-33.33 % of base) - System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte:this
 ; Assembly listing for method System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  2.50)   byref  ->  rdi         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V06 tmp4         [V06,T02] (  2,  1.50)   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  2.50)     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V07 tmp5         [V07,T01] (  2,  2   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V08 tmp6         [V08    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 0
 
 G_M45208_IG01:
-       push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=1 PerfScore 1.25
+						;; size=0 bbWeight=1 PerfScore 0.00
 G_M45208_IG02:
        cmp      edx, 16
-       jl       SHORT G_M45208_IG06
+       jl       SHORT G_M45208_IG05
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M45208_IG03:
-       cmp      edx, 16
-       jb       SHORT G_M45208_IG04
        vmovups  xmm0, xmmword ptr [rdi]
        vmovups  xmmword ptr [rsi], xmm0
-						;; size=13 bbWeight=0.50 PerfScore 3.62
-G_M45208_IG04:
        mov      eax, 1
-						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M45208_IG05:
-       pop      rbp
+						;; size=13 bbWeight=0.50 PerfScore 3.12
+G_M45208_IG04:
        ret      
-						;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M45208_IG06:
+						;; size=1 bbWeight=0.50 PerfScore 0.50
+G_M45208_IG05:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M45208_IG07:
-       pop      rbp
+G_M45208_IG06:
        ret      
-						;; size=2 bbWeight=0.50 PerfScore 0.75
+						;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 33, prolog size 4, PerfScore 7.88, instruction count 14, allocated bytes for code 33 (MethodHash=9a754f67) for method System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte:this (FullOpts)
+; Total bytes of code 22, prolog size 0, PerfScore 5.50, instruction count 8, allocated bytes for code 22 (MethodHash=9a754f67) for method System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte:this (FullOpts)
-9 (-2.17 % of base) - System.Reflection.Metadata.Ecma335.PortablePdbBuilder:Serialize(System.Reflection.Metadata.BlobBuilder):System.Reflection.Metadata.BlobContentId:this
 ; Assembly listing for method System.Reflection.Metadata.Ecma335.PortablePdbBuilder:Serialize(System.Reflection.Metadata.BlobBuilder):System.Reflection.Metadata.BlobContentId: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; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 12, 12   )     ref  ->  rbx         this class-hnd single-def <System.Reflection.Metadata.Ecma335.PortablePdbBuilder>
 ;  V01 RetBuf       [V01,T03] (  4,  4   )   byref  ->  r14         single-def
 ;  V02 arg1         [V02,T01] (  8,  8   )     ref  ->  r15         class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
 ;  V03 loc0         [V03,T07] (  4,  4   )  struct (24) [rbp-0x40]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <System.Reflection.Metadata.BlobContentId>
 ;* V04 loc1         [V04    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op <System.Reflection.Metadata.BlobWriter>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T04] (  3,  6   )     ref  ->  r13         class-hnd single-def "impAppendStmt" <System.Func`2[System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob],System.Reflection.Metadata.BlobContentId]>
 ;  V07 tmp2         [V07,T05] (  3,  6   )     ref  ->  r12         class-hnd exact single-def "Single-def Box Helper" <System.Reflection.Metadata.BlobBuilder+Blobs>
 ;  V08 tmp3         [V08,T12] (  2,  3   )  struct (16) mm0         "spilled call-like call argument" <System.Guid>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.Blob>
 ;* V10 tmp5         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ubyte[]>
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp7         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp8         [V13    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V14 tmp9         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V15 tmp10        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Guid>
 ;* V16 tmp11        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;* V19 tmp14        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V20 tmp15        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V21 tmp16        [V21,T14] (  2,  2   )   byref  ->   r8         single-def "Inlining Arg"
 ;  V22 tmp17        [V22,T15] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V23 tmp18        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V24 tmp19        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V25 tmp20        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V28 tmp23        [V28    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V29 tmp24        [V29,T08] (  2,  4   )     int  ->  rcx         "Inlining Arg"
 ;* V30 tmp25        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V31 tmp26        [V31    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._buffer (fldOffset=0x0)" P-INDEP
 ;* V32 tmp27        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V04._start (fldOffset=0x8)" P-INDEP
 ;  V33 tmp28        [V33,T10] (  3,  3   )     int  ->  rdx         "field V04._end (fldOffset=0xc)" P-INDEP
 ;  V34 tmp29        [V34,T11] (  3,  3   )     int  ->  rax         "field V04._position (fldOffset=0x10)" P-INDEP
 ;  V35 tmp30        [V35,T06] (  5,  4   )     ref  ->  rdi         single-def "field V09.Buffer (fldOffset=0x0)" P-INDEP
 ;  V36 tmp31        [V36,T02] (  8,  6   )     int  ->  rsi         "field V09.Start (fldOffset=0x8)" P-INDEP
 ;  V37 tmp32        [V37,T16] (  2,  2   )     int  ->  rdx         "field V09.<Length>k__BackingField (fldOffset=0xc)" P-INDEP
 ;* V38 tmp33        [V38    ] (  0,  0   )   byref  ->  zero-ref    "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp34        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;  V40 tmp35        [V40,T17] (  3,  1.50)   byref  ->   r8         "field V18._reference (fldOffset=0x0)" P-INDEP
-;  V41 tmp36        [V41,T13] (  4,  2.50)     int  ->  rcx         "field V18._length (fldOffset=0x8)" P-INDEP
+;  V41 tmp36        [V41,T13] (  3,  2   )     int  ->  rcx         "field V18._length (fldOffset=0x8)" P-INDEP
 ;  V42 tmp37        [V42,T19] (  2,  1   )   byref  ->   r8         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;  V43 tmp38        [V43,T20] (  2,  1   )     int  ->  rcx         "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V44 tmp39        [V44    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V45 tmp40        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0x8)" P-INDEP
 ;* V46 tmp41        [V46    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V24._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp42        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V24._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp43        [V48    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp44        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
 ;* V50 tmp45        [V50    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V27._reference (fldOffset=0x0)" P-INDEP
 ;* V51 tmp46        [V51    ] (  0,  0   )     int  ->  zero-ref    "field V27._length (fldOffset=0x8)" P-INDEP
 ;  V52 cse0         [V52,T09] (  3,  3   )     ref  ->  rdx         "CSE #01: moderate"
 ;  V53 cse1         [V53,T18] (  3,  1.50)     int  ->  rcx         "CSE #02: moderate"
 ;
 ; Lcl frame size = 24
 
 G_M23392_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 24
        lea      rbp, [rsp+0x40]
        mov      rbx, rdi
        mov      r14, rsi
        mov      r15, rdx
 						;; size=28 bbWeight=1 PerfScore 7.50
 G_M23392_IG02:
        test     r15, r15
        je       G_M23392_IG12
        mov      rdx, gword ptr [rbx+0x10]
        mov      rdx, gword ptr [rdx+0x10]
        mov      rdi, r15
        mov      rsi, 0xD1FFAB1E      ; 'PDB v1.0'
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMetadataHeader(System.Reflection.Metadata.BlobBuilder,System.String,System.Reflection.Metadata.Ecma335.MetadataSizes)
        call     [rax]System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMetadataHeader(System.Reflection.Metadata.BlobBuilder,System.String,System.Reflection.Metadata.Ecma335.MetadataSizes)
        mov      rdi, rbx
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.Ecma335.PortablePdbBuilder:SerializeStandalonePdbStream(System.Reflection.Metadata.BlobBuilder):this
        call     [rax]System.Reflection.Metadata.Ecma335.PortablePdbBuilder:SerializeStandalonePdbStream(System.Reflection.Metadata.BlobBuilder):this
        mov      rdx, gword ptr [rbx+0x10]
        mov      rcx, gword ptr [rdx+0x18]
        mov      rdx, gword ptr [rdx+0x10]
        mov      rdi, gword ptr [rbx+0x08]
        mov      rsi, r15
        xor      r8d, r8d
        xor      r9d, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMetadataTables(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes,System.Collections.Immutable.ImmutableArray`1[int],int,int):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMetadataTables(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes,System.Collections.Immutable.ImmutableArray`1[int],int,int):this
        mov      rdx, gword ptr [rbx+0x10]
        mov      rdx, gword ptr [rdx+0x08]
        mov      rdi, gword ptr [rbx+0x08]
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.Ecma335.MetadataBuilder:WriteHeapsTo(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Reflection.Metadata.Ecma335.MetadataBuilder:WriteHeapsTo(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder):this
        mov      r13, gword ptr [rbx+0x18]
        mov      rdi, 0xD1FFAB1E      ; System.Reflection.Metadata.BlobBuilder+Blobs
        call     CORINFO_HELP_NEWSFAST
        mov      r12, rax
        lea      rsi, bword ptr [r12+0x08]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:GetBlobs():System.Reflection.Metadata.BlobBuilder+Blobs:this
        call     [rax]System.Reflection.Metadata.BlobBuilder:GetBlobs():System.Reflection.Metadata.BlobBuilder+Blobs:this
        mov      rdx, r12
        lea      rsi, [rbp-0x40]
        mov      rdi, gword ptr [r13+0x08]
        call     [r13+0x18]System.Func`2[System.__Canon,System.Reflection.Metadata.BlobContentId]:Invoke(System.__Canon):System.Reflection.Metadata.BlobContentId:this
        mov      rdi, gword ptr [rbx+0x20]
        mov      esi, dword ptr [rbx+0x28]
        mov      edx, dword ptr [rbx+0x2C]
        add      edx, esi
        vmovups  xmm0, xmmword ptr [rbp-0x40]
        lea      eax, [rdx-0x10]
        cmp      esi, eax
 						;; size=207 bbWeight=1 PerfScore 63.50
 G_M23392_IG03:
-       jg       G_M23392_IG11
+       jg       SHORT G_M23392_IG11
        lea      eax, [rsi+0x10]
        test     rdi, rdi
        je       SHORT G_M23392_IG05
-						;; size=14 bbWeight=1 PerfScore 2.75
+						;; size=10 bbWeight=1 PerfScore 2.75
 G_M23392_IG04:
        mov      ecx, dword ptr [rdi+0x08]
        cmp      ecx, esi
        jb       SHORT G_M23392_IG10
        mov      r8d, esi
        lea      r8, bword ptr [rdi+r8+0x10]
        sub      ecx, esi
        jmp      SHORT G_M23392_IG06
 						;; size=19 bbWeight=0.50 PerfScore 3.38
 G_M23392_IG05:
        test     esi, esi
        jne      SHORT G_M23392_IG10
        xor      r8, r8
        xor      ecx, ecx
 						;; size=9 bbWeight=0.50 PerfScore 0.88
 G_M23392_IG06:
        cmp      ecx, 16
        jl       SHORT G_M23392_IG08
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M23392_IG07:
-       cmp      ecx, 16
-       jb       SHORT G_M23392_IG08
        vmovups  xmmword ptr [r8], xmm0
-						;; size=10 bbWeight=0.50 PerfScore 1.62
+						;; size=5 bbWeight=0.50 PerfScore 1.00
 G_M23392_IG08:
        mov      ecx, dword ptr [rbp-0x30]
        add      edx, -4
        cmp      eax, edx
        jg       SHORT G_M23392_IG11
        mov      esi, eax
        mov      edx, ecx
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.BlobUtilities:WriteUInt32(ubyte[],int,uint)
        call     [rax]System.Reflection.BlobUtilities:WriteUInt32(ubyte[],int,uint)
        vmovdqu  xmm0, xmmword ptr [rbp-0x40]
        vmovdqu  xmmword ptr [r14], xmm0
        mov      eax, dword ptr [rbp-0x30]
        mov      dword ptr [r14+0x10], eax
        mov      rax, r14
 						;; size=46 bbWeight=1 PerfScore 13.50
 G_M23392_IG09:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M23392_IG10:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M23392_IG11:
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Throw:OutOfBounds()
        call     [rax]System.Reflection.Throw:OutOfBounds()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M23392_IG12:
        mov      edi, 0x18B7
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Throw:ArgumentNull(System.String)
        call     [rax]System.Reflection.Throw:ArgumentNull(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 415, prolog size 19, PerfScore 98.62, instruction count 113, allocated bytes for code 415 (MethodHash=bbe9a49f) for method System.Reflection.Metadata.Ecma335.PortablePdbBuilder:Serialize(System.Reflection.Metadata.BlobBuilder):System.Reflection.Metadata.BlobContentId:this (FullOpts)
+; Total bytes of code 406, prolog size 19, PerfScore 98.00, instruction count 111, allocated bytes for code 406 (MethodHash=bbe9a49f) for method System.Reflection.Metadata.Ecma335.PortablePdbBuilder:Serialize(System.Reflection.Metadata.BlobBuilder):System.Reflection.Metadata.BlobContentId:this (FullOpts)
-6 (-6.38 % of base) - System.Text.Json.JsonDocument+MetadataDb:SetHasComplexChildren(int):this
 ; Assembly listing for method System.Text.Json.JsonDocument+MetadataDb:SetHasComplexChildren(int):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; 5 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T03] (  3,  3   )     int  ->  rsi         single-def
-;  V02 loc0         [V02,T07] (  2,  2   )     int  ->  rcx         ld-addr-op
+;  V02 loc0         [V02,T07] (  2,  2   )     int  ->  rax         ld-addr-op
 ;# 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    "dup spill" <System.Span`1[ubyte]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V07 tmp4         [V07,T01] (  4,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;  V08 tmp5         [V08,T00] (  5,  6   )     int  ->  rsi         "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V10 tmp7         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V11 tmp8         [V11,T06] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
 ;  V12 tmp9         [V12,T08] (  2,  2   )     int  ->  rax         "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V15 tmp12        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp14        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V18 tmp15        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V19 tmp16        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V20 tmp17        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;  V25 tmp22        [V25,T04] (  4,  3   )   byref  ->  rdi         "field V06._reference (fldOffset=0x0)" P-INDEP
-;  V26 tmp23        [V26,T05] (  4,  3   )     int  ->  rax         "field V06._length (fldOffset=0x8)" P-INDEP
+;  V26 tmp23        [V26,T05] (  3,  2   )     int  ->  rax         "field V06._length (fldOffset=0x8)" P-INDEP
 ;  V27 tmp24        [V27,T10] (  2,  1   )   byref  ->  rdi         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;  V28 tmp25        [V28,T11] (  2,  1   )     int  ->  rax         "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V31 tmp28        [V31    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V32 tmp29        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp30        [V33    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp31        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V35 tmp32        [V35    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V36 tmp33        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp34        [V37    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V38 tmp35        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
 ;* V39 tmp36        [V39    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V40 tmp37        [V40    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V41 tmp38        [V41    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V42 tmp39        [V42    ] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0x8)" P-INDEP
 ;  V43 cse0         [V43,T09] (  3,  1.50)     int  ->  rax         "CSE #01: moderate"
 ;
 ; Lcl frame size = 0
 
 G_M15164_IG01:
        push     rbp
        mov      rbp, rsp
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M15164_IG02:
        mov      rdi, gword ptr [rdi]
        add      esi, 4
        test     rdi, rdi
        je       SHORT G_M15164_IG04
 						;; size=11 bbWeight=1 PerfScore 3.50
 G_M15164_IG03:
        mov      eax, dword ptr [rdi+0x08]
        cmp      eax, esi
        jb       SHORT G_M15164_IG08
        mov      ecx, esi
        lea      rdi, bword ptr [rdi+rcx+0x10]
        sub      eax, esi
        jmp      SHORT G_M15164_IG05
 						;; size=18 bbWeight=0.50 PerfScore 3.38
 G_M15164_IG04:
        test     esi, esi
        jne      SHORT G_M15164_IG08
        xor      rdi, rdi
        xor      eax, eax
 						;; size=8 bbWeight=0.50 PerfScore 0.88
 G_M15164_IG05:
        cmp      eax, 4
        jl       SHORT G_M15164_IG07
-       mov      ecx, dword ptr [rdi]
-       or       ecx, 0xD1FFAB1E
-       cmp      eax, 4
-       jb       SHORT G_M15164_IG07
-       mov      dword ptr [rdi], ecx
-						;; size=20 bbWeight=1 PerfScore 5.75
+       mov      eax, dword ptr [rdi]
+       or       eax, 0xD1FFAB1E
+       mov      dword ptr [rdi], eax
+						;; size=14 bbWeight=1 PerfScore 4.50
 G_M15164_IG06:
        pop      rbp
        ret      
 						;; size=2 bbWeight=1 PerfScore 1.50
 G_M15164_IG07:
        mov      edi, 40
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 G_M15164_IG08:
        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 94, prolog size 4, PerfScore 16.25, instruction count 33, allocated bytes for code 94 (MethodHash=c9bbc4c3) for method System.Text.Json.JsonDocument+MetadataDb:SetHasComplexChildren(int):this (FullOpts)
+; Total bytes of code 88, prolog size 4, PerfScore 15.00, instruction count 31, allocated bytes for code 88 (MethodHash=c9bbc4c3) for method System.Text.Json.JsonDocument+MetadataDb:SetHasComplexChildren(int):this (FullOpts)
-6 (-6.25 % of base) - System.Text.Json.JsonDocument+MetadataDb:SetNumberOfRows(int,int):this
 ; Assembly listing for method System.Text.Json.JsonDocument+MetadataDb:SetNumberOfRows(int,int):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; 5 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T03] (  3,  3   )     int  ->  rsi         single-def
 ;  V02 arg2         [V02,T04] (  3,  3   )     int  ->  rdx         single-def
-;  V03 loc0         [V03,T08] (  2,  2   )     int  ->  rcx         ld-addr-op
+;  V03 loc0         [V03,T08] (  2,  2   )     int  ->  rax         ld-addr-op
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    "dup spill" <System.Span`1[ubyte]>
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V08 tmp4         [V08,T01] (  4,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;  V09 tmp5         [V09,T00] (  5,  6   )     int  ->  rsi         "Inlining Arg"
 ;* V10 tmp6         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V12 tmp8         [V12,T07] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
 ;  V13 tmp9         [V13,T09] (  2,  2   )     int  ->  rax         "Inlining Arg"
 ;* V14 tmp10        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V16 tmp12        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V20 tmp16        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V22 tmp18        [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V24 tmp20        [V24    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V25 tmp21        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;  V26 tmp22        [V26,T05] (  4,  3   )   byref  ->  rdi         "field V07._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp23        [V27,T06] (  4,  3   )     int  ->  rax         "field V07._length (fldOffset=0x8)" P-INDEP
+;  V27 tmp23        [V27,T06] (  3,  2   )     int  ->  rax         "field V07._length (fldOffset=0x8)" P-INDEP
 ;  V28 tmp24        [V28,T11] (  2,  1   )   byref  ->  rdi         single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;  V29 tmp25        [V29,T12] (  2,  1   )     int  ->  rax         "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V30 tmp26        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp27        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V32 tmp28        [V32    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V33 tmp29        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V34 tmp30        [V34    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V36 tmp32        [V36    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V37 tmp33        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
 ;* V38 tmp34        [V38    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp35        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V40 tmp36        [V40    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V41 tmp37        [V41    ] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0x8)" P-INDEP
 ;* V42 tmp38        [V42    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V21._reference (fldOffset=0x0)" P-INDEP
 ;* V43 tmp39        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x8)" P-INDEP
 ;  V44 cse0         [V44,T10] (  3,  1.50)     int  ->  rax         "CSE #01: moderate"
 ;
 ; Lcl frame size = 0
 
 G_M55801_IG01:
        push     rbp
        mov      rbp, rsp
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M55801_IG02:
        mov      rdi, gword ptr [rdi]
        add      esi, 8
        test     rdi, rdi
        je       SHORT G_M55801_IG04
 						;; size=11 bbWeight=1 PerfScore 3.50
 G_M55801_IG03:
        mov      eax, dword ptr [rdi+0x08]
        cmp      eax, esi
        jb       SHORT G_M55801_IG08
        mov      ecx, esi
        lea      rdi, bword ptr [rdi+rcx+0x10]
        sub      eax, esi
        jmp      SHORT G_M55801_IG05
 						;; size=18 bbWeight=0.50 PerfScore 3.38
 G_M55801_IG04:
        test     esi, esi
        jne      SHORT G_M55801_IG08
        xor      rdi, rdi
        xor      eax, eax
 						;; size=8 bbWeight=0.50 PerfScore 0.88
 G_M55801_IG05:
        cmp      eax, 4
        jl       SHORT G_M55801_IG07
-       mov      ecx, dword ptr [rdi]
-       and      ecx, 0xD1FFAB1E
-       or       ecx, edx
-       cmp      eax, 4
-       jb       SHORT G_M55801_IG07
-       mov      dword ptr [rdi], ecx
-						;; size=22 bbWeight=1 PerfScore 6.00
+       mov      eax, dword ptr [rdi]
+       and      eax, 0xD1FFAB1E
+       or       eax, edx
+       mov      dword ptr [rdi], eax
+						;; size=16 bbWeight=1 PerfScore 4.75
 G_M55801_IG06:
        pop      rbp
        ret      
 						;; size=2 bbWeight=1 PerfScore 1.50
 G_M55801_IG07:
        mov      edi, 40
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 G_M55801_IG08:
        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 96, prolog size 4, PerfScore 16.50, instruction count 34, allocated bytes for code 96 (MethodHash=910d2606) for method System.Text.Json.JsonDocument+MetadataDb:SetNumberOfRows(int,int):this (FullOpts)
+; Total bytes of code 90, prolog size 4, PerfScore 15.25, instruction count 32, allocated bytes for code 90 (MethodHash=910d2606) for method System.Text.Json.JsonDocument+MetadataDb:SetNumberOfRows(int,int):this (FullOpts)
-5 (-5.75 % of base) - System.Reflection.BlobUtilities:WriteGuid(ubyte[],int,System.Guid)
 ; Assembly listing for method System.Reflection.BlobUtilities:WriteGuid(ubyte[],int,System.Guid) (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; 2 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  5,  4   )     ref  ->  rdi         class-hnd single-def <ubyte[]>
 ;  V01 arg1         [V01,T00] (  6,  4   )     int  ->  rsi         single-def
 ;  V02 arg2         [V02,T02] (  3,  2.50)  struct (16) [rbp-0x10]  do-not-enreg[SA] multireg-arg ld-addr-op single-def <System.Guid>
 ;# 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    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V08 tmp5         [V08,T04] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
 ;  V09 tmp6         [V09,T05] (  2,  2   )     int  ->  rax         "Inlining Arg"
 ;* V10 tmp7         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V11 tmp8         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V12 tmp9         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V15 tmp12        [V15    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V17 tmp14        [V17,T06] (  3,  1.50)   byref  ->  rcx         "field V05._reference (fldOffset=0x0)" P-INDEP
-;  V18 tmp15        [V18,T03] (  4,  2.50)     int  ->  rax         "field V05._length (fldOffset=0x8)" P-INDEP
+;  V18 tmp15        [V18,T03] (  3,  2   )     int  ->  rax         "field V05._length (fldOffset=0x8)" P-INDEP
 ;  V19 tmp16        [V19,T08] (  2,  1   )   byref  ->  rcx         single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;  V20 tmp17        [V20,T09] (  2,  1   )     int  ->  rax         "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V25 tmp22        [V25    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V26 tmp23        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V27 tmp24        [V27    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V28 tmp25        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V29 cse0         [V29,T07] (  3,  1.50)     int  ->  rax         "CSE #01: moderate"
 ;
 ; Lcl frame size = 16
 
 G_M7642_IG01:
        push     rbp
        sub      rsp, 16
        lea      rbp, [rsp+0x10]
        mov      qword ptr [rbp-0x10], rdx
        mov      qword ptr [rbp-0x08], rcx
 						;; size=18 bbWeight=1 PerfScore 3.75
 G_M7642_IG02:
        test     rdi, rdi
        je       SHORT G_M7642_IG04
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M7642_IG03:
        mov      eax, dword ptr [rdi+0x08]
        cmp      eax, esi
        jb       SHORT G_M7642_IG08
        mov      ecx, esi
        lea      rcx, bword ptr [rdi+rcx+0x10]
        sub      eax, esi
        jmp      SHORT G_M7642_IG05
 						;; size=18 bbWeight=0.50 PerfScore 3.38
 G_M7642_IG04:
        test     esi, esi
        jne      SHORT G_M7642_IG08
        xor      rcx, rcx
        xor      eax, eax
 						;; size=8 bbWeight=0.50 PerfScore 0.88
 G_M7642_IG05:
        cmp      eax, 16
        jl       SHORT G_M7642_IG07
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M7642_IG06:
-       cmp      eax, 16
-       jb       SHORT G_M7642_IG07
        vmovups  xmm0, xmmword ptr [rbp-0x10]
        vmovups  xmmword ptr [rcx], xmm0
-						;; size=14 bbWeight=0.50 PerfScore 3.12
+						;; size=9 bbWeight=0.50 PerfScore 2.50
 G_M7642_IG07:
        add      rsp, 16
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M7642_IG08:
        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 87, prolog size 10, PerfScore 15.38, instruction count 30, allocated bytes for code 87 (MethodHash=e440e225) for method System.Reflection.BlobUtilities:WriteGuid(ubyte[],int,System.Guid) (FullOpts)
+; Total bytes of code 82, prolog size 10, PerfScore 14.75, instruction count 28, allocated bytes for code 82 (MethodHash=e440e225) for method System.Reflection.BlobUtilities:WriteGuid(ubyte[],int,System.Guid) (FullOpts)
-5 (-3.14 % of base) - System.Reflection.Metadata.BlobBuilder:WriteGuid(System.Guid):this
 ; Assembly listing for method System.Reflection.Metadata.BlobBuilder:WriteGuid(System.Guid):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; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  7,  6.50)     ref  ->  rbx         this class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
 ;  V01 arg1         [V01,T03] (  3,  2.50)  struct (16) [rbp-0x20]  do-not-enreg[SA] multireg-arg single-def <System.Guid>
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T02] (  8,  5.50)     int  ->  r15         "Inline stloc first use temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Guid>
 ;  V06 tmp3         [V06,T01] (  4,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V10 tmp7         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V11 tmp8         [V11,T05] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
 ;  V12 tmp9         [V12,T06] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V15 tmp12        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V16 tmp13        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V17 tmp14        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V19 tmp16        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;  V20 tmp17        [V20,T07] (  3,  1.50)   byref  ->  rax         "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V21 tmp18        [V21,T04] (  4,  2.50)     int  ->  rcx         "field V08._length (fldOffset=0x8)" P-INDEP
+;  V21 tmp18        [V21,T04] (  3,  2   )     int  ->  rcx         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V22 tmp19        [V22,T09] (  2,  1   )   byref  ->  rax         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;  V23 tmp20        [V23,T10] (  2,  1   )     int  ->  rcx         "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V24 tmp21        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V25 tmp22        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V26 tmp23        [V26    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V27 tmp24        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp25        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp28        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;  V32 cse0         [V32,T08] (  3,  1.50)     int  ->  rcx         "CSE #01: moderate"
 ;
 ; Lcl frame size = 16
 
 G_M55272_IG01:
        push     rbp
        push     r15
        push     rbx
        sub      rsp, 16
        lea      rbp, [rsp+0x20]
        mov      qword ptr [rbp-0x20], rsi
        mov      qword ptr [rbp-0x18], rdx
        mov      rbx, rdi
 						;; size=24 bbWeight=1 PerfScore 6.00
 G_M55272_IG02:
        mov      r15d, dword ptr [rbx+0x1C]
        mov      rdi, gword ptr [rbx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        add      edi, -16
        movsxd   rdi, edi
        mov      esi, r15d
        cmp      rdi, rsi
        jge      SHORT G_M55272_IG04
 						;; size=25 bbWeight=1 PerfScore 8.00
 G_M55272_IG03:
        mov      rdi, rbx
        mov      esi, 16
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
        call     [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
        xor      r15d, r15d
 						;; size=23 bbWeight=0.50 PerfScore 2.00
 G_M55272_IG04:
        lea      eax, [r15+0x10]
        mov      dword ptr [rbx+0x1C], eax
        mov      rax, gword ptr [rbx+0x10]
        test     rax, rax
        je       SHORT G_M55272_IG06
 						;; size=16 bbWeight=1 PerfScore 4.75
 G_M55272_IG05:
        mov      ecx, dword ptr [rax+0x08]
        cmp      ecx, r15d
        jb       SHORT G_M55272_IG10
        mov      edx, r15d
        lea      rax, bword ptr [rax+rdx+0x10]
        sub      ecx, r15d
        jmp      SHORT G_M55272_IG07
 						;; size=21 bbWeight=0.50 PerfScore 3.38
 G_M55272_IG06:
        test     r15d, r15d
        jne      SHORT G_M55272_IG10
        xor      rax, rax
        xor      ecx, ecx
 						;; size=9 bbWeight=0.50 PerfScore 0.88
 G_M55272_IG07:
        cmp      ecx, 16
        jl       SHORT G_M55272_IG09
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M55272_IG08:
-       cmp      ecx, 16
-       jb       SHORT G_M55272_IG09
        vmovups  xmm0, xmmword ptr [rbp-0x20]
        vmovups  xmmword ptr [rax], xmm0
-						;; size=14 bbWeight=0.50 PerfScore 3.12
+						;; size=9 bbWeight=0.50 PerfScore 2.50
 G_M55272_IG09:
        add      rsp, 16
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 2.75
 G_M55272_IG10:
        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 159, prolog size 13, PerfScore 32.12, instruction count 51, allocated bytes for code 159 (MethodHash=88a42817) for method System.Reflection.Metadata.BlobBuilder:WriteGuid(System.Guid):this (FullOpts)
+; Total bytes of code 154, prolog size 13, PerfScore 31.50, instruction count 49, allocated bytes for code 154 (MethodHash=88a42817) for method System.Reflection.Metadata.BlobBuilder:WriteGuid(System.Guid):this (FullOpts)
-5 (-4.10 % of base) - System.Reflection.Metadata.BlobWriter:WriteGuid(System.Guid):this
 ; Assembly listing for method System.Reflection.Metadata.BlobWriter:WriteGuid(System.Guid):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; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  6,  6   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T03] (  3,  2.50)  struct (16) [rbp-0x10]  do-not-enreg[SA] multireg-arg single-def <System.Guid>
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T02] (  7,  5   )     int  ->  rax         "Inline stloc first use temp"
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Guid>
 ;  V06 tmp3         [V06,T01] (  4,  6   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V10 tmp7         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V11 tmp8         [V11,T05] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
 ;  V12 tmp9         [V12,T06] (  2,  2   )     int  ->  rdx         "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V15 tmp12        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V16 tmp13        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V17 tmp14        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V19 tmp16        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;  V20 tmp17        [V20,T07] (  3,  1.50)   byref  ->  rcx         "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V21 tmp18        [V21,T04] (  4,  2.50)     int  ->  rdx         "field V08._length (fldOffset=0x8)" P-INDEP
+;  V21 tmp18        [V21,T04] (  3,  2   )     int  ->  rdx         "field V08._length (fldOffset=0x8)" P-INDEP
 ;  V22 tmp19        [V22,T09] (  2,  1   )   byref  ->  rcx         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;  V23 tmp20        [V23,T10] (  2,  1   )     int  ->  rdx         "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V24 tmp21        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V25 tmp22        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V26 tmp23        [V26    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V27 tmp24        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp25        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp28        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;  V32 cse0         [V32,T08] (  3,  1.50)     int  ->  rdx         "CSE #01: moderate"
 ;
 ; Lcl frame size = 16
 
 G_M46534_IG01:
        push     rbp
        sub      rsp, 16
        lea      rbp, [rsp+0x10]
        mov      qword ptr [rbp-0x10], rsi
        mov      qword ptr [rbp-0x08], rdx
 						;; size=18 bbWeight=1 PerfScore 3.75
 G_M46534_IG02:
        mov      eax, dword ptr [rdi+0x10]
        mov      ecx, dword ptr [rdi+0x0C]
        add      ecx, -16
        cmp      eax, ecx
        jg       SHORT G_M46534_IG09
        lea      ecx, [rax+0x10]
        mov      dword ptr [rdi+0x10], ecx
        mov      rcx, gword ptr [rdi]
        test     rcx, rcx
        je       SHORT G_M46534_IG04
 						;; size=27 bbWeight=1 PerfScore 10.25
 G_M46534_IG03:
        mov      edx, dword ptr [rcx+0x08]
        cmp      edx, eax
        jb       SHORT G_M46534_IG08
        mov      edi, eax
        lea      rcx, bword ptr [rcx+rdi+0x10]
        sub      edx, eax
        jmp      SHORT G_M46534_IG05
 						;; size=18 bbWeight=0.50 PerfScore 3.38
 G_M46534_IG04:
        test     eax, eax
        jne      SHORT G_M46534_IG08
        xor      rcx, rcx
        xor      edx, edx
 						;; size=8 bbWeight=0.50 PerfScore 0.88
 G_M46534_IG05:
        cmp      edx, 16
        jl       SHORT G_M46534_IG07
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M46534_IG06:
-       cmp      edx, 16
-       jb       SHORT G_M46534_IG07
        vmovups  xmm0, xmmword ptr [rbp-0x10]
        vmovups  xmmword ptr [rcx], xmm0
-						;; size=14 bbWeight=0.50 PerfScore 3.12
+						;; size=9 bbWeight=0.50 PerfScore 2.50
 G_M46534_IG07:
        add      rsp, 16
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M46534_IG08:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M46534_IG09:
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Throw:OutOfBounds()
        call     [rax]System.Reflection.Throw:OutOfBounds()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 122, prolog size 10, PerfScore 24.38, instruction count 41, allocated bytes for code 122 (MethodHash=ebdf4a39) for method System.Reflection.Metadata.BlobWriter:WriteGuid(System.Guid):this (FullOpts)
+; Total bytes of code 117, prolog size 10, PerfScore 23.75, instruction count 39, allocated bytes for code 117 (MethodHash=ebdf4a39) for method System.Reflection.Metadata.BlobWriter:WriteGuid(System.Guid):this (FullOpts)
-5 (-1.54 % of base) - System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle:this
 ; Assembly listing for method System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle: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; 12 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  6,  4   )     ref  ->  rbx         this class-hnd single-def <System.Reflection.Metadata.Ecma335.MetadataBuilder>
 ;  V01 arg1         [V01,T00] (  8,  5.50)  struct (16) [rbp-0x28]  do-not-enreg[SA] multireg-arg single-def <System.Guid>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Reflection.Metadata.GuidHandle>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Reflection.Metadata.GuidHandle>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    "folding static readonly field empty struct" <System.Guid>
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Guid>
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Guid>
 ;* V08 tmp4         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp5         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V10 tmp6         [V10,T05] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]>
-;  V11 tmp7         [V11,T11] (  3,  1.50)   byref  ->  rax         single-def "Inline stloc first use temp"
+;  V11 tmp7         [V11,T10] (  3,  1.50)   byref  ->  rax         single-def "Inline stloc first use temp"
 ;  V12 tmp8         [V12,T06] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.Ecma335.MetadataBuilder+HeapBlobBuilder>
 ;* V13 tmp9         [V13    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.GuidHandle>
 ;  V16 tmp12        [V16,T07] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]>
 ;* V17 tmp13        [V17    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Reflection.Metadata.GuidHandle>
 ;  V18 tmp14        [V18,T02] (  6,  6   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.Ecma335.MetadataBuilder+HeapBlobBuilder>
 ;* V19 tmp15        [V19    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V20 tmp16        [V20,T03] (  8,  4   )     int  ->  r14         "Inline stloc first use temp"
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Guid>
 ;  V22 tmp18        [V22,T04] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V23 tmp19        [V23    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V24 tmp20        [V24    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;* V25 tmp21        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V26 tmp22        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V27 tmp23        [V27,T09] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
-;  V28 tmp24        [V28,T10] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V27 tmp23        [V27,T08] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
+;  V28 tmp24        [V28,T09] (  2,  2   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp25        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V30 tmp26        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V31 tmp27        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V32 tmp28        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V33 tmp29        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V34 tmp30        [V34,T16] (  2,  1   )     int  ->  rax         "field V02._index (fldOffset=0x0)" P-INDEP
 ;* V35 tmp31        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V03._index (fldOffset=0x0)" P-INDEP
-;  V36 tmp32        [V36,T13] (  3,  1.50)     int  ->  r15         "field V15._index (fldOffset=0x0)" P-INDEP
+;  V36 tmp32        [V36,T12] (  3,  1.50)     int  ->  r15         "field V15._index (fldOffset=0x0)" P-INDEP
 ;* V37 tmp33        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V17._index (fldOffset=0x0)" P-INDEP
 ;* V38 tmp34        [V38    ] (  0,  0   )   byref  ->  zero-ref    "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp35        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
-;  V40 tmp36        [V40,T12] (  3,  1.50)   byref  ->  rax         "field V24._reference (fldOffset=0x0)" P-INDEP
-;  V41 tmp37        [V41,T08] (  4,  2   )     int  ->  rcx         "field V24._length (fldOffset=0x8)" P-INDEP
+;  V40 tmp36        [V40,T11] (  3,  1.50)   byref  ->  rax         "field V24._reference (fldOffset=0x0)" P-INDEP
+;  V41 tmp37        [V41,T13] (  3,  1.50)     int  ->  rcx         "field V24._length (fldOffset=0x8)" P-INDEP
 ;  V42 tmp38        [V42,T15] (  2,  1   )   byref  ->  rax         single-def "field V25._reference (fldOffset=0x0)" P-INDEP
 ;  V43 tmp39        [V43,T17] (  2,  1   )     int  ->  rcx         "field V25._length (fldOffset=0x8)" P-INDEP
 ;* V44 tmp40        [V44    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V45 tmp41        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
 ;* V46 tmp42        [V46    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp43        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp44        [V48    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp45        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V50 tmp46        [V50    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V33._reference (fldOffset=0x0)" P-INDEP
 ;* V51 tmp47        [V51    ] (  0,  0   )     int  ->  zero-ref    "field V33._length (fldOffset=0x8)" P-INDEP
 ;* V52 tmp48        [V52    ] (  0,  0   )  simd16  ->  zero-ref    "V06.[000..016)"
 ;* V53 tmp49        [V53    ] (  0,  0   )  simd16  ->  zero-ref    "V07.[000..016)"
 ;* V54 tmp50        [V54    ] (  0,  0   )  simd16  ->  zero-ref    "V05.[000..016)"
 ;  V55 cse0         [V55,T14] (  3,  1.50)     int  ->  rcx         "CSE #03: moderate"
 ;  V56 rat0         [V56,T18] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 24
 
 G_M54574_IG01:
        push     rbp
        push     r15
        push     r14
        push     rbx
        sub      rsp, 24
        lea      rbp, [rsp+0x30]
        mov      qword ptr [rbp-0x28], rsi
        mov      qword ptr [rbp-0x20], rdx
        mov      rbx, rdi
 						;; size=26 bbWeight=1 PerfScore 7.00
 G_M54574_IG02:
        vmovups  xmm0, xmmword ptr [rbp-0x28]
        vptest   xmm0, xmm0
        je       G_M54574_IG11
 						;; size=16 bbWeight=1 PerfScore 7.00
 G_M54574_IG03:
        mov      rdi, gword ptr [rbx+0x170]
        cmp      byte  ptr [rdi], dil
        mov      rsi, qword ptr [rbp-0x28]
        mov      rdx, qword ptr [rbp-0x20]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]:FindValue(System.Guid):byref:this
        call     [rax]System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]:FindValue(System.Guid):byref:this
        test     rax, rax
        jne      G_M54574_IG09
        mov      rsi, gword ptr [rbx+0x178]
        mov      r15d, dword ptr [rsi+0x18]
        mov      r14d, dword ptr [rsi+0x1C]
        and      r14d, 0xD1FFAB1E
        add      r15d, r14d
        sar      r15d, 4
        inc      r15d
        mov      rdi, gword ptr [rbx+0x170]
        cmp      byte  ptr [rdi], dil
        mov      rsi, qword ptr [rbp-0x28]
        mov      rdx, qword ptr [rbp-0x20]
        mov      ecx, r15d
        mov      r8d, 2
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]:TryInsert(System.Guid,System.Reflection.Metadata.GuidHandle,ubyte):ubyte:this
        call     [rax]System.Collections.Generic.Dictionary`2[System.Guid,System.Reflection.Metadata.GuidHandle]:TryInsert(System.Guid,System.Reflection.Metadata.GuidHandle,ubyte):ubyte:this
        mov      rbx, gword ptr [rbx+0x178]
        mov      r14d, dword ptr [rbx+0x1C]
        mov      rdi, gword ptr [rbx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        add      edi, -16
        movsxd   rdi, edi
        mov      esi, r14d
        cmp      rdi, rsi
        jge      SHORT G_M54574_IG04
        mov      rdi, rbx
        mov      esi, 16
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
        call     [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
        xor      r14d, r14d
 						;; size=165 bbWeight=0.50 PerfScore 21.75
 G_M54574_IG04:
        lea      eax, [r14+0x10]
        mov      dword ptr [rbx+0x1C], eax
        mov      rax, gword ptr [rbx+0x10]
        test     rax, rax
        je       SHORT G_M54574_IG05
        mov      ecx, dword ptr [rax+0x08]
        cmp      ecx, r14d
        jb       SHORT G_M54574_IG13
        mov      edx, r14d
        lea      rax, bword ptr [rax+rdx+0x10]
        sub      ecx, r14d
        jmp      SHORT G_M54574_IG06
 						;; size=37 bbWeight=0.50 PerfScore 5.75
 G_M54574_IG05:
        test     r14d, r14d
        jne      SHORT G_M54574_IG13
        xor      rax, rax
        xor      ecx, ecx
 						;; size=9 bbWeight=0.50 PerfScore 0.88
 G_M54574_IG06:
        cmp      ecx, 16
        jl       SHORT G_M54574_IG07
-       cmp      ecx, 16
-       jb       SHORT G_M54574_IG07
        vmovups  xmm0, xmmword ptr [rbp-0x28]
        vmovups  xmmword ptr [rax], xmm0
-						;; size=19 bbWeight=0.50 PerfScore 3.75
+						;; size=14 bbWeight=0.50 PerfScore 3.12
 G_M54574_IG07:
        mov      eax, r15d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M54574_IG08:
        add      rsp, 24
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M54574_IG09:
        mov      eax, dword ptr [rax]
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M54574_IG10:
        add      rsp, 24
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M54574_IG11:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M54574_IG12:
        add      rsp, 24
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M54574_IG13:
        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 325, prolog size 15, PerfScore 52.25, instruction count 95, allocated bytes for code 325 (MethodHash=d7bd2ad1) for method System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle:this (FullOpts)
+; Total bytes of code 320, prolog size 15, PerfScore 51.62, instruction count 93, allocated bytes for code 320 (MethodHash=d7bd2ad1) for method System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle:this (FullOpts)
-5 (-0.67 % of base) - System.Reflection.PortableExecutable.DebugDirectoryBuilder:WriteCodeViewData(System.Reflection.Metadata.BlobBuilder,System.String,System.Guid,int):int
 ; Assembly listing for method System.Reflection.PortableExecutable.DebugDirectoryBuilder:WriteCodeViewData(System.Reflection.Metadata.BlobBuilder,System.String,System.Guid,int):int (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; 27 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] ( 37, 33.50)     ref  ->  rbx         class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
 ;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  r15         class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T16] (  3,  2.50)  struct (16) [rbp-0x38]  do-not-enreg[SA] multireg-arg single-def <System.Guid>
 ;  V03 arg3         [V03,T14] (  3,  3   )     int  ->  r14         single-def
 ;  V04 loc0         [V04,T24] (  2,  2   )     int  ->  r13        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V08 tmp3         [V08,T09] (  6,  5.50)     int  ->  rax         "Inline stloc first use temp"
 ;* V09 tmp4         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <ubyte[]>
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V11 tmp6         [V11,T10] (  6,  5.50)     int  ->  r12         "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <ubyte[]>
 ;* V13 tmp8         [V13    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V14 tmp9         [V14,T11] (  6,  5.50)     int  ->  r12         "Inline stloc first use temp"
 ;* V15 tmp10        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <ubyte[]>
 ;* V16 tmp11        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V17 tmp12        [V17,T12] (  6,  5.50)     int  ->  r12         "Inline stloc first use temp"
 ;* V18 tmp13        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <ubyte[]>
 ;* V19 tmp14        [V19    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V20 tmp15        [V20,T08] (  8,  5.50)     int  ->  r12         "Inline stloc first use temp"
 ;* V21 tmp16        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Guid>
 ;  V22 tmp17        [V22,T02] (  4,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V23 tmp18        [V23    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V24 tmp19        [V24    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;* V25 tmp20        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
 ;  V27 tmp22        [V27,T23] (  2,  2   )   byref  ->  rdi         single-def "Inlining Arg"
 ;  V28 tmp23        [V28,T25] (  2,  2   )     int  ->  rsi         "Inlining Arg"
 ;* V29 tmp24        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V30 tmp25        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V31 tmp26        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V32 tmp27        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V33 tmp28        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V35 tmp30        [V35,T15] (  5,  4.50)     int  ->  rsi         "Inline stloc first use temp"
 ;* V36 tmp31        [V36    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V37 tmp32        [V37,T13] (  6,  5.50)     int  ->  r15         "Inline stloc first use temp"
 ;* V38 tmp33        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <ubyte[]>
 ;* V39 tmp34        [V39    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V40 tmp35        [V40    ] (  0,  0   )   byref  ->  zero-ref    "field V23._reference (fldOffset=0x0)" P-INDEP
 ;* V41 tmp36        [V41    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
 ;  V42 tmp37        [V42,T26] (  3,  1.50)   byref  ->  rdi         "field V24._reference (fldOffset=0x0)" P-INDEP
-;  V43 tmp38        [V43,T22] (  4,  2.50)     int  ->  rsi         "field V24._length (fldOffset=0x8)" P-INDEP
+;  V43 tmp38        [V43,T22] (  3,  2   )     int  ->  rsi         "field V24._length (fldOffset=0x8)" P-INDEP
 ;  V44 tmp39        [V44,T28] (  2,  1   )   byref  ->  rdi         single-def "field V25._reference (fldOffset=0x0)" P-INDEP
 ;  V45 tmp40        [V45,T29] (  2,  1   )     int  ->  rsi         "field V25._length (fldOffset=0x8)" P-INDEP
 ;* V46 tmp41        [V46    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V26._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp42        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp43        [V48    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp44        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;* V50 tmp45        [V50    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V51 tmp46        [V51    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V52 tmp47        [V52    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V33._reference (fldOffset=0x0)" P-INDEP
 ;* V53 tmp48        [V53    ] (  0,  0   )     int  ->  zero-ref    "field V33._length (fldOffset=0x8)" P-INDEP
 ;  V54 tmp49        [V54,T03] (  3,  6   )     ref  ->  rsi         single-def "arr expr"
 ;  V55 tmp50        [V55,T04] (  3,  6   )     ref  ->  rsi         single-def "arr expr"
 ;  V56 tmp51        [V56,T05] (  3,  6   )     ref  ->  rsi         single-def "arr expr"
 ;  V57 tmp52        [V57,T06] (  3,  6   )     ref  ->  rsi         single-def "arr expr"
 ;  V58 tmp53        [V58,T07] (  3,  6   )     ref  ->  rax         single-def "arr expr"
 ;  V59 cse0         [V59,T21] (  3,  3   )     int  ->  rax         "CSE #01: moderate"
 ;  V60 cse1         [V60,T17] (  3,  3   )     ref  ->  rdi         "CSE #02: moderate"
 ;  V61 cse2         [V61,T18] (  3,  3   )     ref  ->  rdi         "CSE #03: moderate"
 ;  V62 cse3         [V62,T19] (  3,  3   )     ref  ->  rdi         "CSE #04: moderate"
 ;  V63 cse4         [V63,T20] (  3,  3   )     ref  ->  rdi         "CSE #05: moderate"
 ;  V64 cse5         [V64,T27] (  3,  1.50)     int  ->  rsi         "CSE #06: moderate"
 ;
 ; Lcl frame size = 24
 
 G_M36773_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 24
        lea      rbp, [rsp+0x40]
        mov      qword ptr [rbp-0x38], rdx
        mov      qword ptr [rbp-0x30], rcx
        mov      rbx, rdi
        mov      r15, rsi
        mov      r14d, r8d
 						;; size=36 bbWeight=1 PerfScore 9.50
 G_M36773_IG02:
        mov      r13d, dword ptr [rbx+0x18]
        mov      eax, dword ptr [rbx+0x1C]
        mov      r12d, eax
        and      r12d, 0xD1FFAB1E
        add      r13d, r12d
        mov      rdi, gword ptr [rbx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        dec      edi
        movsxd   rdi, edi
        mov      esi, eax
        cmp      rdi, rsi
        jge      SHORT G_M36773_IG04
 						;; size=39 bbWeight=1 PerfScore 10.75
 G_M36773_IG03:
        mov      rdi, rbx
        mov      esi, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
        call     [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
        xor      eax, eax
 						;; size=22 bbWeight=0.50 PerfScore 2.00
 G_M36773_IG04:
        lea      edi, [rax+0x01]
        mov      dword ptr [rbx+0x1C], edi
        mov      rdi, gword ptr [rbx+0x10]
        mov      rsi, rdi
        cmp      eax, dword ptr [rsi+0x08]
        jae      G_M36773_IG25
        mov      eax, eax
        mov      byte  ptr [rsi+rax+0x10], 82
        mov      r12d, dword ptr [rbx+0x1C]
        mov      edi, dword ptr [rdi+0x08]
        dec      edi
        movsxd   rdi, edi
        mov      esi, r12d
        cmp      rdi, rsi
        jge      SHORT G_M36773_IG06
 						;; size=49 bbWeight=1 PerfScore 15.00
 G_M36773_IG05:
        mov      rdi, rbx
        mov      esi, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
        call     [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
        xor      r12d, r12d
 						;; size=23 bbWeight=0.50 PerfScore 2.00
 G_M36773_IG06:
        lea      edi, [r12+0x01]
        mov      dword ptr [rbx+0x1C], edi
        mov      rdi, gword ptr [rbx+0x10]
        mov      rsi, rdi
        cmp      r12d, dword ptr [rsi+0x08]
        jae      G_M36773_IG25
        mov      eax, r12d
        mov      byte  ptr [rsi+rax+0x10], 83
        mov      r12d, dword ptr [rbx+0x1C]
        mov      edi, dword ptr [rdi+0x08]
        dec      edi
        movsxd   rdi, edi
        mov      esi, r12d
        cmp      rdi, rsi
        jge      SHORT G_M36773_IG08
 						;; size=53 bbWeight=1 PerfScore 15.00
 G_M36773_IG07:
        mov      rdi, rbx
        mov      esi, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
        call     [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
        xor      r12d, r12d
 						;; size=23 bbWeight=0.50 PerfScore 2.00
 G_M36773_IG08:
        lea      edi, [r12+0x01]
        mov      dword ptr [rbx+0x1C], edi
        mov      rdi, gword ptr [rbx+0x10]
        mov      rsi, rdi
        cmp      r12d, dword ptr [rsi+0x08]
        jae      G_M36773_IG25
        mov      eax, r12d
        mov      byte  ptr [rsi+rax+0x10], 68
        mov      r12d, dword ptr [rbx+0x1C]
        mov      edi, dword ptr [rdi+0x08]
        dec      edi
        movsxd   rdi, edi
        mov      esi, r12d
        cmp      rdi, rsi
        jge      SHORT G_M36773_IG10
 						;; size=53 bbWeight=1 PerfScore 15.00
 G_M36773_IG09:
        mov      rdi, rbx
        mov      esi, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
        call     [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
        xor      r12d, r12d
 						;; size=23 bbWeight=0.50 PerfScore 2.00
 G_M36773_IG10:
        lea      edi, [r12+0x01]
        mov      dword ptr [rbx+0x1C], edi
        mov      rdi, gword ptr [rbx+0x10]
        mov      rsi, rdi
        cmp      r12d, dword ptr [rsi+0x08]
        jae      G_M36773_IG25
        mov      eax, r12d
        mov      byte  ptr [rsi+rax+0x10], 83
        mov      r12d, dword ptr [rbx+0x1C]
        mov      edi, dword ptr [rdi+0x08]
        add      edi, -16
        movsxd   rdi, edi
        mov      esi, r12d
        cmp      rdi, rsi
        jge      SHORT G_M36773_IG12
 						;; size=54 bbWeight=1 PerfScore 15.00
 G_M36773_IG11:
        mov      rdi, rbx
        mov      esi, 16
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
        call     [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
        xor      r12d, r12d
 						;; size=23 bbWeight=0.50 PerfScore 2.00
 G_M36773_IG12:
        lea      edi, [r12+0x10]
        mov      dword ptr [rbx+0x1C], edi
        mov      rdi, gword ptr [rbx+0x10]
        test     rdi, rdi
        je       SHORT G_M36773_IG14
 						;; size=17 bbWeight=1 PerfScore 4.75
 G_M36773_IG13:
        mov      esi, dword ptr [rdi+0x08]
        cmp      esi, r12d
        jb       G_M36773_IG24
        mov      eax, r12d
        lea      rdi, bword ptr [rdi+rax+0x10]
        sub      esi, r12d
        jmp      SHORT G_M36773_IG15
 						;; size=25 bbWeight=0.50 PerfScore 3.38
 G_M36773_IG14:
        test     r12d, r12d
        jne      G_M36773_IG24
        xor      rdi, rdi
        xor      esi, esi
 						;; size=13 bbWeight=0.50 PerfScore 0.88
 G_M36773_IG15:
        cmp      esi, 16
        jl       SHORT G_M36773_IG17
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M36773_IG16:
-       cmp      esi, 16
-       jb       SHORT G_M36773_IG17
        vmovups  xmm0, xmmword ptr [rbp-0x38]
        vmovups  xmmword ptr [rdi], xmm0
-						;; size=14 bbWeight=0.50 PerfScore 3.12
+						;; size=9 bbWeight=0.50 PerfScore 2.50
 G_M36773_IG17:
        mov      esi, dword ptr [rbx+0x1C]
        mov      rdi, gword ptr [rbx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        add      edi, -4
        movsxd   rdi, edi
        mov      eax, esi
        cmp      rdi, rax
        jge      SHORT G_M36773_IG19
 						;; size=23 bbWeight=1 PerfScore 8.00
 G_M36773_IG18:
        mov      rdi, rbx
        mov      esi, 4
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
        call     [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
        xor      esi, esi
 						;; size=22 bbWeight=0.50 PerfScore 2.00
 G_M36773_IG19:
        lea      edi, [rsi+0x04]
        mov      dword ptr [rbx+0x1C], edi
        mov      rdi, gword ptr [rbx+0x10]
        mov      edx, r14d
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.BlobUtilities:WriteUInt32(ubyte[],int,uint)
        call     [rax]System.Reflection.BlobUtilities:WriteUInt32(ubyte[],int,uint)
        test     r15, r15
        je       G_M36773_IG23
        mov      ecx, dword ptr [r15+0x08]
        mov      rdi, rbx
        mov      rsi, r15
        xor      edx, edx
        mov      r8d, 1
        xor      r9d, r9d
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:WriteUTF8(System.String,int,int,ubyte,ubyte):this
        call     [rax]System.Reflection.Metadata.BlobBuilder:WriteUTF8(System.String,int,int,ubyte,ubyte):this
        mov      r15d, dword ptr [rbx+0x1C]
        mov      rdi, gword ptr [rbx+0x10]
        mov      edi, dword ptr [rdi+0x08]
        dec      edi
        movsxd   rdi, edi
        mov      esi, r15d
        cmp      rdi, rsi
        jge      SHORT G_M36773_IG21
 						;; size=91 bbWeight=1 PerfScore 22.75
 G_M36773_IG20:
        mov      rdi, rbx
        mov      esi, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Metadata.BlobBuilder:Expand(int):this
        call     [rax]System.Reflection.Metadata.BlobBuilder:Expand(int):this
        xor      r15d, r15d
 						;; size=23 bbWeight=0.50 PerfScore 2.00
 G_M36773_IG21:
        lea      eax, [r15+0x01]
        mov      dword ptr [rbx+0x1C], eax
        mov      rax, gword ptr [rbx+0x10]
        cmp      r15d, dword ptr [rax+0x08]
        jae      SHORT G_M36773_IG25
        mov      edi, r15d
        mov      byte  ptr [rax+rdi+0x10], 0
        mov      eax, dword ptr [rbx+0x18]
        mov      edi, dword ptr [rbx+0x1C]
        and      edi, 0xD1FFAB1E
        add      eax, edi
        sub      eax, r13d
 						;; size=42 bbWeight=1 PerfScore 13.50
 G_M36773_IG22:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M36773_IG23:
        mov      edi, 0x18AB
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.Throw:ArgumentNull(System.String)
        call     [rax]System.Reflection.Throw:ArgumentNull(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
 G_M36773_IG24:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M36773_IG25:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 743, prolog size 19, PerfScore 156.12, instruction count 206, allocated bytes for code 743 (MethodHash=3abd705a) for method System.Reflection.PortableExecutable.DebugDirectoryBuilder:WriteCodeViewData(System.Reflection.Metadata.BlobBuilder,System.String,System.Guid,int):int (FullOpts)
+; Total bytes of code 738, prolog size 19, PerfScore 155.50, instruction count 204, allocated bytes for code 738 (MethodHash=3abd705a) for method System.Reflection.PortableExecutable.DebugDirectoryBuilder:WriteCodeViewData(System.Reflection.Metadata.BlobBuilder,System.String,System.Guid,int):int (FullOpts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment