Assembly Diffs

linux arm64

Diffs are based on 2,501,661 contexts (1,003,806 MinOpts, 1,497,855 FullOpts).

MISSED contexts: base: 3,546 (0.14%), diff: 3,556 (0.14%)

Overall (+1,884 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 80,912,504 -64
coreclr_tests.run.linux.arm64.checked.mch 509,947,608 +260
libraries.pmi.linux.arm64.checked.mch 75,989,468 +168
libraries_tests.run.linux.arm64.Release.mch 381,322,764 +1,596
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 162,528,980 -76

FullOpts (+1,884 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 55,976,044 -64
coreclr_tests.run.linux.arm64.checked.mch 160,722,552 +260
libraries.pmi.linux.arm64.checked.mch 75,869,484 +168
libraries_tests.run.linux.arm64.Release.mch 166,025,624 +1,596
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 149,047,768 -76

Example diffs

benchmarks.run_pgo.linux.arm64.checked.mch

-24 (-1.09%) : 85323.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)

@@ -52,7 +52,7 @@
 ;* V40 tmp30        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
 ;* V41 tmp31        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]>
 ;  V42 tmp32        [V42    ] (  5,  2   )  struct ( 8) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Reflection.Metadata.Ecma335.LocalVariableTypeEncoder>
-;  V43 tmp33        [V43,T34] (  3,  2   )     int  ->  registers   "impAppendStmt"
+;  V43 tmp33        [V43,T34] (  3,  2   )     int  ->  x28         "impAppendStmt"
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Reflection.Metadata.Ecma335.SignatureTypeEncoder>
 ;* V45 tmp35        [V45    ] (  0,  0   )  struct ( 8) zero-ref    "non-inline candidate call" <System.Reflection.Metadata.Ecma335.CustomModifiersEncoder>
 ;* V46 tmp36        [V46    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]>
@@ -66,11 +66,11 @@
 ;* V54 tmp44        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V55 tmp45        [V55    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V56 tmp46        [V56    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.Ecma335.SignatureTypeEncoder>
-;  V57 tmp47        [V57,T87] (  4,  0   )     ref  ->  x22         class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
-;  V58 tmp48        [V58,T91] (  3,  0   )     int  ->   x0         "Inline stloc first use temp"
+;  V57 tmp47        [V57,T86] (  4,  0   )     ref  ->  x22         class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
+;  V58 tmp48        [V58,T90] (  3,  0   )     int  ->   x0         "Inline stloc first use temp"
 ;* V59 tmp49        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <ubyte[]>
-;  V60 tmp50        [V60,T88] (  4,  0   )     ref  ->  x22         class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
-;  V61 tmp51        [V61,T92] (  3,  0   )     int  ->   x0         "Inline stloc first use temp"
+;  V60 tmp50        [V60,T87] (  4,  0   )     ref  ->  x22         class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
+;  V61 tmp51        [V61,T91] (  3,  0   )     int  ->   x0         "Inline stloc first use temp"
 ;* V62 tmp52        [V62    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <ubyte[]>
 ;  V63 tmp53        [V63,T35] (  2,  2   )     ref  ->  x28         class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
 ;  V64 tmp54        [V64,T31] (  4,  2   )     int  ->   x3         "Inline stloc first use temp"
@@ -173,8 +173,8 @@
 ;* V161 tmp151      [V161    ] (  0,  0   )     ref  ->  zero-ref    "field V41.array (fldOffset=0x0)" P-INDEP
 ;  V162 tmp152      [V162    ] (  5,  1   )     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V42.<Builder>k__BackingField (fldOffset=0x0)" P-DEP
 ;* V163 tmp153      [V163    ] (  0,  0   )     ref  ->  zero-ref    "field V44.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V164 tmp154      [V164,T93] (  2,  0   )     ref  ->  x22         "field V45.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V165 tmp155      [V165,T94] (  2,  0   )     ref  ->   x2         "field V46.array (fldOffset=0x0)" P-INDEP
+;  V164 tmp154      [V164,T92] (  2,  0   )     ref  ->  x22         "field V45.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V165 tmp155      [V165,T93] (  2,  0   )     ref  ->   x2         "field V46.array (fldOffset=0x0)" P-INDEP
 ;  V166 tmp156      [V166,T57] (  3,  1   )     ref  ->  x28         "field V47.array (fldOffset=0x0)" P-INDEP
 ;  V167 tmp157      [V167,T64] (  2,  1   )     ref  ->  x28         "field V56.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
 ;  V168 tmp158      [V168,T30] (  7,  2   )     int  ->  x26         single-def "field V65._value (fldOffset=0x0)" P-INDEP
@@ -224,12 +224,12 @@
 ;* V212 tmp202      [V212    ] (  0,  0   )   byref  ->  zero-ref    "field V117._reference (fldOffset=0x0)" P-INDEP
 ;* V213 tmp203      [V213    ] (  0,  0   )     int  ->  zero-ref    "field V117._length (fldOffset=0x8)" P-INDEP
 ;* V214 tmp204      [V214    ] (  0,  0   )     ref  ->  zero-ref    "field V118.array (fldOffset=0x0)" P-INDEP
-;  V215 tmp205      [V215,T95] (  2,  0   )     ref  ->   x1         "field V122.array (fldOffset=0x0)" P-INDEP
+;  V215 tmp205      [V215,T94] (  2,  0   )     ref  ->   x1         "field V122.array (fldOffset=0x0)" P-INDEP
 ;  V216 tmp206      [V216,T69] (  2,  1   )     int  ->  x26         single-def "field V140._rowId (fldOffset=0x0)" P-INDEP
 ;  V217 tmp207      [V217,T22] (  3,  3   )     ref  ->   x1         single-def "arr expr"
 ;  V218 tmp208      [V218,T23] (  3,  3   )     ref  ->   x0         single-def "arr expr"
-;  V219 tmp209      [V219,T89] (  3,  0   )     ref  ->   x1         "arr expr"
-;  V220 tmp210      [V220,T90] (  3,  0   )     ref  ->  x11         "arr expr"
+;  V219 tmp209      [V219,T88] (  3,  0   )     ref  ->   x1         "arr expr"
+;  V220 tmp210      [V220,T89] (  3,  0   )     ref  ->  x11         "arr expr"
 ;  V221 cse0        [V221,T47] (  3,  1.50)     int  ->   x2         "CSE - moderate"
 ;  V222 cse1        [V222,T48] (  3,  1.50)     int  ->   x0         "CSE - moderate"
 ;  V223 cse2        [V223,T16] (  2,  3.10)     int  ->   x2         hoist "CSE - moderate"
@@ -239,7 +239,6 @@
 ;  V227 cse6        [V227,T15] (  5,  3.50)     int  ->  x21         "CSE - moderate"
 ;  V228 cse7        [V228,T32] (  4,  2   )    long  ->  x26         "CSE - moderate"
 ;  V229 cse8        [V229,T33] (  4,  2   )    long  ->  x27         "CSE - moderate"
-;  V230 cse9        [V230,T86] ( 11,  0   )    long  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 16
 
@@ -267,17 +266,16 @@ G_M099_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, b
 G_M099_IG03:        ; bbWeight=0, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
             mov     x0, x1
             ; gcrRegs +[x0]
-            movz    x20, #0xD1FFAB1E      // code for <unknown method>
-            movk    x20, #0xD1FFAB1E LSL #16
-            movk    x20, #0xD1FFAB1E LSL #32
-            mov     x11, x20
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #0xD1FFAB1E LSL #32
             ldr     x1, [x11]
             ; gcrRegs -[x1]
             blr     x1
             ; gcr arg pop 0
             mov     x20, x0
             ; gcrRegs +[x20]
-                       ;; size=32 bbWeight=0 PerfScore 0.00
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M099_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     w21, [x20, #0x08]
@@ -775,17 +773,15 @@ G_M099_IG53:        ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs
             ; byrRegs -[x0]
             mov     x0, x25
             ; gcrRegs +[x0]
-            movz    x11, #0xD1FFAB1E
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
             movk    x11, #0xD1FFAB1E LSL #16
             movk    x11, #0xD1FFAB1E LSL #32
-            mov     x28, x11
-            add     x11, x28, #40
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
             mov     x28, x0
             ; gcrRegs +[x28]
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M099_IG54:        ; bbWeight=0.50, gcrefRegs=12980000 {x19 x20 x23 x25 x28}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     w0, [x28, #0x08]
@@ -805,10 +801,9 @@ G_M099_IG55:        ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs
             mov     x22, x0
             ; gcrRegs +[x22]
             mov     x0, x25
-            movz    x28, #0xD1FFAB1E
-            movk    x28, #0xD1FFAB1E LSL #16
-            movk    x28, #0xD1FFAB1E LSL #32
-            add     x11, x28, #40
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #0xD1FFAB1E LSL #32
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
@@ -824,7 +819,7 @@ G_M099_IG55:        ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs
             blr     x3
             ; gcrRegs -[x0-x2 x22]
             ; gcr arg pop 0
-                       ;; size=88 bbWeight=0 PerfScore 0.00
+                       ;; size=84 bbWeight=0 PerfScore 0.00
 G_M099_IG56:        ; bbWeight=0.50, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs=0000 {}, byref, isz
             cmp     x26, x27
             beq     G_M099_IG58
@@ -832,17 +827,16 @@ G_M099_IG56:        ; bbWeight=0.50, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefR
 G_M099_IG57:        ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs=0000 {}, byref
             mov     x0, x25
             ; gcrRegs +[x0]
-            movz    x28, #0xD1FFAB1E
-            movk    x28, #0xD1FFAB1E LSL #16
-            movk    x28, #0xD1FFAB1E LSL #32
-            add     x11, x28, #48
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #0xD1FFAB1E LSL #32
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w22, w0
+            sxtw    w28, w0
             b       G_M099_IG82
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=32 bbWeight=0 PerfScore 0.00
 G_M099_IG58:        ; bbWeight=0.50, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs=0000 {}, byref, isz
             ldrb    w0, [x25, #0x28]
             and     w28, w0, #1
@@ -903,18 +897,16 @@ G_M099_IG62:        ; bbWeight=0.50, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefR
 G_M099_IG63:        ; bbWeight=0, gcrefRegs=12980000 {x19 x20 x23 x25 x28}, byrefRegs=0000 {}, byref
             mov     x0, x25
             ; gcrRegs +[x0]
-            movz    x11, #0xD1FFAB1E
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
             movk    x11, #0xD1FFAB1E LSL #16
             movk    x11, #0xD1FFAB1E LSL #32
-            mov     x22, x11
-            add     x11, x22, #64
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs -[x25]
             ; gcr arg pop 0
             mov     x2, x0
             ; gcrRegs +[x2]
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M099_IG64:        ; bbWeight=0.50, gcrefRegs=10980004 {x2 x19 x20 x23 x28}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             mov     x0, x19
@@ -1109,16 +1101,17 @@ G_M099_IG82:        ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs
             ; gcrRegs +[x25]
             mov     x0, x25
             ; gcrRegs +[x0]
-            add     x11, x28, #56
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #0xD1FFAB1E LSL #32
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
             sxtw    w4, w0
             tst     w4, #255
-            mov     w28, w22
             beq     G_M099_IG60
-                       ;; size=32 bbWeight=0 PerfScore 0.00
+                       ;; size=36 bbWeight=0 PerfScore 0.00
 G_M099_IG83:        ; bbWeight=0, gcrefRegs=2980000 {x19 x20 x23 x25}, byrefRegs=0000 {}, byref, isz
             ldr     x22, [fp, #0x18]   // [V162 tmp152]
             ; gcrRegs +[x22]
@@ -1186,7 +1179,7 @@ G_M099_IG85:        ; bbWeight=0, gcrefRegs=800000 {x23}, byrefRegs=0001 {x0}, b
             b       G_M099_IG77
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 2204, prolog size 36, PerfScore 265.75, instruction count 551, allocated bytes for code 2204 (MethodHash=4a3bff9c) for method Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
+Total bytes of code 2180, prolog size 36, PerfScore 265.75, instruction count 545, allocated bytes for code 2180 (MethodHash=4a3bff9c) for method Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -1197,7 +1190,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 551 (0x00227) Actual length = 2204 (0x00089c)
+  Function Length   : 545 (0x00221) Actual length = 2180 (0x000884)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-0.36%) : 144959.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)

@@ -22,16 +22,16 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V11 tmp2         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V12 tmp3         [V12,T50] (  2,  0.38)     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V13 tmp4         [V13,T71] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V13 tmp4         [V13,T70] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V14 tmp5         [V14,T48] (  3,  0.43)     ref  ->  x24        
 ;  V15 tmp6         [V15,T45] (  2,  0.51)     ref  ->  x26         class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
 ;  V16 tmp7         [V16,T28] (  4,  1.03)    long  ->   x1         "spilling ret_expr"
-;  V17 tmp8         [V17,T70] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V17 tmp8         [V17,T69] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V18 tmp9         [V18    ] (  0,  0   )    long  ->  zero-ref    "guarded devirt return temp"
 ;  V19 tmp10        [V19,T29] (  3,  1.03)     ref  ->   x0         single-def "guarded devirt arg temp"
 ;  V20 tmp11        [V20,T30] (  3,  1.03)    long  ->   x2         "guarded devirt arg temp"
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-;  V22 tmp13        [V22,T74] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
+;  V22 tmp13        [V22,T73] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
 ;* V23 tmp14        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
 ;* V24 tmp15        [V24,T32] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V25 tmp16        [V25,T00] ( 11, 15.41)     ref  ->  x24         class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
 ;  V29 tmp20        [V29,T23] ( 12,  2.15)   byref  ->  registers   "Inline stloc first use temp"
 ;  V30 tmp21        [V30,T25] (  4,  2.02)   byref  ->  x24         "Inline stloc first use temp"
 ;  V31 tmp22        [V31,T26] (  4,  1.88)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V32 tmp23        [V32,T64] (  5,  0   )     int  ->  x27         "Inline stloc first use temp"
-;  V33 tmp24        [V33,T62] (  6,  0   )     int  ->  x28         "Inline stloc first use temp"
-;  V34 tmp25        [V34,T65] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V35 tmp26        [V35,T67] (  4,  0   )     int  ->  [fp+0x54]  "Inline stloc first use temp"
+;  V32 tmp23        [V32,T63] (  5,  0   )     int  ->  x26         "Inline stloc first use temp"
+;  V33 tmp24        [V33,T62] (  6,  0   )     int  ->  x27         "Inline stloc first use temp"
+;  V34 tmp25        [V34,T64] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V35 tmp26        [V35,T66] (  4,  0   )     int  ->  x28         "Inline stloc first use temp"
 ;  V36 tmp27        [V36,T10] (  5,  4.45)     int  ->  x25         "Inline stloc first use temp"
 ;  V37 tmp28        [V37,T08] (  6,  5.76)     int  ->   x0         "Inline stloc first use temp"
 ;  V38 tmp29        [V38,T21] (  3,  2.56)     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
 ;* V50 tmp41        [V50    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V51 tmp42        [V51    ] (  0,  0   )  struct (24) zero-ref    "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V52 tmp43        [V52,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V53 tmp44        [V53,T75] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V53 tmp44        [V53,T74] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V54 tmp45        [V54    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V55 tmp46        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V56 tmp47        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp54        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V64 tmp55        [V64,T66] (  4,  0   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V65 tmp56        [V65,T68] (  4,  0   )     int  ->  [fp+0x50]  spill-single-def "Inlining Arg"
-;  V66 tmp57        [V66,T76] (  2,  0   )    long  ->  [fp+0x48]  spill-single-def "Inlining Arg"
-;  V67 tmp58        [V67,T69] (  4,  0   )     int  ->  [fp+0x44]  spill-single-def "Inline stloc first use temp"
+;  V64 tmp55        [V64,T65] (  4,  0   )     ref  ->  x27         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V65 tmp56        [V65,T67] (  4,  0   )     int  ->  x28         "Inlining Arg"
+;  V66 tmp57        [V66,T75] (  2,  0   )    long  ->  [fp+0x50]  spill-single-def "Inlining Arg"
+;  V67 tmp58        [V67,T68] (  4,  0   )     int  ->  [fp+0x4C]  spill-single-def "Inline stloc first use temp"
 ;* V68 tmp59        [V68    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V69 tmp60        [V69,T31] (  2,  1.03)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V70 tmp61        [V70,T40] (  4,  0.79)     ref  ->  x24        
 ;  V71 tmp62        [V71,T44] (  3,  0.55)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V72 tmp63        [V72    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V73 tmp64        [V73,T77] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
+;  V73 tmp64        [V73,T76] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V74 tmp65        [V74,T22] (  4,  2.34)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V75 tmp66        [V75    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V76 tmp67        [V76,T42] (  2,  0.71)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -97,7 +97,7 @@
 ;  V85 tmp76        [V85,T61] (  2,  0.01)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V86 tmp77        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V87 tmp78        [V87,T51] (  2,  0.38)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V88 tmp79        [V88,T72] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V88 tmp79        [V88,T71] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V89 tmp80        [V89,T07] (  3,  5.85)     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V90 tmp81        [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V91 tmp82        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -116,19 +116,18 @@
 ;  V104 tmp95       [V104,T58] (  4,  0.08)     ref  ->   x8         "field V51.Item1 (fldOffset=0x0)" P-INDEP
 ;  V105 tmp96       [V105,T56] (  2,  0.13)    long  ->   x9         "field V51.Item2 (fldOffset=0x8)" P-INDEP
 ;  V106 tmp97       [V106,T57] (  2,  0.13)     int  ->  x10         "field V51.Item3 (fldOffset=0x10)" P-INDEP
-;  V107 tmp98       [V107    ] (  8,  7.81)  struct (24) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99       [V108,T78] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101      [V110,T79] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V107 tmp98       [V107    ] (  8,  7.81)  struct (24) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99       [V108,T77] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101      [V110,T78] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V111 tmp102      [V111,T52] (  2,  0.34)     ref  ->  x24         single-def "argument with side effect"
 ;  V112 tmp103      [V112,T53] (  2,  0.34)     ref  ->   x2         single-def "argument with side effect"
-;  V113 tmp104      [V113,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V113 tmp104      [V113,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
 ;  V114 tmp105      [V114,T13] (  2,  3.90)     ref  ->   x0         single-def "argument with side effect"
 ;  V115 cse0        [V115,T41] (  3,  0.77)     ref  ->   x0         "CSE - conservative"
 ;  V116 cse1        [V116,T17] (  3,  3.20)     int  ->   x5         hoist "CSE - aggressive"
 ;  V117 cse2        [V117,T19] (  8,  2.93)     ref  ->   x1         multi-def "CSE - moderate"
-;  V118 cse3        [V118,T63] (  6,  0   )    long  ->  registers   multi-def "CSE - conservative"
-;  V119 rat0        [V119,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
+;  V118 rat0        [V118,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 96
 
@@ -140,18 +139,19 @@ G_M61086_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x25, x26, [sp, #0xA0]
             stp     x27, x28, [sp, #0xB0]
             mov     fp, sp
-            add     x9, fp, #16
+            add     x9, fp, #24
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
-            stp     q16, q16, [x9, #0x40]
+            stp     xzr, xzr, [x9, #0x40]
+            str     xzr, [x9, #0x50]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x21, x2
             mov     w22, w3
-                       ;; size=64 bbWeight=1 PerfScore 12.50
+                       ;; size=68 bbWeight=1 PerfScore 13.50
 G_M61086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             bl      <unknown method>
             ; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09:        ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
                        ;; size=24 bbWeight=0 PerfScore 0.00
 G_M61086_IG10:        ; bbWeight=0, nogc, extend
             ldp     x0, x1, [fp, #0x58]
-            stp     x0, x1, [fp, #0x28]
+            stp     x0, x1, [fp, #0x30]
             ldr     x0, [fp, #0x68]
-            str     x0, [fp, #0x38]
+            str     x0, [fp, #0x40]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M61086_IG11:        ; bbWeight=0, isz, extend
             mov     x0, x25
             ; gcrRegs +[x0]
-            add     x1, fp, #40    // [V107 tmp98]
-            movz    x26, #0xD1FFAB1E      // code for <unknown method>
-            movk    x26, #0xD1FFAB1E LSL #16
-            movk    x26, #0xD1FFAB1E LSL #32
-            mov     x11, x26
+            add     x1, fp, #48    // [V107 tmp98]
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #0xD1FFAB1E LSL #32
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w27, w0
-            ldr     x28, [x24, #0x08]
-            ; gcrRegs +[x28]
-            ldr     w1, [x28, #0x08]
-            str     w1, [fp, #0x50]    // [V65 tmp56]
-            ldr     x2, [x24, #0x30]
-            str     x2, [fp, #0x48]    // [V66 tmp57]
+            sxtw    w26, w0
+            ldr     x27, [x24, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w28, [x27, #0x08]
+            ldr     x1, [x24, #0x30]
+            str     x1, [fp, #0x50]    // [V66 tmp57]
             mov     w0, #1
-            movz    x3, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-            blr     x3
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            mov     w0, w27
-            ldr     x2, [fp, #0x48]    // [V66 tmp57]
-            mul     x0, x2, x0
+            mov     w0, w26
+            ldr     x1, [fp, #0x50]    // [V66 tmp57]
+            mul     x0, x1, x0
             lsr     x0, x0, #32
             add     x0, x0, #1
-            ldr     w1, [fp, #0x50]    // [V65 tmp56]
-            mov     w2, w1
-            mul     x0, x0, x2
-            lsr     x2, x0, #32
-            str     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w1, #0
+            mov     w1, w28
+            mul     x0, x0, x1
+            lsr     x1, x0, #32
+            str     w1, [fp, #0x4C]    // [V67 tmp58]
+            cmp     w28, #0
             beq     G_M61086_IG54
-            udiv    w0, w27, w1
-            msub    w0, w0, w1, w27
-            cmp     w0, w2
+            udiv    w0, w26, w28
+            msub    w0, w0, w28, w26
+            cmp     w0, w1
             cset    x0, eq
-            movz    x1, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            ldr     x1, [x1]
-            blr     x1
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            ldr     w0, [x28, #0x08]
-            ldr     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w2, w0
+            ldr     w0, [x27, #0x08]
+            ldr     w28, [fp, #0x4C]   // [V67 tmp58]
+            cmp     w28, w0
             bhs     G_M61086_IG53
-            add     x0, x28, #16
+            add     x0, x27, #16
             ; byrRegs +[x0]
-            ldr     w28, [x0, w2, UXTW #2]
-            ; gcrRegs -[x28]
+            ldr     w27, [x0, w28, UXTW #2]
+            ; gcrRegs -[x27]
             ldr     x24, [x24, #0x10]
-            mov     w3, wzr
-            sub     w28, w28, #1
+            mov     w28, wzr
+            sub     w27, w27, #1
             b       G_M61086_IG55
-                       ;; size=204 bbWeight=0 PerfScore 0.00
+                       ;; size=192 bbWeight=0 PerfScore 0.00
 G_M61086_IG12:        ; bbWeight=0.94, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x25]
             ; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28:        ; bbWeight=0.98, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
             ldr     x0, [x19, #0x90]
             ; gcrRegs +[x0]
             ldrsb   wzr, [x0]
-            stp     x20, x21, [fp, #0x28]  // [V107 tmp98], [V107 tmp98+0x08]
-            str     w22, [fp, #0x38]   // [V107 tmp98+0x10]
-            add     x1, fp, #40    // [V107 tmp98]
+            stp     x20, x21, [fp, #0x30]  // [V107 tmp98], [V107 tmp98+0x08]
+            str     w22, [fp, #0x40]   // [V107 tmp98+0x10]
+            add     x1, fp, #48    // [V107 tmp98]
             mov     x2, x24
             ; gcrRegs +[x2]
...

-8 (-0.36%) : 141492.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)

@@ -22,16 +22,16 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V11 tmp2         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V12 tmp3         [V12,T50] (  2,  0.37)     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V13 tmp4         [V13,T70] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V13 tmp4         [V13,T69] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V14 tmp5         [V14,T48] (  3,  0.41)     ref  ->  x24        
 ;  V15 tmp6         [V15,T45] (  2,  0.52)     ref  ->  x26         class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
 ;  V16 tmp7         [V16,T28] (  4,  1.05)    long  ->   x1         "spilling ret_expr"
-;  V17 tmp8         [V17,T69] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V17 tmp8         [V17,T68] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V18 tmp9         [V18    ] (  0,  0   )    long  ->  zero-ref    "guarded devirt return temp"
 ;  V19 tmp10        [V19,T29] (  3,  1.05)     ref  ->   x0         single-def "guarded devirt arg temp"
 ;  V20 tmp11        [V20,T30] (  3,  1.05)    long  ->   x2         "guarded devirt arg temp"
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-;  V22 tmp13        [V22,T74] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
+;  V22 tmp13        [V22,T73] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
 ;* V23 tmp14        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
 ;* V24 tmp15        [V24,T32] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V25 tmp16        [V25,T00] ( 11, 15.51)     ref  ->  x24         class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
 ;  V29 tmp20        [V29,T23] ( 12,  2.19)   byref  ->  registers   "Inline stloc first use temp"
 ;  V30 tmp21        [V30,T25] (  4,  2.03)   byref  ->  x24         "Inline stloc first use temp"
 ;  V31 tmp22        [V31,T26] (  4,  1.90)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V32 tmp23        [V32,T63] (  5,  0   )     int  ->  x27         "Inline stloc first use temp"
-;  V33 tmp24        [V33,T61] (  6,  0   )     int  ->  x28         "Inline stloc first use temp"
-;  V34 tmp25        [V34,T64] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V35 tmp26        [V35,T66] (  4,  0   )     int  ->  [fp+0x54]  "Inline stloc first use temp"
+;  V32 tmp23        [V32,T62] (  5,  0   )     int  ->  x26         "Inline stloc first use temp"
+;  V33 tmp24        [V33,T61] (  6,  0   )     int  ->  x27         "Inline stloc first use temp"
+;  V34 tmp25        [V34,T63] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V35 tmp26        [V35,T65] (  4,  0   )     int  ->  x28         "Inline stloc first use temp"
 ;  V36 tmp27        [V36,T10] (  5,  4.50)     int  ->  x25         "Inline stloc first use temp"
 ;  V37 tmp28        [V37,T07] (  6,  5.85)     int  ->   x0         "Inline stloc first use temp"
 ;  V38 tmp29        [V38,T21] (  3,  2.60)     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
 ;* V50 tmp41        [V50    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V51 tmp42        [V51    ] (  0,  0   )  struct (24) zero-ref    "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V52 tmp43        [V52,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V53 tmp44        [V53,T75] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V53 tmp44        [V53,T74] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V54 tmp45        [V54    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V55 tmp46        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V56 tmp47        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp54        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V64 tmp55        [V64,T65] (  4,  0   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V65 tmp56        [V65,T67] (  4,  0   )     int  ->  [fp+0x50]  spill-single-def "Inlining Arg"
-;  V66 tmp57        [V66,T76] (  2,  0   )    long  ->  [fp+0x48]  spill-single-def "Inlining Arg"
-;  V67 tmp58        [V67,T68] (  4,  0   )     int  ->  [fp+0x44]  spill-single-def "Inline stloc first use temp"
+;  V64 tmp55        [V64,T64] (  4,  0   )     ref  ->  x27         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V65 tmp56        [V65,T66] (  4,  0   )     int  ->  x28         "Inlining Arg"
+;  V66 tmp57        [V66,T75] (  2,  0   )    long  ->  [fp+0x50]  spill-single-def "Inlining Arg"
+;  V67 tmp58        [V67,T67] (  4,  0   )     int  ->  [fp+0x4C]  spill-single-def "Inline stloc first use temp"
 ;* V68 tmp59        [V68    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V69 tmp60        [V69,T31] (  2,  1.05)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V70 tmp61        [V70,T40] (  4,  0.80)     ref  ->  x24        
 ;  V71 tmp62        [V71,T44] (  3,  0.55)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V72 tmp63        [V72    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V73 tmp64        [V73,T77] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
+;  V73 tmp64        [V73,T76] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V74 tmp65        [V74,T22] (  4,  2.34)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V75 tmp66        [V75    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V76 tmp67        [V76,T42] (  2,  0.74)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -94,10 +94,10 @@
 ;  V82 tmp73        [V82,T49] (  2,  0.41)   ubyte  ->   x0         "Inline return value spill temp"
 ;  V83 tmp74        [V83,T27] (  3,  1.23)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V84 tmp75        [V84    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V85 tmp76        [V85,T71] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V85 tmp76        [V85,T70] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V86 tmp77        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V87 tmp78        [V87,T51] (  2,  0.37)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V88 tmp79        [V88,T72] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V88 tmp79        [V88,T71] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V89 tmp80        [V89,T08] (  3,  5.82)     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V90 tmp81        [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V91 tmp82        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -116,19 +116,18 @@
 ;  V104 tmp95       [V104,T54] (  4,  0.07)     ref  ->   x8         "field V51.Item1 (fldOffset=0x0)" P-INDEP
 ;  V105 tmp96       [V105,T58] (  2,  0.05)    long  ->   x9         "field V51.Item2 (fldOffset=0x8)" P-INDEP
 ;  V106 tmp97       [V106,T59] (  2,  0.05)     int  ->  x10         "field V51.Item3 (fldOffset=0x10)" P-INDEP
-;  V107 tmp98       [V107    ] (  8,  7.77)  struct (24) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99       [V108,T78] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101      [V110,T79] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V107 tmp98       [V107    ] (  8,  7.77)  struct (24) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99       [V108,T77] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101      [V110,T78] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V111 tmp102      [V111,T52] (  2,  0.37)     ref  ->  x24         single-def "argument with side effect"
 ;  V112 tmp103      [V112,T53] (  2,  0.37)     ref  ->   x2         single-def "argument with side effect"
-;  V113 tmp104      [V113,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V113 tmp104      [V113,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
 ;  V114 tmp105      [V114,T13] (  2,  3.88)     ref  ->   x0         single-def "argument with side effect"
 ;  V115 cse0        [V115,T41] (  3,  0.79)     ref  ->   x0         "CSE - conservative"
 ;  V116 cse1        [V116,T17] (  3,  3.25)     int  ->   x5         hoist "CSE - aggressive"
 ;  V117 cse2        [V117,T20] (  8,  2.91)     ref  ->   x1         multi-def "CSE - moderate"
-;  V118 cse3        [V118,T62] (  6,  0   )    long  ->  registers   multi-def "CSE - conservative"
-;  V119 rat0        [V119,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
+;  V118 rat0        [V118,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 96
 
@@ -140,18 +139,19 @@ G_M61086_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x25, x26, [sp, #0xA0]
             stp     x27, x28, [sp, #0xB0]
             mov     fp, sp
-            add     x9, fp, #16
+            add     x9, fp, #24
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
-            stp     q16, q16, [x9, #0x40]
+            stp     xzr, xzr, [x9, #0x40]
+            str     xzr, [x9, #0x50]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x21, x2
             mov     w22, w3
-                       ;; size=64 bbWeight=1 PerfScore 12.50
+                       ;; size=68 bbWeight=1 PerfScore 13.50
 G_M61086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             bl      <unknown method>
             ; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09:        ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
                        ;; size=24 bbWeight=0 PerfScore 0.00
 G_M61086_IG10:        ; bbWeight=0, nogc, extend
             ldp     x0, x1, [fp, #0x58]
-            stp     x0, x1, [fp, #0x28]
+            stp     x0, x1, [fp, #0x30]
             ldr     x0, [fp, #0x68]
-            str     x0, [fp, #0x38]
+            str     x0, [fp, #0x40]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M61086_IG11:        ; bbWeight=0, isz, extend
             mov     x0, x25
             ; gcrRegs +[x0]
-            add     x1, fp, #40    // [V107 tmp98]
-            movz    x26, #0xD1FFAB1E      // code for <unknown method>
-            movk    x26, #0xD1FFAB1E LSL #16
-            movk    x26, #0xD1FFAB1E LSL #32
-            mov     x11, x26
+            add     x1, fp, #48    // [V107 tmp98]
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #0xD1FFAB1E LSL #32
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w27, w0
-            ldr     x28, [x24, #0x08]
-            ; gcrRegs +[x28]
-            ldr     w1, [x28, #0x08]
-            str     w1, [fp, #0x50]    // [V65 tmp56]
-            ldr     x2, [x24, #0x30]
-            str     x2, [fp, #0x48]    // [V66 tmp57]
+            sxtw    w26, w0
+            ldr     x27, [x24, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w28, [x27, #0x08]
+            ldr     x1, [x24, #0x30]
+            str     x1, [fp, #0x50]    // [V66 tmp57]
             mov     w0, #1
-            movz    x3, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-            blr     x3
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            mov     w0, w27
-            ldr     x2, [fp, #0x48]    // [V66 tmp57]
-            mul     x0, x2, x0
+            mov     w0, w26
+            ldr     x1, [fp, #0x50]    // [V66 tmp57]
+            mul     x0, x1, x0
             lsr     x0, x0, #32
             add     x0, x0, #1
-            ldr     w1, [fp, #0x50]    // [V65 tmp56]
-            mov     w2, w1
-            mul     x0, x0, x2
-            lsr     x2, x0, #32
-            str     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w1, #0
+            mov     w1, w28
+            mul     x0, x0, x1
+            lsr     x1, x0, #32
+            str     w1, [fp, #0x4C]    // [V67 tmp58]
+            cmp     w28, #0
             beq     G_M61086_IG53
-            udiv    w0, w27, w1
-            msub    w0, w0, w1, w27
-            cmp     w0, w2
+            udiv    w0, w26, w28
+            msub    w0, w0, w28, w26
+            cmp     w0, w1
             cset    x0, eq
-            movz    x1, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            ldr     x1, [x1]
-            blr     x1
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            ldr     w0, [x28, #0x08]
-            ldr     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w2, w0
+            ldr     w0, [x27, #0x08]
+            ldr     w28, [fp, #0x4C]   // [V67 tmp58]
+            cmp     w28, w0
             bhs     G_M61086_IG52
-            add     x0, x28, #16
+            add     x0, x27, #16
             ; byrRegs +[x0]
-            ldr     w28, [x0, w2, UXTW #2]
-            ; gcrRegs -[x28]
+            ldr     w27, [x0, w28, UXTW #2]
+            ; gcrRegs -[x27]
             ldr     x24, [x24, #0x10]
-            mov     w3, wzr
-            sub     w28, w28, #1
+            mov     w28, wzr
+            sub     w27, w27, #1
             b       G_M61086_IG54
-                       ;; size=204 bbWeight=0 PerfScore 0.00
+                       ;; size=192 bbWeight=0 PerfScore 0.00
 G_M61086_IG12:        ; bbWeight=0.95, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x25]
             ; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28:        ; bbWeight=0.97, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
             ldr     x0, [x19, #0x90]
             ; gcrRegs +[x0]
             ldrsb   wzr, [x0]
-            stp     x20, x21, [fp, #0x28]  // [V107 tmp98], [V107 tmp98+0x08]
-            str     w22, [fp, #0x38]   // [V107 tmp98+0x10]
-            add     x1, fp, #40    // [V107 tmp98]
+            stp     x20, x21, [fp, #0x30]  // [V107 tmp98], [V107 tmp98+0x08]
...

+8 (+0.88%) : 120371.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)

@@ -12,57 +12,56 @@
 ;  V00 this         [V00,T03] ( 11,  4.96)     ref  ->  x19         this class-hnd single-def <System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]>
 ;  V01 arg1         [V01,T02] (  9,  5.01)  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def <BenchmarksGame.ByteString>
 ;  V02 loc0         [V02,T00] ( 13,  7.80)   byref  ->  x24        
-;  V03 loc1         [V03,T15] (  3,  2.00)   byref  ->   x0        
-;  V04 loc2         [V04,T16] (  4,  1.95)     ref  ->  x23         class-hnd single-def <<unknown class>>
+;  V03 loc1         [V03,T16] (  3,  2.00)   byref  ->   x0        
+;  V04 loc2         [V04,T17] (  4,  1.95)     ref  ->  x23         class-hnd single-def <<unknown class>>
 ;  V05 loc3         [V05,T21] (  5,  1.30)     int  ->  x25        
 ;  V06 loc4         [V06,T11] (  6,  2.94)     int  ->   x0        
-;  V07 loc5         [V07,T22] (  3,  1.30)     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V08 loc6         [V08,T23] (  4,  1.02)     int  ->   x2        
-;  V09 loc7         [V09,T29] (  5,  0.03)     int  ->  x26        
-;  V10 loc8         [V10,T28] (  6,  0.04)     int  ->   x0        
-;  V11 loc9         [V11,T33] (  3,  0.02)     ref  ->  x20         class-hnd exact single-def <<unknown class>>
-;  V12 loc10        [V12,T30] (  4,  0.03)     int  ->  x21        
+;  V07 loc5         [V07,T12] (  5,  2.94)     ref  ->   x1         class-hnd exact single-def <<unknown class>>
+;  V08 loc6         [V08,T22] (  4,  1.02)     int  ->   x2        
+;  V09 loc7         [V09,T28] (  5,  0.03)     int  ->  x26        
+;  V10 loc8         [V10,T27] (  6,  0.04)     int  ->   x0        
+;  V11 loc9         [V11,T32] (  3,  0.02)     ref  ->  x20         class-hnd exact single-def <<unknown class>>
+;  V12 loc10        [V12,T29] (  4,  0.03)     int  ->  x21        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V15 tmp2         [V15,T41] (  3,  0   )     int  ->  x25         "Inline return value spill temp"
-;  V16 tmp3         [V16,T19] (  6,  1.68)     int  ->  x25         "Inline stloc first use temp"
-;  V17 tmp4         [V17,T37] (  7,  0   )     int  ->   x0         "Inline stloc first use temp"
+;  V15 tmp2         [V15,T40] (  3,  0   )     int  ->  x25         "Inline return value spill temp"
+;  V16 tmp3         [V16,T20] (  6,  1.68)     int  ->  x25         "Inline stloc first use temp"
+;  V17 tmp4         [V17,T36] (  7,  0   )     int  ->   x0         "Inline stloc first use temp"
 ;* V18 tmp5         [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V19 tmp6         [V19,T38] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V20 tmp7         [V20,T39] (  4,  0   )     int  ->   x0         "Inlining Arg"
-;  V21 tmp8         [V21,T42] (  2,  0   )    long  ->   x1         "Inlining Arg"
-;  V22 tmp9         [V22,T40] (  4,  0   )     int  ->  x23         "Inline stloc first use temp"
+;  V19 tmp6         [V19,T37] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V20 tmp7         [V20,T38] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V21 tmp8         [V21,T41] (  2,  0   )    long  ->   x1         "Inlining Arg"
+;  V22 tmp9         [V22,T39] (  4,  0   )     int  ->  x23         "Inline stloc first use temp"
 ;* V23 tmp10        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp11        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp12        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp13        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V27 tmp14        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <BenchmarksGame.ByteString>
 ;* V28 tmp15        [V28    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <BenchmarksGame.ByteString>
-;* V29 tmp16        [V29,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V30 tmp17        [V30,T01] (  6,  7.54)     int  ->   x6         "Inline stloc first use temp"
+;* V29 tmp16        [V29,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V30 tmp17        [V30,T01] (  6,  7.54)     int  ->   x5         "Inline stloc first use temp"
 ;* V31 tmp18        [V31    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V32 tmp19        [V32,T34] (  3,  0.02)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V33 tmp20        [V33,T27] (  4,  0.06)     int  ->  x20         "Inlining Arg"
-;  V34 tmp21        [V34,T32] (  2,  0.03)    long  ->  x24         "Inlining Arg"
-;  V35 tmp22        [V35,T31] (  4,  0.03)     int  ->  x25         "Inline stloc first use temp"
-;  V36 tmp23        [V36,T14] (  3,  2.08)     ref  ->   x0         "field V27.Array (fldOffset=0x0)" P-INDEP
-;  V37 tmp24        [V37,T12] (  2,  2.28)     int  ->   x4         "field V27.Start (fldOffset=0x8)" P-INDEP
-;  V38 tmp25        [V38,T07] (  4,  4.21)     int  ->   x5         "field V27.Length (fldOffset=0xc)" P-INDEP
-;* V39 tmp26        [V39,T25] (  0,  0   )     ref  ->  zero-ref    "field V28.Array (fldOffset=0x0)" P-INDEP
-;* V40 tmp27        [V40,T26] (  0,  0   )     int  ->  zero-ref    "field V28.Start (fldOffset=0x8)" P-INDEP
+;  V32 tmp19        [V32,T33] (  3,  0.02)     ref  ->  x22         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V33 tmp20        [V33,T26] (  4,  0.06)     int  ->  x20         "Inlining Arg"
+;  V34 tmp21        [V34,T31] (  2,  0.03)    long  ->  x24         "Inlining Arg"
+;  V35 tmp22        [V35,T30] (  4,  0.03)     int  ->  x25         "Inline stloc first use temp"
+;  V36 tmp23        [V36,T15] (  3,  2.08)     ref  ->   x0         "field V27.Array (fldOffset=0x0)" P-INDEP
+;  V37 tmp24        [V37,T13] (  2,  2.28)     int  ->   x3         "field V27.Start (fldOffset=0x8)" P-INDEP
+;  V38 tmp25        [V38,T07] (  4,  4.21)     int  ->   x4         "field V27.Length (fldOffset=0xc)" P-INDEP
+;* V39 tmp26        [V39,T24] (  0,  0   )     ref  ->  zero-ref    "field V28.Array (fldOffset=0x0)" P-INDEP
+;* V40 tmp27        [V40,T25] (  0,  0   )     int  ->  zero-ref    "field V28.Start (fldOffset=0x8)" P-INDEP
 ;* V41 tmp28        [V41    ] (  0,  0   )     int  ->  zero-ref    "field V28.Length (fldOffset=0xc)" P-INDEP
 ;  V42 tmp29        [V42,T04] (  7,  5.15)     ref  ->  x20         single-def "V01.[000..008)"
 ;  V43 tmp30        [V43,T06] (  7,  4.60)     int  ->  x21         "V01.[008..012)"
 ;  V44 tmp31        [V44,T05] (  8,  5.57)     int  ->  x22         "V01.[012..016)"
-;  V45 tmp32        [V45,T13] (  3,  2.13)     int  ->   x0         "index expr"
-;  V46 cse0         [V46,T35] (  3,  0.02)     int  ->  x22         "CSE - conservative"
-;  V47 cse1         [V47,T36] (  3,  0.02)     int  ->  x21         "CSE - conservative"
-;  V48 cse2         [V48,T20] (  3,  1.64)     int  ->   x3         hoist "CSE - moderate"
-;  V49 cse3         [V49,T08] (  6,  4.15)   byref  ->  registers   hoist multi-def "CSE - aggressive"
-;  V50 cse4         [V50,T18] (  2,  1.87)     int  ->   x7         hoist "CSE - moderate"
-;  V51 cse5         [V51,T17] (  2,  1.87)   byref  ->   x0         hoist "CSE - moderate"
-;  V52 cse6         [V52,T09] (  3,  3.94)     int  ->   x9         "CSE - aggressive"
-;  V53 cse7         [V53,T10] (  3,  3.94)     int  ->  x10         "CSE - aggressive"
+;  V45 tmp32        [V45,T14] (  3,  2.13)     int  ->   x0         "index expr"
+;  V46 cse0         [V46,T34] (  3,  0.02)     int  ->  x22         "CSE - conservative"
+;  V47 cse1         [V47,T35] (  3,  0.02)     int  ->  x21         "CSE - conservative"
+;  V48 cse2         [V48,T08] (  6,  4.15)   byref  ->  registers   hoist multi-def "CSE - aggressive"
+;  V49 cse3         [V49,T19] (  2,  1.87)     int  ->   x6         hoist "CSE - moderate"
+;  V50 cse4         [V50,T18] (  2,  1.87)   byref  ->   x0         hoist "CSE - moderate"
+;  V51 cse5         [V51,T09] (  3,  3.94)     int  ->   x8         "CSE - aggressive"
+;  V52 cse6         [V52,T10] (  3,  3.94)     int  ->   x9         "CSE - aggressive"
 ;
 ; Lcl frame size = 16
 
@@ -175,13 +174,14 @@ G_M43450_IG10:        ; bbWeight=0, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0
             ; gcrRegs +[x1]
             mov     w2, wzr
             sub     w0, w0, #1
-            ldr     w3, [x1, #0x08]
+            ldr     wzr, [x1, #0x08]
                        ;; size=36 bbWeight=0 PerfScore 0.00
 G_M43450_IG11:        ; bbWeight=1.30, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x19 x24]
+            ldr     w3, [x1, #0x08]
             cmp     w3, w0
             bls     G_M43450_IG28
-                       ;; size=8 bbWeight=1.30 PerfScore 1.95
+                       ;; size=12 bbWeight=1.30 PerfScore 5.86
 G_M43450_IG12:        ; bbWeight=1.30, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}, byref, isz
             ubfiz   x0, x0, #5, #32
             add     x0, x0, #16
@@ -194,11 +194,11 @@ G_M43450_IG12:        ; bbWeight=1.30, gcrefRegs=100002 {x1 x20}, byrefRegs=0000
 G_M43450_IG13:        ; bbWeight=0.96, gcrefRegs=100002 {x1 x20}, byrefRegs=1000000 {x24}, byref, isz
             ldr     x0, [x24, #0x10]
             ; gcrRegs +[x0]
-            ldp     w4, w5, [x24, #0x18]
-            cmp     w5, w22
+            ldp     w3, w4, [x24, #0x18]
+            cmp     w4, w22
             bne     G_M43450_IG23
-            mov     w6, wzr
-            cmp     w5, #0
+            mov     w5, wzr
+            cmp     w4, #0
             ble     G_M43450_IG21
                        ;; size=28 bbWeight=0.96 PerfScore 9.16
 G_M43450_IG14:        ; bbWeight=0.56, gcrefRegs=100003 {x0 x1 x20}, byrefRegs=1000000 {x24}, byref
@@ -239,32 +239,32 @@ G_M43450_IG18:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=100000
                        ;; size=12 bbWeight=0 PerfScore 0.00
 G_M43450_IG19:        ; bbWeight=0.56, gcrefRegs=100003 {x0 x1 x20}, byrefRegs=1000000 {x24}, byref
             ; gcrRegs -[x19] +[x0-x1]
-            ldr     w7, [x0, #0x08]
+            ldr     w6, [x0, #0x08]
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
-            add     x8, x20, #16
-            ; byrRegs +[x8]
+            add     x7, x20, #16
+            ; byrRegs +[x7]
                        ;; size=12 bbWeight=0.56 PerfScore 2.22
-G_M43450_IG20:        ; bbWeight=1.31, gcrefRegs=100002 {x1 x20}, byrefRegs=1000101 {x0 x8 x24}, byref, isz
-            add     w9, w4, w6
-            cmp     w9, w7
+G_M43450_IG20:        ; bbWeight=1.31, gcrefRegs=100002 {x1 x20}, byrefRegs=1000081 {x0 x7 x24}, byref, isz
+            add     w8, w3, w5
+            cmp     w8, w6
             bhs     G_M43450_IG29
-            ldrb    w9, [x0, w9, UXTW #2]
-            add     w10, w21, w6
-            ldr     w11, [x20, #0x08]
-            cmp     w10, w11
-            bhs     G_M43450_IG29
-            ldrb    w10, [x8, w10, UXTW #2]
+            ldrb    w8, [x0, w8, UXTW #2]
+            add     w9, w21, w5
+            ldr     w10, [x20, #0x08]
             cmp     w9, w10
+            bhs     G_M43450_IG29
+            ldrb    w9, [x7, w9, UXTW #2]
+            cmp     w8, w9
             bne     G_M43450_IG23
-            add     w6, w6, #1
-            cmp     w6, w5
+            add     w5, w5, #1
+            cmp     w5, w4
             blt     G_M43450_IG20
                        ;; size=56 bbWeight=1.31 PerfScore 21.69
 G_M43450_IG21:        ; bbWeight=0.97, gcrefRegs=0000 {}, byrefRegs=1000000 {x24}, byref
             ; gcrRegs -[x1 x20]
-            ; byrRegs -[x0 x8]
+            ; byrRegs -[x0 x7]
             ldrsb   wzr, [x24]
             mov     x0, x24
             ; byrRegs +[x0]
@@ -283,10 +283,11 @@ G_M43450_IG23:        ; bbWeight=0.34, gcVars=0000000000000000 {}, gcrefRegs=100
             ; byrRegs -[x0] +[x24]
             ldr     w0, [x24, #0x0C]
             add     w2, w2, #1
+            ldr     w3, [x1, #0x08]
             cmp     w3, w2
             blo     G_M43450_IG31
             b       G_M43450_IG11
-                       ;; size=20 bbWeight=0.34 PerfScore 2.03
+                       ;; size=24 bbWeight=0.34 PerfScore 3.05
 G_M43450_IG24:        ; bbWeight=0.01, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x1 x20] +[x19 x23]
             ; byrRegs -[x24]
@@ -413,7 +414,7 @@ G_M43450_IG31:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 908, prolog size 32, PerfScore 94.36, instruction count 227, allocated bytes for code 908 (MethodHash=c88c5645) for method System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
+Total bytes of code 916, prolog size 32, PerfScore 99.29, instruction count 229, allocated bytes for code 916 (MethodHash=c88c5645) for method System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -424,7 +425,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 227 (0x000e3) Actual length = 908 (0x00038c)
+  Function Length   : 229 (0x000e5) Actual length = 916 (0x000394)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+1.42%) : 129003.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues1System.String

@@ -19,17 +19,17 @@
 ;  V07 loc2         [V07,T18] (  5,  3   )     ref  ->   x0         class-hnd <System.Buffers.SearchValues`1[System.String]>
 ;  V08 loc3         [V08,T19] (  3,  2.96)     int  ->   x2        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T44] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-;  V11 tmp2         [V11,T45] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+;  V10 tmp1         [V10,T43] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+;  V11 tmp2         [V11,T44] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T47] (  3,  0   )     ref  ->  x20        
-;  V15 tmp6         [V15,T46] (  4,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+;  V14 tmp5         [V14,T46] (  3,  0   )     ref  ->  x20        
+;  V15 tmp6         [V15,T45] (  4,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
 ;  V16 tmp7         [V16,T28] (  6,  1.10)     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V18 tmp9         [V18,T48] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V19 tmp10        [V19,T49] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V20 tmp11        [V20,T50] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V18 tmp9         [V18,T47] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V19 tmp10        [V19,T48] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V20 tmp11        [V20,T49] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V21 tmp12        [V21,T04] ( 10, 10.95)     ref  ->  x23         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V23 tmp14        [V23,T09] ( 16,  6.10)     int  ->  registers   ld-addr-op "Inline ldloca(s) first use temp"
@@ -84,9 +84,9 @@
 ;* V72 tmp63        [V72    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V73 tmp64        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V74 tmp65        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V75 tmp66        [V75,T54] (  3,  0   )     int  ->  x22         "Inlining Arg"
-;  V76 tmp67        [V76,T56] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
-;  V77 tmp68        [V77,T58] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V75 tmp66        [V75,T53] (  3,  0   )     int  ->  x22         "Inlining Arg"
+;  V76 tmp67        [V76,T55] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
+;  V77 tmp68        [V77,T57] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V78 tmp69        [V78    ] (  2,  0   )  ushort  ->  [fp+0x24]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V79 tmp70        [V79    ] (  2,  0   )  ushort  ->  [fp+0x20]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V80 tmp71        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -107,8 +107,8 @@
 ;* V95 tmp86        [V95    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V96 tmp87        [V96    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V97 tmp88        [V97    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V98 tmp89        [V98,T59] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
-;  V99 tmp90        [V99,T60] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
+;  V98 tmp89        [V98,T58] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
+;  V99 tmp90        [V99,T59] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
 ;* V100 tmp91       [V100    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V101 tmp92       [V101    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V102 tmp93       [V102    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -123,17 +123,17 @@
 ;* V111 tmp102      [V111    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V112 tmp103      [V112,T37] (  6,  0.82)     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V113 tmp104      [V113    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V114 tmp105      [V114,T51] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V115 tmp106      [V115,T52] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V116 tmp107      [V116,T53] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V114 tmp105      [V114,T50] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V115 tmp106      [V115,T51] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V116 tmp107      [V116,T52] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V117 tmp108      [V117,T22] (  3,  2.46)     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V118 tmp109      [V118    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V119 tmp110      [V119    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V120 tmp111      [V120    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V121 tmp112      [V121    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V122 tmp113      [V122,T55] (  3,  0   )     int  ->  x22         "Inlining Arg"
-;  V123 tmp114      [V123,T57] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
-;  V124 tmp115      [V124,T61] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V122 tmp113      [V122,T54] (  3,  0   )     int  ->  x22         "Inlining Arg"
+;  V123 tmp114      [V123,T56] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
+;  V124 tmp115      [V124,T60] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V125 tmp116      [V125    ] (  2,  0   )  ushort  ->  [fp+0x1C]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V126 tmp117      [V126    ] (  2,  0   )  ushort  ->  [fp+0x18]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V127 tmp118      [V127    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -154,8 +154,8 @@
 ;* V142 tmp133      [V142    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V143 tmp134      [V143    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V144 tmp135      [V144    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V145 tmp136      [V145,T62] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
-;  V146 tmp137      [V146,T63] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
+;  V145 tmp136      [V145,T61] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
+;  V146 tmp137      [V146,T62] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
 ;* V147 tmp138      [V147    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V148 tmp139      [V148    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V149 tmp140      [V149    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -238,7 +238,6 @@
 ;* V226 tmp217      [V226    ] (  0,  0   )   byref  ->  zero-ref    "field V158._reference (fldOffset=0x0)" P-INDEP
 ;* V227 tmp218      [V227    ] (  0,  0   )     int  ->  zero-ref    "field V158._length (fldOffset=0x8)" P-INDEP
 ;  V228 cse0        [V228,T08] ( 13,  6.28)     int  ->  x22         "CSE - aggressive"
-;  V229 cse1        [V229,T43] (  9,  0   )     ref  ->   x1         multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 24
 
@@ -471,37 +470,37 @@ G_M46798_IG34:        ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
             cbnz    w24, G_M46798_IG36
                        ;; size=4 bbWeight=0.55 PerfScore 0.55
 G_M46798_IG35:        ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=44 bbWeight=0 PerfScore 0.00
 G_M46798_IG36:        ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
             cmp     w24, w25
             bne     G_M46798_IG38
                        ;; size=8 bbWeight=0.55 PerfScore 0.82
 G_M46798_IG37:        ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=44 bbWeight=0 PerfScore 0.00
 G_M46798_IG38:        ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
             cmp     w25, #0
             ccmp    w25, w24, z, gt
@@ -815,20 +814,20 @@ G_M46798_IG55:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
                        ;; size=4 bbWeight=0 PerfScore 0.00
 G_M46798_IG56:        ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19-x20 x23]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
             b       G_M46798_IG42
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 G_M46798_IG57:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x23]
             movz    x0, #0xD1FFAB1E
@@ -945,7 +944,7 @@ G_M46798_IG60:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
 RWD00      dd  7F7FFFFFh       ; 3.40282e+38
 
 
-; Total bytes of code 1692, prolog size 36, PerfScore 180.15, instruction count 423, allocated bytes for code 1692 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
+Total bytes of code 1716, prolog size 36, PerfScore 180.15, instruction count 429, allocated bytes for code 1716 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -956,7 +955,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 423 (0x001a7) Actual length = 1692 (0x00069c)
+  Function Length   : 429 (0x001ad) Actual length = 1716 (0x0006b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+3.08%) : 86635.dasm - System.Runtime.CompilerServices.ConditionalWeakTable2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable2[System.Canon,System.Canon]):this (Tier1)

@@ -19,9 +19,8 @@
 ;* V07 tmp4         [V07,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V08 tmp5         [V08,T00] (  3, 48   )     ref  ->   x2         "arr expr"
 ;  V09 cse0         [V09,T02] (  4, 18   )     ref  ->   x1         "CSE - aggressive"
-;  V10 cse1         [V10,T09] (  3,  0   )     ref  ->   x1         "CSE - aggressive"
-;  V11 rat0         [V11,T06] (  3,  4.40)    long  ->   x0         "Spilling to split statement for tree"
-;  V12 rat1         [V12,T05] (  3,  5.60)    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V10 rat0         [V10,T06] (  3,  4.40)    long  ->   x0         "Spilling to split statement for tree"
+;  V11 rat1         [V11,T05] (  3,  5.60)    long  ->   x1         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 16
 
@@ -128,22 +127,22 @@ G_M9941_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {
                        ;; size=4 bbWeight=0 PerfScore 0.00
 G_M9941_IG11:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x20]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
             b       G_M9941_IG03
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 260, prolog size 24, PerfScore 137.90, instruction count 65, allocated bytes for code 260 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
+Total bytes of code 268, prolog size 24, PerfScore 137.90, instruction count 67, allocated bytes for code 268 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -154,7 +153,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 65 (0x00041) Actual length = 260 (0x000104)
+  Function Length   : 67 (0x00043) Actual length = 268 (0x00010c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

coreclr_tests.run.linux.arm64.checked.mch

-4 (-1.20%) : 312998.dasm - Runtime71611:Cloned(Runtime71611+I,int[],int[],int,int):int (Tier1)

@@ -9,21 +9,20 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T09] (  6,  3.36)     ref  ->  x22         class-hnd single-def <Runtime_71611+I>
-;  V01 arg1         [V01,T06] (  7,  4.06)     ref  ->  x21         class-hnd single-def <int[]>
-;  V02 arg2         [V02,T04] (  8,  6.33)     ref  ->  x20         class-hnd single-def <int[]>
-;  V03 arg3         [V03,T10] (  3,  3   )     int  ->   x3         single-def
+;  V00 arg0         [V00,T08] (  6,  3.36)     ref  ->  x22         class-hnd single-def <Runtime_71611+I>
+;  V01 arg1         [V01,T05] (  7,  4.06)     ref  ->  x21         class-hnd single-def <int[]>
+;  V02 arg2         [V02,T03] (  8,  6.33)     ref  ->  x20         class-hnd single-def <int[]>
+;  V03 arg3         [V03,T09] (  3,  3   )     int  ->   x3         single-def
 ;  V04 arg4         [V04,T02] (  8,  8   )     int  ->  x19         single-def
-;  V05 loc0         [V05,T05] (  6,  8   )     int  ->  x23        
-;  V06 loc1         [V06,T00] ( 14, 14.70)     int  ->  x24        
+;  V05 loc0         [V05,T04] (  6,  8   )     int  ->  x23        
+;  V06 loc1         [V06,T00] ( 15, 17.67)     int  ->  x24        
 ;* V07 loc2         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T07] (  6,  6   )     int  ->   x2        
-;  V10 tmp2         [V10,T08] (  5,  6   )     int  ->  x25         "guarded devirt return temp"
+;  V09 tmp1         [V09,T06] (  6,  6   )     int  ->   x2        
+;  V10 tmp2         [V10,T07] (  5,  6   )     int  ->  x25         "guarded devirt return temp"
 ;  V11 tmp3         [V11,T01] (  5, 12   )     int  ->   x1         "guarded devirt arg temp"
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Runtime_71611+Add>
-;  V13 cse0         [V13,T03] (  3,  8.91)    long  ->   x1         "CSE - aggressive"
-;  V14 cse1         [V14,T11] (  4,  3.70)   byref  ->   x0         hoist multi-def "CSE - aggressive"
+;  V13 cse0         [V13,T10] (  4,  3.70)   byref  ->   x0         hoist multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -79,16 +78,15 @@ G_M39013_IG06:        ; bbWeight=2.97, gcrefRegs=100000 {x20}, byrefRegs=0001 {x
             ; gcrRegs -[x21-x22]
             add     x2, x20, #16
             ; byrRegs +[x2]
-            ubfiz   x1, x24, #2, #32
-            ldr     w2, [x2, x1]
+            ldr     w2, [x2, w24, UXTW #2]
             ; byrRegs -[x2]
-            ldr     w1, [x0, x1]
+            ldr     w1, [x0, w24, UXTW #2]
             add     w25, w1, w2
             add     w23, w23, w25
             add     w24, w24, #1
             cmp     w24, w19
             blt     G_M39013_IG06
-                       ;; size=36 bbWeight=2.97 PerfScore 31.18
+                       ;; size=32 bbWeight=2.97 PerfScore 28.21
 G_M39013_IG07:        ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x20]
             ; byrRegs -[x0]
@@ -164,7 +162,7 @@ G_M39013_IG16:        ; bbWeight=0, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=00
             b       G_M39013_IG09
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 332, prolog size 40, PerfScore 63.30, instruction count 83, allocated bytes for code 332 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
+Total bytes of code 328, prolog size 40, PerfScore 60.33, instruction count 82, allocated bytes for code 328 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -175,7 +173,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 83 (0x00053) Actual length = 332 (0x00014c)
+  Function Length   : 82 (0x00052) Actual length = 328 (0x000148)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-1.20%) : 570531.dasm - Runtime71611:Cloned(Runtime71611+I,int[],int[],int,int):int (Tier1)

@@ -9,21 +9,20 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T09] (  6,  3.36)     ref  ->  x22         class-hnd single-def <Runtime_71611+I>
-;  V01 arg1         [V01,T06] (  7,  4.06)     ref  ->  x21         class-hnd single-def <int[]>
-;  V02 arg2         [V02,T04] (  8,  6.33)     ref  ->  x20         class-hnd single-def <int[]>
-;  V03 arg3         [V03,T10] (  3,  3   )     int  ->   x3         single-def
+;  V00 arg0         [V00,T08] (  6,  3.36)     ref  ->  x22         class-hnd single-def <Runtime_71611+I>
+;  V01 arg1         [V01,T05] (  7,  4.06)     ref  ->  x21         class-hnd single-def <int[]>
+;  V02 arg2         [V02,T03] (  8,  6.33)     ref  ->  x20         class-hnd single-def <int[]>
+;  V03 arg3         [V03,T09] (  3,  3   )     int  ->   x3         single-def
 ;  V04 arg4         [V04,T02] (  8,  8   )     int  ->  x19         single-def
-;  V05 loc0         [V05,T05] (  6,  8   )     int  ->  x23        
-;  V06 loc1         [V06,T00] ( 14, 14.70)     int  ->  x24        
+;  V05 loc0         [V05,T04] (  6,  8   )     int  ->  x23        
+;  V06 loc1         [V06,T00] ( 15, 17.67)     int  ->  x24        
 ;* V07 loc2         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T07] (  6,  6   )     int  ->   x2        
-;  V10 tmp2         [V10,T08] (  5,  6   )     int  ->  x25         "guarded devirt return temp"
+;  V09 tmp1         [V09,T06] (  6,  6   )     int  ->   x2        
+;  V10 tmp2         [V10,T07] (  5,  6   )     int  ->  x25         "guarded devirt return temp"
 ;  V11 tmp3         [V11,T01] (  5, 12   )     int  ->   x1         "guarded devirt arg temp"
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Runtime_71611+Add>
-;  V13 cse0         [V13,T03] (  3,  8.91)    long  ->   x1         "CSE - aggressive"
-;  V14 cse1         [V14,T11] (  4,  3.70)   byref  ->   x0         hoist multi-def "CSE - aggressive"
+;  V13 cse0         [V13,T10] (  4,  3.70)   byref  ->   x0         hoist multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -79,16 +78,15 @@ G_M39013_IG06:        ; bbWeight=2.97, gcrefRegs=100000 {x20}, byrefRegs=0001 {x
             ; gcrRegs -[x21-x22]
             add     x2, x20, #16
             ; byrRegs +[x2]
-            ubfiz   x1, x24, #2, #32
-            ldr     w2, [x2, x1]
+            ldr     w2, [x2, w24, UXTW #2]
             ; byrRegs -[x2]
-            ldr     w1, [x0, x1]
+            ldr     w1, [x0, w24, UXTW #2]
             add     w25, w1, w2
             add     w23, w23, w25
             add     w24, w24, #1
             cmp     w24, w19
             blt     G_M39013_IG06
-                       ;; size=36 bbWeight=2.97 PerfScore 31.18
+                       ;; size=32 bbWeight=2.97 PerfScore 28.21
 G_M39013_IG07:        ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x20]
             ; byrRegs -[x0]
@@ -164,7 +162,7 @@ G_M39013_IG16:        ; bbWeight=0, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=00
             b       G_M39013_IG09
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 332, prolog size 40, PerfScore 63.30, instruction count 83, allocated bytes for code 332 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
+Total bytes of code 328, prolog size 40, PerfScore 60.33, instruction count 82, allocated bytes for code 328 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -175,7 +173,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 83 (0x00053) Actual length = 332 (0x00014c)
+  Function Length   : 82 (0x00052) Actual length = 328 (0x000148)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-1.15%) : 271378.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)

@@ -42,12 +42,12 @@
 ;  V30 tmp28        [V30,T13] (  4,  1.21)     ref  ->   x1        
 ;* V31 tmp29        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V32 tmp30        [V32    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V33 tmp31        [V33,T21] (  5,  0.43)     ref  ->   x1        
+;  V33 tmp31        [V33,T19] (  6,  0.64)     ref  ->   x1        
 ;* V34 tmp32        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V35 tmp33        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V36 tmp34        [V36,T22] (  2,  0.43)     ref  ->   x1         class-hnd exact single-def "dup spill" <System.String>
-;  V37 tmp35        [V37,T24] (  4,  0.32)     ref  ->   x1        
-;* V38 tmp36        [V38,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V36 tmp34        [V36,T25] (  2,  0.43)     ref  ->   x1         class-hnd exact single-def "dup spill" <System.String>
+;  V37 tmp35        [V37,T22] (  5,  0.54)     ref  ->   x1        
+;* V38 tmp36        [V38,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V39 tmp37        [V39,T08] (  3,  1.71)     ref  ->   x1         class-hnd "Inline return value spill temp" <System.String>
 ;  V40 tmp38        [V40,T05] (  8,  4.43)     ref  ->   x0         class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
 ;* V41 tmp39        [V41    ] (  0,  0   )     ref  ->  zero-ref    single-def
@@ -57,18 +57,17 @@
 ;  V45 tmp43        [V45,T14] (  4,  1.21)     ref  ->   x1        
 ;* V46 tmp44        [V46    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V47 tmp45        [V47    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V48 tmp46        [V48,T25] (  4,  0.32)     ref  ->   x1        
+;  V48 tmp46        [V48,T23] (  5,  0.54)     ref  ->   x1        
 ;  V49 tmp47        [V49,T27] (  3,  0.32)     ref  ->   x1         class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V50 tmp48        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V51 tmp49        [V51,T23] (  2,  0.43)     ref  ->   x1         class-hnd exact single-def "dup spill" <System.String>
-;  V52 tmp50        [V52,T26] (  4,  0.32)     ref  ->   x1        
-;* V53 tmp51        [V53,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V51 tmp49        [V51,T26] (  2,  0.43)     ref  ->   x1         class-hnd exact single-def "dup spill" <System.String>
+;  V52 tmp50        [V52,T24] (  5,  0.54)     ref  ->   x1        
+;* V53 tmp51        [V53,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V54 tmp52        [V54    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V55 tmp53        [V55    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V56 tmp54        [V56,T30] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
-;  V57 tmp55        [V57,T31] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V58 cse0         [V58,T29] (  8,  0   )     ref  ->   x1         multi-def "CSE - moderate"
-;  V59 cse1         [V59,T10] (  3,  1.52)     int  ->   x2         "CSE - moderate"
+;  V56 tmp54        [V56,T29] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
+;  V57 tmp55        [V57,T30] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V58 cse0         [V58,T10] (  3,  1.52)     int  ->   x2         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -140,10 +139,10 @@ G_M25213_IG09:        ; bbWeight=0.68, gcVars=0000000000000000 {}, gcrefRegs=180
             beq     G_M25213_IG13
                        ;; size=16 bbWeight=0.68 PerfScore 5.13
 G_M25213_IG10:        ; bbWeight=0.43, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
-            cbz     x21, G_M25213_IG51
+            cbz     x21, G_M25213_IG43
                        ;; size=4 bbWeight=0.43 PerfScore 0.43
 G_M25213_IG11:        ; bbWeight=0.42, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            b       G_M25213_IG42
+            b       G_M25213_IG38
                        ;; size=4 bbWeight=0.42 PerfScore 0.42
 G_M25213_IG12:        ; bbWeight=0.68, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
             add     x0, x21, #12
@@ -160,7 +159,7 @@ G_M25213_IG12:        ; bbWeight=0.68, gcrefRegs=780000 {x19 x20 x21 x22}, byref
             ; gcrRegs -[x21-x22]
             ; byrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M25213_IG51
+            cbz     w0, G_M25213_IG43
                        ;; size=40 bbWeight=0.68 PerfScore 6.16
 G_M25213_IG13:        ; bbWeight=0.68, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x19, #0x30]
@@ -188,17 +187,17 @@ G_M25213_IG16:        ; bbWeight=0.01, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRe
                        ;; size=12 bbWeight=0.01 PerfScore 0.03
 G_M25213_IG17:        ; bbWeight=0.15, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
-            cbnz    x1, G_M25213_IG51
+            cbnz    x1, G_M25213_IG43
             b       G_M25213_IG19
                        ;; size=8 bbWeight=0.15 PerfScore 0.29
 G_M25213_IG18:        ; bbWeight=0.16, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x1]
-            cbz     w0, G_M25213_IG51
+            cbz     w0, G_M25213_IG43
                        ;; size=4 bbWeight=0.16 PerfScore 0.16
 G_M25213_IG19:        ; bbWeight=0.63, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x19, #0x20]
             ; gcrRegs +[x0]
-            cbz     x0, G_M25213_IG37
+            cbz     x0, G_M25213_IG33
                        ;; size=8 bbWeight=0.63 PerfScore 2.53
 G_M25213_IG20:        ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x14, [x0]
@@ -234,11 +233,11 @@ G_M25213_IG24:        ; bbWeight=0.95, epilog, nogc, extend
                        ;; size=16 bbWeight=0.95 PerfScore 3.79
 G_M25213_IG25:        ; bbWeight=0.63, gcVars=0000000000000000 {}, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x1 x19-x20]
-            cbz     x1, G_M25213_IG37
+            cbz     x1, G_M25213_IG33
                        ;; size=4 bbWeight=0.63 PerfScore 0.63
 G_M25213_IG26:        ; bbWeight=0.45, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w14, [x1, #0x08]
-            cbz     w14, G_M25213_IG37
+            cbz     w14, G_M25213_IG33
                        ;; size=8 bbWeight=0.45 PerfScore 1.80
 G_M25213_IG27:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
@@ -291,34 +290,22 @@ G_M25213_IG30:        ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=
             ; gcrRegs -[x1]
             ldr     x1, [x0, #0x48]
             ; gcrRegs +[x1]
-            cbnz    x1, G_M25213_IG36
+            cbnz    x1, G_M25213_IG32
                        ;; size=8 bbWeight=0.37 PerfScore 1.47
-G_M25213_IG31:        ; bbWeight=0.11, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG31:        ; bbWeight=0.11, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             ldr     x14, [x0, #0x30]
             ; gcrRegs +[x14]
             ldr     x1, [x14, #0x18]
             ; gcrRegs +[x1]
-            cbnz    x1, G_M25213_IG33
-                       ;; size=12 bbWeight=0.11 PerfScore 0.75
-G_M25213_IG32:        ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1 x14]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25213_IG33:        ; bbWeight=0.11, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x1]
-            cbnz    x1, G_M25213_IG35
-                       ;; size=4 bbWeight=0.11 PerfScore 0.11
-G_M25213_IG34:        ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25213_IG35:        ; bbWeight=0.11, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x1]
+            movz    x14, #0xD1FFAB1E
+            ; gcrRegs -[x14]
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #0xD1FFAB1E LSL #32
+            cmp     x1, #0
+            csel    x1, x1, x14, ne
+            cmp     x1, #0
+            csel    x1, x1, x14, ne
             add     x14, x0, #72
             ; byrRegs +[x14]
             mov     x15, x1
@@ -326,25 +313,25 @@ G_M25213_IG35:        ; bbWeight=0.11, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRe
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
-                       ;; size=12 bbWeight=0.11 PerfScore 0.21
-G_M25213_IG36:        ; bbWeight=0.37, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
+                       ;; size=48 bbWeight=0.11 PerfScore 1.23
+G_M25213_IG32:        ; bbWeight=0.37, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
             b       G_M25213_IG25
                        ;; size=4 bbWeight=0.37 PerfScore 0.37
-G_M25213_IG37:        ; bbWeight=0.63, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG33:        ; bbWeight=0.63, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x1]
             ldr     x0, [x20, #0x20]
             ; gcrRegs +[x0]
             cbz     x0, G_M25213_IG23
                        ;; size=8 bbWeight=0.63 PerfScore 2.53
-G_M25213_IG38:        ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG34:        ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x14, [x0]
             movz    x15, #0xD1FFAB1E
             movk    x15, #0xD1FFAB1E LSL #16
             movk    x15, #0xD1FFAB1E LSL #32
             cmp     x14, x15
-            beq     G_M25213_IG44
+            beq     G_M25213_IG40
                        ;; size=24 bbWeight=0.37 PerfScore 2.21
-G_M25213_IG39:        ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
+G_M25213_IG35:        ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
             ldr     x1, [x1, #0x38]
@@ -353,58 +340,46 @@ G_M25213_IG39:        ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=000
             mov     x1, x0
             ; gcrRegs +[x1]
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M25213_IG40:        ; bbWeight=0.63, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG36:        ; bbWeight=0.63, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             cbz     x1, G_M25213_IG23
                        ;; size=4 bbWeight=0.63 PerfScore 0.63
-G_M25213_IG41:        ; bbWeight=0.45, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG37:        ; bbWeight=0.45, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x1, #0x08]
             cbz     w0, G_M25213_IG23
             b       G_M25213_IG27
                        ;; size=12 bbWeight=0.45 PerfScore 2.26
-G_M25213_IG42:        ; bbWeight=0.42, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG38:        ; bbWeight=0.42, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x1] +[x21-x22]
-            cbz     x22, G_M25213_IG51
+            cbz     x22, G_M25213_IG43
                        ;; size=4 bbWeight=0.42 PerfScore 0.42
-G_M25213_IG43:        ; bbWeight=0.42, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG39:        ; bbWeight=0.42, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x21, #0x08]
             ldr     w1, [x22, #0x08]
             cmp     w2, w1
             beq     G_M25213_IG12
-            b       G_M25213_IG51
+            b       G_M25213_IG43
                        ;; size=20 bbWeight=0.42 PerfScore 3.55
-G_M25213_IG44:        ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG40:        ; bbWeight=0.37, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x21-x22] +[x0]
             ldr     x1, [x0, #0x48]
             ; gcrRegs +[x1]
-            cbnz    x1, G_M25213_IG50
+            cbnz    x1, G_M25213_IG42
                        ;; size=8 bbWeight=0.37 PerfScore 1.47
-G_M25213_IG45:        ; bbWeight=0.11, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG41:        ; bbWeight=0.11, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x1]
             ldr     x14, [x0, #0x30]
             ; gcrRegs +[x14]
             ldr     x1, [x14, #0x18]
             ; gcrRegs +[x1]
-            cbnz    x1, G_M25213_IG47
-                       ;; size=12 bbWeight=0.11 PerfScore 0.75
-G_M25213_IG46:        ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1 x14]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25213_IG47:        ; bbWeight=0.11, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x1]
-            cbnz    x1, G_M25213_IG49
-                       ;; size=4 bbWeight=0.11 PerfScore 0.11
-G_M25213_IG48:        ; bbWeight=0, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x1]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M25213_IG49:        ; bbWeight=0.11, gcrefRegs=180003 {x0 x1 x19 x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x1]
+            movz    x14, #0xD1FFAB1E
+            ; gcrRegs -[x14]
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #0xD1FFAB1E LSL #32
+            cmp     x1, #0
+            csel    x1, x1, x14, ne
+            cmp     x1, #0
+            csel    x1, x1, x14, ne
...

+32 (+2.02%) : 530195.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  x24        
 ;  V10 loc7         [V10,T07] (  3, 12   )     ref  ->   x2         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T25] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T26] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T27] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V20 tmp9         [V20,T31] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T32] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T28] (  3,  0   )     int  ->  x23         "Inlining Arg"
-;  V31 tmp20        [V31,T33] (  2,  0   )   byref  ->  x22         "Inlining Arg"
+;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  x23         "Inlining Arg"
+;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  x22         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T34] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T23] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T29] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V44 tmp33        [V44,T35] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T36] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T24] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T30] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V55 tmp44        [V55,T37] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T38] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  x21         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T05] (  4, 12   )     int  ->  x25         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.53)     ref  ->  x19         class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T08] (  3, 12   )     ref  ->   x2         "arr expr"
-;  V98 tmp87        [V98,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V99 tmp88        [V99,T40] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V100 cse0        [V100,T18] (  3,  3   )     ref  ->   x0         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  4,  9   )   byref  ->  x23         hoist multi-def "CSE - aggressive"
 ;  V102 cse2        [V102,T09] (  6, 10   )     int  ->  x22         multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T20] ( 12,  0   )     ref  ->   x1         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -409,19 +408,19 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG30
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG31
@@ -472,19 +471,19 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w23, w1, w0
             tbz     w23, #31, G_M45430_IG33
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=104 bbWeight=0 PerfScore 0.00
+                       ;; size=112 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
             cbz     w23, G_M45430_IG34
             movz    x0, #0xD1FFAB1E
@@ -580,19 +579,19 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG38
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG39
@@ -654,19 +653,19 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M45430_IG43
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M45430_IG44
             movz    x0, #0xD1FFAB1E
@@ -728,7 +727,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1588, prolog size 48, PerfScore 291.42, instruction count 397, allocated bytes for code 1588 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1620, prolog size 48, PerfScore 291.42, instruction count 405, allocated bytes for code 1620 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -739,7 +738,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 397 (0x0018d) Actual length = 1588 (0x000634)
+  Function Length   : 405 (0x00195) Actual length = 1620 (0x000654)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+2.11%) : 312739.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)

@@ -8,25 +8,23 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 10,  3.65)     ref  ->  x20         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T04] ( 10,  3.65)     ref  ->  x20         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T02] ( 11, 11.33)     ref  ->  x19         class-hnd single-def <System.Type>
-;  V02 loc0         [V02,T07] (  4,  0.60)     ref  ->   x0         class-hnd exact <System.RuntimeType>
-;  V03 loc1         [V03,T08] (  3,  0   )     ref  ->   x0         class-hnd single-def <System.Type[]>
-;  V04 loc2         [V04,T01] (  5, 18.80)     int  ->  x20        
+;  V02 loc0         [V02,T06] (  4,  0.60)     ref  ->   x0         class-hnd exact <System.RuntimeType>
+;  V03 loc1         [V03,T03] (  4, 10   )     ref  ->  x20         class-hnd single-def <System.Type[]>
+;  V04 loc2         [V04,T01] (  5, 18.80)     int  ->  x21        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T06] (  2,  0.96)     ref  ->   x0         single-def "CASTCLASS eval op1"
+;  V06 tmp1         [V06,T05] (  2,  0.96)     ref  ->   x0         single-def "CASTCLASS eval op1"
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V09 tmp4         [V09,T00] (  3, 33.60)     ref  ->   x0         "argument with side effect"
-;  V10 cse0         [V10,T04] (  2,  5.60)   byref  ->  x22         hoist "CSE - aggressive"
-;  V11 cse1         [V11,T05] (  3,  4.40)     int  ->  x21         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M35267_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
+            stp     x19, x20, [sp, #0x18]
+            str     x21, [sp, #0x28]
             mov     fp, sp
             mov     x20, x0
             ; gcrRegs +[x20]
@@ -63,8 +61,8 @@ G_M35267_IG06:        ; bbWeight=0, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}
             ; gcrRegs +[x1]
                        ;; size=4 bbWeight=0 PerfScore 0.00
 G_M35267_IG07:        ; bbWeight=0, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             b       <unknown method>
                        ;; size=16 bbWeight=0 PerfScore 0.00
@@ -114,8 +112,8 @@ G_M35267_IG09:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ldr     x2, [x2]
                        ;; size=80 bbWeight=0 PerfScore 0.00
 G_M35267_IG10:        ; bbWeight=0, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             br      x2
                        ;; size=16 bbWeight=0 PerfScore 0.00
@@ -135,17 +133,20 @@ G_M35267_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs -[x20]
-            mov     w20, wzr
-            ldr     w21, [x0, #0x08]
-            cmp     w21, #0
-            ble     G_M35267_IG14
-            add     x22, x0, #16
-            ; byrRegs +[x22]
-                       ;; size=60 bbWeight=0 PerfScore 0.00
-G_M35267_IG12:        ; bbWeight=5.60, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22}, byref, isz
+            mov     x20, x0
+            ; gcrRegs +[x20]
+            mov     w21, wzr
+            ldr     w0, [x20, #0x08]
             ; gcrRegs -[x0]
-            ldr     x0, [x22, w20, UXTW #3]
+            cmp     w0, #0
+            ble     G_M35267_IG14
+                       ;; size=60 bbWeight=0 PerfScore 0.00
+G_M35267_IG12:        ; bbWeight=5.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x0, x20, #16
+            ; byrRegs +[x0]
+            ldr     x0, [x0, w21, UXTW #3]
             ; gcrRegs +[x0]
+            ; byrRegs -[x0]
             mov     x1, x19
             ; gcrRegs +[x1]
             ldr     x2, [x0]
@@ -154,34 +155,34 @@ G_M35267_IG12:        ; bbWeight=5.60, gcrefRegs=80000 {x19}, byrefRegs=400000 {
             blr     x2
             ; gcrRegs -[x0-x1]
             cbz     w0, G_M35267_IG16
-                       ;; size=28 bbWeight=5.60 PerfScore 81.20
-G_M35267_IG13:        ; bbWeight=4.40, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22}, byref, isz
-            add     w20, w20, #1
-            cmp     w21, w20
+                       ;; size=32 bbWeight=5.60 PerfScore 84.00
+G_M35267_IG13:        ; bbWeight=4.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     w21, w21, #1
+            ldr     w0, [x20, #0x08]
+            cmp     w0, w21
             bgt     G_M35267_IG12
-                       ;; size=12 bbWeight=4.40 PerfScore 8.80
+                       ;; size=16 bbWeight=4.40 PerfScore 22.00
 G_M35267_IG14:        ; bbWeight=2.36, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            ; byrRegs -[x22]
+            ; gcrRegs -[x19-x20]
             mov     w0, #1
                        ;; size=4 bbWeight=2.36 PerfScore 1.18
 G_M35267_IG15:        ; bbWeight=2.36, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=16 bbWeight=2.36 PerfScore 9.44
+                       ;; size=16 bbWeight=2.36 PerfScore 11.80
 G_M35267_IG16:        ; bbWeight=30.24, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             mov     w0, wzr
                        ;; size=4 bbWeight=30.24 PerfScore 15.12
 G_M35267_IG17:        ; bbWeight=30.24, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=16 bbWeight=30.24 PerfScore 120.96
+                       ;; size=16 bbWeight=30.24 PerfScore 151.20
 
-; Total bytes of code 380, prolog size 16, PerfScore 253.26, instruction count 95, allocated bytes for code 380 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
+Total bytes of code 388, prolog size 16, PerfScore 301.86, instruction count 97, allocated bytes for code 388 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -192,7 +193,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 95 (0x0005f) Actual length = 380 (0x00017c)
+  Function Length   : 97 (0x00061) Actual length = 388 (0x000184)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -209,10 +210,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
-    E4          end
 

+16 (+4.26%) : 312791.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)

@@ -29,22 +29,21 @@
 ;* V18 tmp16        [V18    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp17        [V19    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp18        [V20    ] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V21 tmp19        [V21,T11] (  3,   0   )   ubyte  ->   x1         "Inline return value spill temp"
+;  V21 tmp19        [V21,T10] (  3,   0   )   ubyte  ->   x1         "Inline return value spill temp"
 ;  V22 tmp20        [V22,T04] (  9,  76.80)     int  ->  x20         "Inline stloc first use temp"
 ;  V23 tmp21        [V23    ] (  2,  76.80)   simd8  ->  [fp+0x18]  HFA(simd8)  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
 ;  V24 tmp22        [V24    ] (  2,  76.80)   simd8  ->  [fp+0x10]  HFA(simd8)  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-;  V25 tmp23        [V25,T14] (  2,   0   )   float  ->   d8         "impAppendStmt"
-;  V26 tmp24        [V26,T12] (  3,   0   )     int  ->   x0        
+;  V25 tmp23        [V25,T13] (  2,   0   )   float  ->   d8         "impAppendStmt"
+;  V26 tmp24        [V26,T11] (  3,   0   )     int  ->   x0        
 ;* V27 tmp25        [V27    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp26        [V28    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp27        [V29    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp28        [V30    ] (  0,   0   )   float  ->  zero-ref    "Inline return value spill temp"
-;  V31 tmp29        [V31,T13] (  3,   0   )     int  ->   x0        
+;  V31 tmp29        [V31,T12] (  3,   0   )     int  ->   x0        
 ;* V32 tmp30        [V32    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V33 tmp31        [V33    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp32        [V34    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp33        [V35    ] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V36 cse0         [V36,T10] (  6,   0   )     ref  ->   x1         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 72
 
@@ -112,19 +111,19 @@ G_M21877_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M21877_IG06:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             tst     w0, #255
             bne     G_M21877_IG07
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
+                       ;; size=52 bbWeight=0 PerfScore 0.00
 G_M21877_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     x0, fp, #24    // [V23 tmp21]
             ; byrRegs +[x0]
@@ -140,19 +139,19 @@ G_M21877_IG08:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M21877_IG09:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             tst     w0, #255
             bne     G_M21877_IG10
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
+                       ;; size=52 bbWeight=0 PerfScore 0.00
 G_M21877_IG10:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     x0, fp, #16    // [V24 tmp22]
             ; byrRegs +[x0]
@@ -195,7 +194,7 @@ G_M21877_IG16:        ; bbWeight=0, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 376, prolog size 20, PerfScore 29793.45, instruction count 94, allocated bytes for code 376 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 392, prolog size 20, PerfScore 29793.45, instruction count 98, allocated bytes for code 392 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -206,7 +205,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 94 (0x0005e) Actual length = 376 (0x000178)
+  Function Length   : 98 (0x00062) Actual length = 392 (0x000188)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.linux.arm64.checked.mch

+4 (+0.40%) : 4458.dasm - System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)

@@ -10,31 +10,31 @@
 ;
 ;  V00 this         [V00,T09] (  8,  5   )     ref  ->  x20         this class-hnd single-def <System.Buffers.SharedArrayPool`1[short]>
 ;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->  x19         class-hnd single-def <short[]>
-;  V02 arg2         [V02,T12] (  3,  2.50)   ubyte  ->  x21         single-def
+;  V02 arg2         [V02,T11] (  3,  2.50)   ubyte  ->  x21         single-def
 ;  V03 loc0         [V03,T10] (  8,  5   )     int  ->  x23        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T22] (  4,  2.50)   ubyte  ->  x25        
-;  V06 loc3         [V06,T25] (  3,  2   )   ubyte  ->  x26        
-;  V07 loc4         [V07,T16] (  4,  3   )     ref  ->  x27         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T23] (  4,  2   )   byref  ->   x0         single-def
-;  V09 loc6         [V09,T18] (  3,  3   )     ref  ->  x21         class-hnd single-def <System.Array>
+;  V05 loc2         [V05,T21] (  4,  2.50)   ubyte  ->  x25        
+;  V06 loc3         [V06,T24] (  3,  2   )   ubyte  ->  x26        
+;  V07 loc4         [V07,T15] (  4,  3   )     ref  ->  x27         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T22] (  4,  2   )   byref  ->   x0         single-def
+;  V09 loc6         [V09,T17] (  3,  3   )     ref  ->  x21         class-hnd single-def <System.Array>
 ;* V10 loc7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Buffers.SharedArrayPoolPartitions>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T15] (  2,  4   )     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V13 tmp2         [V13,T14] (  5,  4   )     ref  ->  x24        
-;  V14 tmp3         [V14,T28] (  2,  2   )     int  ->  x24         "impAppendStmt"
-;  V15 tmp4         [V15,T29] (  2,  2   )     int  ->  x21         "impAppendStmt"
-;  V16 tmp5         [V16,T30] (  2,  2   )     int  ->  x26         "impAppendStmt"
-;  V17 tmp6         [V17,T31] (  2,  2   )     int  ->  x22         "impAppendStmt"
+;  V12 tmp1         [V12,T14] (  2,  4   )     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V13 tmp2         [V13,T13] (  5,  4   )     ref  ->  x24        
+;  V14 tmp3         [V14,T27] (  2,  2   )     int  ->  x24         "impAppendStmt"
+;  V15 tmp4         [V15,T28] (  2,  2   )     int  ->  x21         "impAppendStmt"
+;  V16 tmp5         [V16,T29] (  2,  2   )     int  ->  x26         "impAppendStmt"
+;  V17 tmp6         [V17,T30] (  2,  2   )     int  ->  x22         "impAppendStmt"
 ;* V18 tmp7         [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V19 tmp8         [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp9         [V20    ] (  0,  0   )     int  ->  zero-ref   
-;  V21 tmp10        [V21,T39] (  2,  1   )     int  ->   x3        
+;  V21 tmp10        [V21,T38] (  2,  1   )     int  ->   x3        
 ;* V22 tmp11        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp13        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp14        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp15        [V26,T34] (  3,  1.50)     int  ->   x4        
+;  V26 tmp15        [V26,T33] (  3,  1.50)     int  ->   x4        
 ;* V27 tmp16        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V28 tmp17        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp18        [V29    ] (  0,  0   )     int  ->  zero-ref   
@@ -45,44 +45,43 @@
 ;* V34 tmp23        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp24        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp25        [V36    ] (  0,  0   )     int  ->  zero-ref   
-;  V37 tmp26        [V37,T35] (  3,  1.50)     int  ->   x5        
-;  V38 tmp27        [V38,T32] (  2,  2   )     int  ->  x21         "impAppendStmt"
+;  V37 tmp26        [V37,T34] (  3,  1.50)     int  ->   x5        
+;  V38 tmp27        [V38,T31] (  2,  2   )     int  ->  x21         "impAppendStmt"
 ;* V39 tmp28        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V40 tmp29        [V40,T27] (  2,  2   )     ref  ->   x2         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V41 tmp30        [V41,T24] (  4,  2   )     ref  ->   x2        
-;  V42 tmp31        [V42,T43] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V40 tmp29        [V40,T26] (  2,  2   )     ref  ->   x2         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V41 tmp30        [V41,T23] (  4,  2   )     ref  ->   x2        
+;  V42 tmp31        [V42,T42] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V43 tmp32        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp33        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V45 tmp34        [V45    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V46 tmp35        [V46,T36] (  3,  1.50)     int  ->  x27         "Inline stloc first use temp"
-;  V47 tmp36        [V47,T37] (  3,  1.50)   ubyte  ->  x26         "Inline return value spill temp"
-;  V48 tmp37        [V48,T11] (  3,  4.50)     ref  ->  x24         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V46 tmp35        [V46,T35] (  3,  1.50)     int  ->  x27         "Inline stloc first use temp"
+;  V47 tmp36        [V47,T36] (  3,  1.50)   ubyte  ->  x26         "Inline return value spill temp"
+;  V48 tmp37        [V48,T02] (  6, 16.50)     ref  ->  x24         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;  V49 tmp38        [V49,T01] (  7, 22   )     int  ->  x26         "Inline stloc first use temp"
 ;  V50 tmp39        [V50,T05] (  4, 12   )     int  ->  x27         "Inline stloc first use temp"
-;  V51 tmp40        [V51,T02] (  2, 16   )     int  ->  x26         "dup spill"
+;  V51 tmp40        [V51,T03] (  2, 16   )     int  ->  x26         "dup spill"
 ;* V52 tmp41        [V52    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V53 tmp42        [V53,T42] (  4,  0   )     int  ->  x26         "Inline return value spill temp"
-;  V54 tmp43        [V54,T17] (  4,  3   )     int  ->  x27         "dup spill"
+;  V53 tmp42        [V53,T41] (  4,  0   )     int  ->  x26         "Inline return value spill temp"
+;  V54 tmp43        [V54,T16] (  4,  3   )     int  ->  x27         "dup spill"
 ;* V55 tmp44        [V55    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V57 tmp46        [V57,T07] (  3, 10   )   ubyte  ->  [fp+0x1C]  "Inline stloc first use temp"
-;  V58 tmp47        [V58,T00] (  8, 56   )     ref  ->  [fp+0x10]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V58 tmp47        [V58,T00] (  8, 56   )     ref  ->  x28         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V59 tmp48        [V59,T06] (  3, 10   )     ref  ->  x14         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V60 tmp49        [V60,T03] (  5, 14   )     int  ->   x0         "Inline stloc first use temp"
-;  V61 tmp50        [V61,T33] (  2,  2   )     int  ->   x4         "Inlining Arg"
-;* V62 tmp51        [V62,T40] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
-;* V63 tmp52        [V63,T41] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
-;  V64 tmp53        [V64,T19] (  3,  3   )     ref  ->   x0         single-def "arr expr"
+;  V60 tmp49        [V60,T04] (  5, 14   )     int  ->   x0         "Inline stloc first use temp"
+;  V61 tmp50        [V61,T32] (  2,  2   )     int  ->   x4         "Inlining Arg"
+;* V62 tmp51        [V62,T39] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
+;* V63 tmp52        [V63,T40] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
+;  V64 tmp53        [V64,T18] (  3,  3   )     ref  ->   x0         single-def "arr expr"
 ;* V65 tmp54        [V65    ] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V66 tmp55        [V66,T44] (  3,  0   )     int  ->   x0         "fgMakeTemp is creating a new local variable"
-;  V67 tmp56        [V67,T45] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
-;  V68 tmp57        [V68,T46] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V69 cse0         [V69,T38] (  3,  1.50)    long  ->   x0         "CSE - moderate"
-;  V70 cse1         [V70,T04] (  5, 12   )     int  ->  x28         "CSE - aggressive"
-;  V71 cse2         [V71,T13] (  6,  4   )     int  ->  x22         "CSE - moderate"
-;  V72 rat0         [V72,T26] (  3,  2   )    long  ->   x0         "TLS field access"
-;  V73 rat1         [V73,T20] (  3,  3   )    long  ->   x0         "TLS access"
-;  V74 rat2         [V74,T21] (  3,  3   )    long  ->   x0         "ThreadStaticBlockBase access"
+;  V66 tmp55        [V66,T43] (  3,  0   )     int  ->   x0         "fgMakeTemp is creating a new local variable"
+;  V67 tmp56        [V67,T44] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
+;  V68 tmp57        [V68,T45] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V69 cse0         [V69,T37] (  3,  1.50)    long  ->   x0         "CSE - moderate"
+;  V70 cse1         [V70,T12] (  6,  4   )     int  ->  x22         "CSE - moderate"
+;  V71 rat0         [V71,T25] (  3,  2   )    long  ->   x0         "TLS field access"
+;  V72 rat1         [V72,T19] (  3,  3   )    long  ->   x0         "TLS access"
+;  V73 rat2         [V73,T20] (  3,  3   )    long  ->   x0         "ThreadStaticBlockBase access"
 ;
 ; Lcl frame size = 16
 
@@ -259,41 +258,38 @@ G_M62415_IG11:        ; bbWeight=0, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
             udiv    w1, w26, w0
             msub    w26, w1, w0, w26
             mov     w27, wzr
-            ldr     w28, [x24, #0x08]
-            cmp     w28, #0
+            ldr     w0, [x24, #0x08]
+            cmp     w0, #0
             ble     G_M62415_IG18
                        ;; size=68 bbWeight=0 PerfScore 0.00
 G_M62415_IG12:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
-            cmp     w26, w28
+            ldr     w0, [x24, #0x08]
+            cmp     w26, w0
             bhs     G_M62415_IG28
             add     x0, x24, #16
             ; byrRegs +[x0]
-            ldr     x1, [x0, w26, UXTW #3]
-            ; gcrRegs +[x1]
-            str     x1, [fp, #0x10]    // [V58 tmp47]
-            ; GC ptr vars +{V58}
-            ldrsb   wzr, [x1]
+            ldr     x28, [x0, w26, UXTW #3]
+            ; gcrRegs +[x28]
+            ldrsb   wzr, [x28]
             str     wzr, [fp, #0x1C]   // [V57 tmp46]
-            mov     x0, x1
+            mov     x0, x28
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0-x1]
+            ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x1, [fp, #0x10]    // [V58 tmp47]
-            ; gcrRegs +[x1]
-            ldr     x14, [x1, #0x08]
+            ldr     x14, [x28, #0x08]
             ; gcrRegs +[x14]
-            ldr     w0, [x1, #0x14]
+            ldr     w0, [x28, #0x14]
             ldr     w15, [x14, #0x08]
             cmp     w15, w0
             bls     G_M62415_IG15
-                       ;; size=60 bbWeight=4 PerfScore 96.00
-G_M62415_IG13:        ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
+                       ;; size=56 bbWeight=4 PerfScore 96.00
+G_M62415_IG13:        ; bbWeight=2, gcrefRegs=11384000 {x14 x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref, isz
             cbnz    w0, G_M62415_IG14
-            str     wzr, [x1, #0x18]
+            str     wzr, [x28, #0x18]
                        ;; size=8 bbWeight=2 PerfScore 4.00
-G_M62415_IG14:        ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M62415_IG14:        ; bbWeight=2, gcrefRegs=11384000 {x14 x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref
             add     x14, x14, #16
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
@@ -304,31 +300,32 @@ G_M62415_IG14:        ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24},
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
             add     w0, w0, #1
-            str     w0, [x1, #0x14]
-            mov     w2, #1
-            str     w2, [fp, #0x1C]    // [V57 tmp46]
+            str     w0, [x28, #0x14]
+            mov     w1, #1
+            str     w1, [fp, #0x1C]    // [V57 tmp46]
                        ;; size=32 bbWeight=2 PerfScore 12.00
-G_M62415_IG15:        ; bbWeight=4, gcrefRegs=1380002 {x1 x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
-            mov     x0, x1
+G_M62415_IG15:        ; bbWeight=4, gcrefRegs=11380000 {x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x28
             ; gcrRegs +[x0]
-            ; GC ptr vars -{V58}
             bl      <unknown method>
-            ; gcrRegs -[x0-x1]
+            ; gcrRegs -[x0 x28]
             ; gcr arg pop 0
-            ldr     w2, [fp, #0x1C]    // [V57 tmp46]
-            cbnz    w2, G_M62415_IG19
+            ldr     w28, [fp, #0x1C]   // [V57 tmp46]
+            cbnz    w28, G_M62415_IG19
             add     w26, w26, #1
-            cmp     w28, w26
+            ldr     w0, [x24, #0x08]
+            cmp     w0, w26
             bne     G_M62415_IG17
-                       ;; size=28 bbWeight=4 PerfScore 26.00
+                       ;; size=32 bbWeight=4 PerfScore 38.00
 G_M62415_IG16:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
             mov     w26, wzr
                        ;; size=4 bbWeight=2 PerfScore 1.00
 G_M62415_IG17:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             add     w27, w27, #1
-            cmp     w28, w27
+            ldr     w0, [x24, #0x08]
+            cmp     w0, w27
             bgt     G_M62415_IG12
-                       ;; size=12 bbWeight=4 PerfScore 8.00
+                       ;; size=16 bbWeight=4 PerfScore 20.00
 G_M62415_IG18:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21 x24]
             mov     w26, wzr
@@ -496,7 +493,7 @@ G_M62415_IG31:        ; bbWeight=0, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
             b       G_M62415_IG08
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1004, prolog size 40, PerfScore 244.50, instruction count 251, allocated bytes for code 1004 (MethodHash=23430c30) for method System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
+Total bytes of code 1008, prolog size 40, PerfScore 268.50, instruction count 252, allocated bytes for code 1008 (MethodHash=23430c30) for method System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -507,7 +504,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 251 (0x000fb) Actual length = 1004 (0x0003ec)
+  Function Length   : 252 (0x000fc) Actual length = 1008 (0x0003f0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+0.40%) : 4457.dasm - System.Buffers.SharedArrayPool`1[short]:Rent(int):short[]:this (FullOpts)

@@ -13,14 +13,14 @@
 ;  V02 loc0         [V02,T15] (  8,  4.50)     ref  ->  x21         class-hnd exact single-def <<unknown class>>
 ;  V03 loc1         [V03,T10] ( 14,  7   )     ref  ->  x23         class-hnd <short[]>
 ;  V04 loc2         [V04,T14] (  9,  5   )     int  ->  x22        
-;  V05 loc3         [V05,T17] (  5,  3.50)     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V06 loc4         [V06,T32] (  3,  1.50)     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V07 loc5         [V07,T33] (  3,  1.50)     ref  ->   x0         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
-;  V08 loc6         [V08,T35] (  3,  1.50)     int  ->  x24        
+;  V05 loc3         [V05,T16] (  5,  3.50)     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V06 loc4         [V06,T31] (  3,  1.50)     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc5         [V07,T32] (  3,  1.50)     ref  ->   x0         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
+;  V08 loc6         [V08,T34] (  3,  1.50)     int  ->  x24        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T22] (  2,  2   )     int  ->  x20         "impAppendStmt"
-;  V11 tmp2         [V11,T23] (  2,  2   )     int  ->  x20         "impAppendStmt"
-;  V12 tmp3         [V12,T24] (  2,  2   )     int  ->   x3         "impAppendStmt"
+;  V10 tmp1         [V10,T21] (  2,  2   )     int  ->  x20         "impAppendStmt"
+;  V11 tmp2         [V11,T22] (  2,  2   )     int  ->  x20         "impAppendStmt"
+;  V12 tmp3         [V12,T23] (  2,  2   )     int  ->   x3         "impAppendStmt"
 ;* V13 tmp4         [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
@@ -31,67 +31,65 @@
 ;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T39] (  2,  1   )     int  ->   x5        
+;  V23 tmp14        [V23,T38] (  2,  1   )     int  ->   x5        
 ;* V24 tmp15        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <short[]>
-;  V25 tmp16        [V25,T25] (  2,  2   )     int  ->  x20         "impAppendStmt"
-;  V26 tmp17        [V26,T26] (  2,  2   )     int  ->  x24         "impAppendStmt"
+;  V25 tmp16        [V25,T24] (  2,  2   )     int  ->  x20         "impAppendStmt"
+;  V26 tmp17        [V26,T25] (  2,  2   )     int  ->  x24         "impAppendStmt"
 ;* V27 tmp18        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <short[]>
-;  V28 tmp19        [V28,T27] (  2,  2   )     int  ->  x20         "impAppendStmt"
-;  V29 tmp20        [V29,T28] (  2,  2   )     int  ->  x24         "impAppendStmt"
+;  V28 tmp19        [V28,T26] (  2,  2   )     int  ->  x20         "impAppendStmt"
+;  V29 tmp20        [V29,T27] (  2,  2   )     int  ->  x24         "impAppendStmt"
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V32 tmp23        [V32,T34] (  3,  1.50)     ref  ->  x23         class-hnd "Inline return value spill temp" <System.Array>
-;  V33 tmp24        [V33,T16] (  3,  4.50)     ref  ->  x23         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V32 tmp23        [V32,T33] (  3,  1.50)     ref  ->  x23         class-hnd "Inline return value spill temp" <System.Array>
+;  V33 tmp24        [V33,T02] (  7, 16.50)     ref  ->  x23         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;  V34 tmp25        [V34,T01] (  7, 22   )     int  ->  x20         "Inline stloc first use temp"
 ;  V35 tmp26        [V35,T04] (  4, 12   )     int  ->  x24         "Inline stloc first use temp"
 ;* V36 tmp27        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
 ;* V37 tmp28        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Array>
-;  V38 tmp29        [V38,T02] (  2, 16   )     int  ->  x20         "dup spill"
+;  V38 tmp29        [V38,T03] (  2, 16   )     int  ->  x20         "dup spill"
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V40 tmp31        [V40,T42] (  4,  0   )     int  ->  x20         "Inline return value spill temp"
-;  V41 tmp32        [V41,T18] (  4,  3   )     int  ->  x24         "dup spill"
+;  V40 tmp31        [V40,T41] (  4,  0   )     int  ->  x20         "Inline return value spill temp"
+;  V41 tmp32        [V41,T17] (  4,  3   )     int  ->  x24         "dup spill"
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V43 tmp34        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V44 tmp35        [V44,T06] (  4, 10.50)     ref  ->  x27         class-hnd "Inline stloc first use temp" <System.Array>
-;  V45 tmp36        [V45,T00] (  7, 52   )     ref  ->  x26         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V44 tmp35        [V44,T06] (  4, 10.50)     ref  ->  x26         class-hnd "Inline stloc first use temp" <System.Array>
+;  V45 tmp36        [V45,T00] (  7, 52   )     ref  ->  x25         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V46 tmp37        [V46,T07] (  3, 10   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V47 tmp38        [V47,T05] (  4, 12   )     int  ->   x1         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T36] (  3,  1.50)     int  ->  x20         "Inline stloc first use temp"
+;  V48 tmp39        [V48,T35] (  3,  1.50)     int  ->  x20         "Inline stloc first use temp"
 ;* V49 tmp40        [V49    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <short[]>
 ;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V51 tmp42        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <short[]>
-;  V52 tmp43        [V52,T44] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V52 tmp43        [V52,T43] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;* V53 tmp44        [V53    ] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V54 tmp45        [V54,T43] (  3,  0   )     int  ->   x0         "fgMakeTemp is creating a new local variable"
-;  V55 tmp46        [V55,T29] (  2,  2   )     int  ->   x3         "argument with side effect"
-;  V56 tmp47        [V56,T30] (  2,  2   )     int  ->   x3         "argument with side effect"
-;  V57 tmp48        [V57,T31] (  2,  2   )     int  ->   x3         "argument with side effect"
-;  V58 cse0         [V58,T37] (  3,  1.50)    long  ->   x0         "CSE - moderate"
-;  V59 cse1         [V59,T38] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V60 cse2         [V60,T40] (  2,  1   )     int  ->   x1         "CSE - moderate"
+;  V54 tmp45        [V54,T42] (  3,  0   )     int  ->   x0         "fgMakeTemp is creating a new local variable"
+;  V55 tmp46        [V55,T28] (  2,  2   )     int  ->   x3         "argument with side effect"
+;  V56 tmp47        [V56,T29] (  2,  2   )     int  ->   x3         "argument with side effect"
+;  V57 tmp48        [V57,T30] (  2,  2   )     int  ->   x3         "argument with side effect"
+;  V58 cse0         [V58,T36] (  3,  1.50)    long  ->   x0         "CSE - moderate"
+;  V59 cse1         [V59,T37] (  3,  1.50)    long  ->   x1         "CSE - moderate"
+;  V60 cse2         [V60,T39] (  2,  1   )     int  ->   x1         "CSE - moderate"
 ;  V61 cse3         [V61,T13] (  3,  6   )    long  ->   x2         "CSE - aggressive"
-;  V62 cse4         [V62,T03] (  5, 12   )     int  ->  x25         "CSE - aggressive"
-;  V63 cse5         [V63,T08] (  2,  8   )     int  ->   x2         "CSE - aggressive"
-;  V64 cse6         [V64,T12] (  3,  6   )   byref  ->   x0         "CSE - aggressive"
-;  V65 cse7         [V65,T41] (  2,  1   )     int  ->   x1         "CSE - moderate"
-;  V66 rat0         [V66,T21] (  3,  2   )    long  ->   x0         "TLS field access"
-;  V67 rat1         [V67,T19] (  3,  3   )    long  ->   x0         "TLS access"
-;  V68 rat2         [V68,T20] (  3,  3   )    long  ->   x0         "ThreadStaticBlockBase access"
+;  V62 cse4         [V62,T08] (  2,  8   )     int  ->   x2         "CSE - aggressive"
+;  V63 cse5         [V63,T12] (  3,  6   )   byref  ->   x0         "CSE - aggressive"
+;  V64 cse6         [V64,T40] (  2,  1   )     int  ->   x1         "CSE - moderate"
+;  V65 rat0         [V65,T20] (  3,  2   )    long  ->   x0         "TLS field access"
+;  V66 rat1         [V66,T18] (  3,  3   )    long  ->   x0         "TLS access"
+;  V67 rat2         [V67,T19] (  3,  3   )    long  ->   x0         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M58514_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x60]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            stp     x23, x24, [sp, #0x38]
-            stp     x25, x26, [sp, #0x48]
-            str     x27, [sp, #0x58]
+            stp     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x10]
+            stp     x21, x22, [sp, #0x20]
+            stp     x23, x24, [sp, #0x30]
+            stp     x25, x26, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     w20, w1
-                       ;; size=36 bbWeight=1 PerfScore 7.50
+                       ;; size=32 bbWeight=1 PerfScore 6.50
 G_M58514_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -160,14 +158,13 @@ G_M58514_IG04:        ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M58514_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x27, [sp, #0x58]
-            ldp     x25, x26, [sp, #0x48]
-            ldp     x23, x24, [sp, #0x38]
-            ldp     x21, x22, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x60
+            ldp     x25, x26, [sp, #0x40]
+            ldp     x23, x24, [sp, #0x30]
+            ldp     x21, x22, [sp, #0x20]
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=28 bbWeight=0.50 PerfScore 4.00
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
 G_M58514_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0 x23] +[x19 x21]
             ldr     x0, [x19, #0x10]
@@ -229,79 +226,83 @@ G_M58514_IG10:        ; bbWeight=0, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=00
             udiv    w1, w20, w0
             msub    w20, w1, w0, w20
             mov     w24, wzr
-            ldr     w25, [x23, #0x08]
-            cmp     w25, #0
+            ldr     w0, [x23, #0x08]
+            cmp     w0, #0
             ble     G_M58514_IG16
-                       ;; size=68 bbWeight=0 PerfScore 0.00
+            ldr     wzr, [x23, #0x08]
+                       ;; size=72 bbWeight=0 PerfScore 0.00
 G_M58514_IG11:        ; bbWeight=4, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz
-            cmp     w20, w25
+            ldr     w0, [x23, #0x08]
+            cmp     w20, w0
             bhs     G_M58514_IG25
             add     x0, x23, #16
             ; byrRegs +[x0]
-            ldr     x26, [x0, w20, UXTW #3]
+            ldr     x25, [x0, w20, UXTW #3]
+            ; gcrRegs +[x25]
+            ldrsb   wzr, [x25]
+            mov     x26, xzr
             ; gcrRegs +[x26]
-            ldrsb   wzr, [x26]
-            mov     x27, xzr
-            ; gcrRegs +[x27]
-            mov     x0, x26
+            mov     x0, x25
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
             bl      <unknown method>
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [x26, #0x08]
+            ldr     x0, [x25, #0x08]
             ; gcrRegs +[x0]
-            ldr     w1, [x26, #0x14]
+            ldr     w1, [x25, #0x14]
             sub     w1, w1, #1
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
             bls     G_M58514_IG13
-                       ;; size=56 bbWeight=4 PerfScore 84.00
-G_M58514_IG12:        ; bbWeight=2, gcrefRegs=4A80001 {x0 x19 x21 x23 x26}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x27]
+                       ;; size=60 bbWeight=4 PerfScore 96.00
+G_M58514_IG12:        ; bbWeight=2, gcrefRegs=2A80001 {x0 x19 x21 x23 x25}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x26]
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ubfiz   x2, x1, #3, #32
-            ldr     x27, [x0, x2]
-            ; gcrRegs +[x27]
+            ldr     x26, [x0, x2]
+            ; gcrRegs +[x26]
             str     xzr, [x0, x2]
-            str     w1, [x26, #0x14]
+            str     w1, [x25, #0x14]
                        ;; size=20 bbWeight=2 PerfScore 13.00
-G_M58514_IG13:        ; bbWeight=4, gcrefRegs=CA80000 {x19 x21 x23 x26 x27}, byrefRegs=0000 {}, byref, isz
+G_M58514_IG13:        ; bbWeight=4, gcrefRegs=6A80000 {x19 x21 x23 x25 x26}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
-            mov     x0, x26
+            mov     x0, x25
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0 x26]
+            ; gcrRegs -[x0 x25]
             ; gcr arg pop 0
-            cbnz    x27, G_M58514_IG17
+            cbnz    x26, G_M58514_IG17
             add     w20, w20, #1
-            cmp     w25, w20
+            ldr     w0, [x23, #0x08]
+            cmp     w0, w20
             bne     G_M58514_IG15
-                       ;; size=24 bbWeight=4 PerfScore 18.00
+                       ;; size=28 bbWeight=4 PerfScore 30.00
 G_M58514_IG14:        ; bbWeight=2, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x27]
+            ; gcrRegs -[x26]
             mov     w20, wzr
                        ;; size=4 bbWeight=2 PerfScore 1.00
 G_M58514_IG15:        ; bbWeight=4, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz
             add     w24, w24, #1
-            cmp     w25, w24
+            ldr     w0, [x23, #0x08]
+            cmp     w0, w24
             bgt     G_M58514_IG11
-                       ;; size=12 bbWeight=4 PerfScore 8.00
+                       ;; size=16 bbWeight=4 PerfScore 20.00
 G_M58514_IG16:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x23]
             mov     x23, xzr
             ; gcrRegs +[x23]
             b       G_M58514_IG18
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M58514_IG17:        ; bbWeight=0.50, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x23] +[x27]
-            mov     x23, x27
+G_M58514_IG17:        ; bbWeight=0.50, gcrefRegs=4280000 {x19 x21 x26}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x23] +[x26]
...

+12 (+0.55%) : 155338.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+d__27:MoveNext():this (FullOpts)

@@ -9,7 +9,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 33, 79   )   byref  ->  [fp+0x10]  this EH-live single-def
-;  V01 loc0         [V01,T45] (  3,  3   )     int  ->   x1         single-def
+;  V01 loc0         [V01,T44] (  3,  3   )     int  ->   x1         single-def
 ;  V02 loc1         [V02,T10] (  9, 12   )     ref  ->  x19         class-hnd single-def <<unknown class>>
 ;  V03 loc2         [V03    ] (  7,  7   )  struct ( 8) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter`1[System.Threading.Tasks.Task]>
 ;  V04 loc3         [V04    ] ( 10, 45.00)  struct (16) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
@@ -21,7 +21,7 @@
 ;* V10 tmp3         [V10    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;  V11 tmp4         [V11,T23] (  3,  6   )     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Object[]>
 ;* V12 tmp5         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <Microsoft.Build.Framework.BuildEventContext>
-;  V13 tmp6         [V13,T33] (  2,  4   )     ref  ->  x21         class-hnd exact single-def "impSpillLclRefs" <<unknown class>>
+;  V13 tmp6         [V13,T32] (  2,  4   )     ref  ->  x21         class-hnd exact single-def "impSpillLclRefs" <<unknown class>>
 ;  V14 tmp7         [V14,T24] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;  V15 tmp8         [V15,T25] (  3,  6   )     ref  ->  x22         class-hnd exact single-def "dup spill" <System.Object[]>
 ;  V16 tmp9         [V16,T26] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
@@ -29,16 +29,16 @@
 ;  V18 tmp11        [V18,T28] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;* V19 tmp12        [V19    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V20 tmp13        [V20    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V21 tmp14        [V21,T34] (  2,  4   )     ref  ->  x20         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
-;  V22 tmp15        [V22,T65] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V21 tmp14        [V21,T33] (  2,  4   )     ref  ->  x20         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
+;  V22 tmp15        [V22,T64] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;* V23 tmp16        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V24 tmp17        [V24    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V25 tmp18        [V25,T46] (  2,  2   )     ref  ->   x2         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+;  V25 tmp18        [V25,T45] (  2,  2   )     ref  ->   x2         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V26 tmp19        [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;  V27 tmp20        [V27,T35] (  2,  4   )     ref  ->  x21         class-hnd single-def "Inlining Arg" <System.TimeProvider>
+;  V27 tmp20        [V27,T34] (  2,  4   )     ref  ->  x21         class-hnd single-def "Inlining Arg" <System.TimeProvider>
 ;* V28 tmp21        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V29 tmp22        [V29,T29] (  3,  6   )     ref  ->  x23         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V30 tmp23        [V30,T51] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;  V29 tmp22        [V29,T29] (  3,  6   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V30 tmp23        [V30,T50] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V31 tmp24        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V32 tmp25        [V32    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V33 tmp26        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -78,13 +78,13 @@
 ;* V67 tmp60        [V67    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter`1[System.Threading.Tasks.Task]>
 ;* V68 tmp61        [V68    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V69 tmp62        [V69    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V70 tmp63        [V70,T36] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
+;  V70 tmp63        [V70,T35] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
 ;* V71 tmp64        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp65        [V72    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V73 tmp66        [V73    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V74 tmp67        [V74    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V75 tmp68        [V75,T31] (  3,  4.00)     ref  ->   x1         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
-;  V76 tmp69        [V76,T37] (  2,  4   )     ref  ->   x1         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
+;  V76 tmp69        [V76,T36] (  2,  4   )     ref  ->   x1         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
 ;* V77 tmp70        [V77    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V78 tmp71        [V78,T15] (  4,  8   )     ref  ->  x21         class-hnd single-def "Inlining Arg" <System.Diagnostics.Process>
 ;  V79 tmp72        [V79,T01] (  5, 40   )     ref  ->  x21         class-hnd "Inlining Arg" <System.Diagnostics.Process>
@@ -95,7 +95,7 @@
 ;  V84 tmp77        [V84,T04] (  3, 24   )     ref  ->   x0         class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V85 tmp78        [V85    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V86 tmp79        [V86,T18] (  2,  8   )     ref  ->   x0        
-;* V87 tmp80        [V87,T41] (  0,  0   )     int  ->  zero-ref   
+;* V87 tmp80        [V87,T40] (  0,  0   )     int  ->  zero-ref   
 ;* V88 tmp81        [V88    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
 ;* V89 tmp82        [V89    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
 ;* V90 tmp83        [V90    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -104,7 +104,7 @@
 ;* V93 tmp86        [V93    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp87        [V94    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V95 tmp88        [V95    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V96 tmp89        [V96,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V96 tmp89        [V96,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V97 tmp90        [V97,T09] (  2, 16.00)     ref  ->  x14         class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V98 tmp91        [V98    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V99 tmp92        [V99    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -119,25 +119,25 @@
 ;  V108 tmp101      [V108,T17] (  4,  8   )     ref  ->  x23         class-hnd single-def "Inlining Arg" <System.Diagnostics.Process>
 ;  V109 tmp102      [V109,T21] (  4,  6   )   byref  ->  x14         single-def "Inlining Arg"
 ;* V110 tmp103      [V110    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
-;  V111 tmp104      [V111,T53] (  8,  0.04)     ref  ->  x20         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
+;  V111 tmp104      [V111,T52] (  8,  0.04)     ref  ->  x20         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V112 tmp105      [V112    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.Tasks.VoidTaskResult>
-;  V113 tmp106      [V113,T54] (  6,  0.04)     ref  ->  x19         class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
+;  V113 tmp106      [V113,T53] (  6,  0.04)     ref  ->  x19         class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
 ;* V114 tmp107      [V114    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V115 tmp108      [V115    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V116 tmp109      [V116    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
-;  V117 tmp110      [V117,T57] (  2,  0.01)     int  ->  x21         "Inlining Arg"
-;* V118 tmp111      [V118,T63] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V117 tmp110      [V117,T56] (  2,  0.01)     int  ->  x21         "Inlining Arg"
+;* V118 tmp111      [V118,T62] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V119 tmp112      [V119    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V120 tmp113      [V120,T61] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V121 tmp114      [V121,T60] (  3,  0.01)     ref  ->  x21         class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
-;  V122 tmp115      [V122,T64] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
-;  V123 tmp116      [V123,T56] (  5,  0.02)     int  ->   x0         single-def "Inline stloc first use temp"
+;* V120 tmp113      [V120,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;  V121 tmp114      [V121,T59] (  3,  0.01)     ref  ->  x21         class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
+;  V122 tmp115      [V122,T63] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
+;  V123 tmp116      [V123,T55] (  5,  0.02)     int  ->   x0         single-def "Inline stloc first use temp"
 ;  V124 tmp117      [V124    ] (  7,  7   )     ref  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V03.m_task (fldOffset=0x0)" P-DEP
 ;  V125 tmp118      [V125    ] (  6, 25.00)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
 ;  V126 tmp119      [V126    ] (  6, 25   )     int  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V04.m_options (fldOffset=0x8)" P-DEP
 ;* V127 tmp120      [V127    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V23._source (fldOffset=0x0)" P-INDEP
 ;* V128 tmp121      [V128    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V24._source (fldOffset=0x0)" P-INDEP
-;* V129 tmp122      [V129,T50] (  0,  0   )     ref  ->  zero-ref    single-def "field V26._source (fldOffset=0x0)" P-INDEP
+;* V129 tmp122      [V129,T49] (  0,  0   )     ref  ->  zero-ref    single-def "field V26._source (fldOffset=0x0)" P-INDEP
 ;* V130 tmp123      [V130    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V32._source (fldOffset=0x0)" P-DEP
 ;* V131 tmp124      [V131    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V40._node (fldOffset=0x0)" P-DEP
 ;* V132 tmp125      [V132    ] (  0,  0   )    long  ->  zero-ref    single-def "field V40._id (fldOffset=0x8)" P-DEP
@@ -145,26 +145,25 @@
 ;* V134 tmp127      [V134    ] (  0,  0   )    long  ->  zero-ref    "field V58._id (fldOffset=0x8)" P-DEP
 ;* V135 tmp128      [V135    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V59._node (fldOffset=0x0)" P-INDEP
 ;* V136 tmp129      [V136    ] (  0,  0   )    long  ->  zero-ref    single-def "field V59._id (fldOffset=0x8)" P-INDEP
-;  V137 tmp130      [V137,T47] (  2,  2   )     ref  ->   x0         single-def "field V67.m_task (fldOffset=0x0)" P-INDEP
+;  V137 tmp130      [V137,T46] (  2,  2   )     ref  ->   x0         single-def "field V67.m_task (fldOffset=0x0)" P-INDEP
 ;* V138 tmp131      [V138    ] (  0,  0   )     ref  ->  zero-ref    "field V82._source (fldOffset=0x0)" P-INDEP
-;* V139 tmp132      [V139,T40] (  0,  0   )     ref  ->  zero-ref    "field V83._source (fldOffset=0x0)" P-INDEP
+;* V139 tmp132      [V139,T39] (  0,  0   )     ref  ->  zero-ref    "field V83._source (fldOffset=0x0)" P-INDEP
 ;  V140 tmp133      [V140,T19] (  2,  8   )     ref  ->   x0         "field V89.m_task (fldOffset=0x0)" P-INDEP
-;* V141 tmp134      [V141,T43] (  0,  0   )     int  ->  zero-ref    "field V89.m_options (fldOffset=0x8)" P-INDEP
+;* V141 tmp134      [V141,T42] (  0,  0   )     int  ->  zero-ref    "field V89.m_options (fldOffset=0x8)" P-INDEP
 ;  V142 tmp135      [V142,T08] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V143 tmp136      [V143,T38] (  2, 16   )     ref  ->   x1         "argument with side effect"
-;  V144 tmp137      [V144,T39] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V145 PSPSym      [V145,T52] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[V] "PSPSym"
-;  V146 cse0        [V146,T58] (  3,  0.01)     ref  ->  x19         "CSE - conservative"
-;  V147 cse1        [V147,T59] (  3,  0.01)     int  ->   x1         "CSE - conservative"
-;  V148 cse2        [V148,T55] (  5,  0.02)   byref  ->  x19         "CSE - conservative"
-;  V149 cse3        [V149,T48] (  2,  2   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V150 cse4        [V150,T32] (  4,  4   )    long  ->  x22         "CSE - moderate"
-;  V151 cse5        [V151,T14] (  6, 10.01)    long  ->  registers   multi-def "CSE - aggressive"
-;  V152 cse6        [V152,T11] (  8, 12   )    long  ->  registers   multi-def "CSE - aggressive"
-;  V153 cse7        [V153,T44] (  3,  3   )   byref  ->   x1         "CSE - moderate"
-;  V154 rat0        [V154,T49] (  2,  2   )    long  ->  x21         "Spilling to split statement for tree"
-;  V155 rat1        [V155,T20] (  2,  8   )    long  ->   x0         "Spilling to split statement for tree"
-;  V156 rat2        [V156,T62] (  2,  0.01)    long  ->   x0         "Spilling to split statement for tree"
+;  V143 tmp136      [V143,T37] (  2, 16   )     ref  ->   x1         "argument with side effect"
+;  V144 tmp137      [V144,T38] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
+;  V145 PSPSym      [V145,T51] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[V] "PSPSym"
+;  V146 cse0        [V146,T57] (  3,  0.01)     ref  ->  x19         "CSE - conservative"
+;  V147 cse1        [V147,T58] (  3,  0.01)     int  ->   x1         "CSE - conservative"
+;  V148 cse2        [V148,T54] (  5,  0.02)   byref  ->  x19         "CSE - conservative"
+;  V149 cse3        [V149,T47] (  2,  2   )     ref  ->   x1         multi-def "CSE - aggressive"
+;  V150 cse4        [V150,T14] (  6, 10.01)    long  ->  registers   multi-def "CSE - aggressive"
+;  V151 cse5        [V151,T11] (  8, 12   )    long  ->  registers   multi-def "CSE - aggressive"
+;  V152 cse6        [V152,T43] (  3,  3   )   byref  ->   x1         "CSE - moderate"
+;  V153 rat0        [V153,T48] (  2,  2   )    long  ->  x21         "Spilling to split statement for tree"
+;  V154 rat1        [V154,T20] (  2,  8   )    long  ->   x0         "Spilling to split statement for tree"
+;  V155 rat2        [V155,T61] (  2,  0.01)    long  ->   x0         "Spilling to split statement for tree"
 ;
 ; Lcl frame size = 40
 
@@ -213,15 +212,14 @@ G_M16468_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             movk    x21, #0xD1FFAB1E LSL #32
             ldr     x21, [x21]
             ; gcrRegs +[x21]
-            movz    x22, #0xD1FFAB1E
-            movk    x22, #0xD1FFAB1E LSL #16
-            movk    x22, #0xD1FFAB1E LSL #32
-            mov     x0, x22
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
-            mov     x23, x0
-            ; gcrRegs +[x23]
+            mov     x22, x0
+            ; gcrRegs +[x22]
             mov     x2, x21
             ; gcrRegs +[x2]
             mov     w1, #100
@@ -232,17 +230,19 @@ G_M16468_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             blr     x3
             ; gcrRegs -[x0 x2 x21]
             ; gcr arg pop 0
-            mov     x2, x23
+            mov     x2, x22
             ; gcrRegs +[x2]
             mov     x1, x20
             ; gcrRegs +[x1]
-            add     x0, x22, #0xD1FFAB1E
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x3, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:WhenAny[System.__Canon](System.__Canon,System.__Canon):System.Threading.Tasks.Task`1[System.__Canon]
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcrRegs -[x1-x2 x20 x23] +[x0]
+            ; gcrRegs -[x1-x2 x20 x22] +[x0]
             ; gcr arg pop 0
             ldrsb   wzr, [x0]
             str     x0, [fp, #0x28]    // [V124 tmp117]
@@ -280,8 +280,10 @@ G_M16468_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             mov     x2, x0
             ; gcrRegs +[x2]
             add     x1, fp, #40    // [V03 loc2]
-            add     x0, x22, #0xD1FFAB1E
+            movz    x0, #0xD1FFAB1E
             ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -290,7 +292,7 @@ G_M16468_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs -[x2]
             ; gcr arg pop 0
             b       G_M16468_IG41
-                       ;; size=212 bbWeight=1 PerfScore 53.50
+                       ;; size=224 bbWeight=1 PerfScore 55.00
 G_M16468_IG05:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19]
             ldr     x0, [fp, #0x10]    // [V00 this]
@@ -1031,7 +1033,7 @@ G_M16468_IG48:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 2196, prolog size 44, PerfScore 834.18, instruction count 549, allocated bytes for code 2196 (MethodHash=362fbfab) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+<WaitForExitAsync>d__27:MoveNext():this (FullOpts)
+Total bytes of code 2208, prolog size 44, PerfScore 835.68, instruction count 552, allocated bytes for code 2208 (MethodHash=362fbfab) for method Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+<WaitForExitAsync>d__27:MoveNext():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -1042,7 +1044,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 525 (0x0020d) Actual length = 2100 (0x000834)
+  Function Length   : 528 (0x00210) Actual length = 2112 (0x000840)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+2.09%) : 207875.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)

@@ -16,29 +16,29 @@
 ;  V05 loc2         [V05,T02] (  4, 12.50)     ref  ->  x24         class-hnd <System.Xml.XmlDictionaryString>
 ;  V06 loc3         [V06    ] ( 17,  0   )  struct (40) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T15] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V08 tmp1         [V08,T14] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V10 tmp3         [V10,T13] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V10 tmp3         [V10,T12] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V12 tmp5         [V12,T16] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V13 tmp6         [V13,T18] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V12 tmp5         [V12,T15] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V13 tmp6         [V13,T17] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp9         [V16,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp9         [V16,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T19] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V19 tmp12        [V19,T18] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V21 tmp14        [V21,T14] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V21 tmp14        [V21,T13] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V23 tmp16        [V23,T17] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V24 tmp17        [V24,T20] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V23 tmp16        [V23,T16] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V24 tmp17        [V24,T19] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V27 tmp20        [V27,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V27 tmp20        [V27,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T21] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V30 tmp23        [V30,T20] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V31 tmp24        [V31,T00] (  5, 27.05)     ref  ->   x2         class-hnd exact "Inlining Arg" <System.String>
 ;  V32 tmp25        [V32,T11] (  2,  4   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V33 tmp26        [V33,T04] (  2,  8   )   byref  ->   x0         "impAppendStmt"
@@ -59,11 +59,10 @@
 ;* V48 tmp41        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V50 tmp43        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V51 tmp44        [V51,T22] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V52 cse0         [V52,T12] (  6,  0   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V53 cse1         [V53,T10] (  2,  5   )   byref  ->  x19         hoist "CSE - aggressive"
-;  V54 cse2         [V54,T07] (  3,  6   )     int  ->  x23         "CSE - aggressive"
-;  V55 cse3         [V55,T08] (  3,  5.52)     int  ->   x1         "CSE - aggressive"
+;  V51 tmp44        [V51,T21] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V52 cse0         [V52,T10] (  2,  5   )   byref  ->  x19         hoist "CSE - aggressive"
+;  V53 cse1         [V53,T07] (  3,  6   )     int  ->  x23         "CSE - aggressive"
+;  V54 cse2         [V54,T08] (  3,  5.52)     int  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -221,19 +220,19 @@ G_M28309_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M28309_IG16
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M28309_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #8
             blo     G_M28309_IG17
@@ -293,19 +292,19 @@ G_M28309_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M28309_IG21
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M28309_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M28309_IG22
             movz    x0, #0xD1FFAB1E
@@ -367,7 +366,7 @@ G_M28309_IG23:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 764, prolog size 44, PerfScore 110.97, instruction count 191, allocated bytes for code 764 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
+Total bytes of code 780, prolog size 44, PerfScore 110.97, instruction count 195, allocated bytes for code 780 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -378,7 +377,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 191 (0x000bf) Actual length = 764 (0x0002fc)
+  Function Length   : 195 (0x000c3) Actual length = 780 (0x00030c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+2.12%) : 207874.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)

@@ -16,29 +16,29 @@
 ;  V05 loc2         [V05,T01] (  6, 16.26)     ref  ->  x24         class-hnd exact <System.String>
 ;  V06 loc3         [V06    ] ( 17,  0   )  struct (40) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T14] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V08 tmp1         [V08,T13] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V10 tmp3         [V10,T12] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V10 tmp3         [V10,T11] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V12 tmp5         [V12,T15] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V13 tmp6         [V13,T17] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V12 tmp5         [V12,T14] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V13 tmp6         [V13,T16] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp9         [V16,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp9         [V16,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T18] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V19 tmp12        [V19,T17] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V21 tmp14        [V21,T13] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V21 tmp14        [V21,T12] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V23 tmp16        [V23,T16] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V24 tmp17        [V24,T19] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V23 tmp16        [V23,T15] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V24 tmp17        [V24,T18] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V27 tmp20        [V27,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V27 tmp20        [V27,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T20] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V30 tmp23        [V30,T19] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V31 tmp24        [V31,T10] (  2,  4   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V32 tmp25        [V32,T03] (  2,  8   )   byref  ->   x0         "impAppendStmt"
 ;* V33 tmp26        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -58,11 +58,10 @@
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp41        [V48    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V50 tmp43        [V50,T21] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V51 cse0         [V51,T11] (  6,  0   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V52 cse1         [V52,T09] (  2,  5   )   byref  ->  x19         hoist "CSE - aggressive"
-;  V53 cse2         [V53,T06] (  3,  6   )     int  ->  x23         "CSE - aggressive"
-;  V54 cse3         [V54,T07] (  3,  5.52)     int  ->   x2         "CSE - aggressive"
+;  V50 tmp43        [V50,T20] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V51 cse0         [V51,T09] (  2,  5   )   byref  ->  x19         hoist "CSE - aggressive"
+;  V52 cse1         [V52,T06] (  3,  6   )     int  ->  x23         "CSE - aggressive"
+;  V53 cse2         [V53,T07] (  3,  5.52)     int  ->   x2         "CSE - aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -214,19 +213,19 @@ G_M58179_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M58179_IG15
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M58179_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #8
             blo     G_M58179_IG16
@@ -286,19 +285,19 @@ G_M58179_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M58179_IG20
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M58179_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M58179_IG21
             movz    x0, #0xD1FFAB1E
@@ -360,7 +359,7 @@ G_M58179_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 756, prolog size 44, PerfScore 95.96, instruction count 189, allocated bytes for code 756 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
+Total bytes of code 772, prolog size 44, PerfScore 95.96, instruction count 193, allocated bytes for code 772 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -371,7 +370,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 189 (0x000bd) Actual length = 756 (0x0002f4)
+  Function Length   : 193 (0x000c1) Actual length = 772 (0x000304)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+4.49%) : 4464.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)

@@ -10,40 +10,38 @@
 ;
 ;  V00 this         [V00,T14] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Array>
-;  V02 loc1         [V02,T18] (  3,  1   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V02 loc1         [V02,T02] (  7, 17   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
 ;  V03 loc2         [V03,T01] (  7, 22   )     int  ->  x20        
 ;  V04 loc3         [V04,T04] (  4, 12   )     int  ->  x21        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
-;  V07 tmp2         [V07,T02] (  2, 16   )     int  ->  x20         "dup spill"
+;  V07 tmp2         [V07,T03] (  2, 16   )     int  ->  x20         "dup spill"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T19] (  4,  0   )     int  ->  x21         "Inline return value spill temp"
+;  V09 tmp4         [V09,T17] (  4,  0   )     int  ->  x21         "Inline return value spill temp"
 ;  V10 tmp5         [V10,T09] (  4,  6   )     int  ->  x20         "dup spill"
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V13 tmp8         [V13,T06] (  4, 10.50)     ref  ->  x24         class-hnd "Inline stloc first use temp" <System.Array>
-;  V14 tmp9         [V14,T00] (  7, 52   )     ref  ->  x23         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V13 tmp8         [V13,T06] (  4, 10.50)     ref  ->  x23         class-hnd "Inline stloc first use temp" <System.Array>
+;  V14 tmp9         [V14,T00] (  7, 52   )     ref  ->  x22         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V15 tmp10        [V15,T07] (  3, 10   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V16 tmp11        [V16,T05] (  4, 12   )     int  ->   x1         "Inline stloc first use temp"
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "fgMakeTemp is creating a new local variable"
-;  V18 tmp13        [V18,T20] (  3,  0   )     int  ->   x0         "fgMakeTemp is creating a new local variable"
-;  V19 cse0         [V19,T17] (  3,  3   )    long  ->   x0         "CSE - aggressive"
+;  V18 tmp13        [V18,T18] (  3,  0   )     int  ->   x0         "fgMakeTemp is creating a new local variable"
+;  V19 cse0         [V19,T16] (  3,  3   )    long  ->   x0         "CSE - aggressive"
 ;  V20 cse1         [V20,T11] (  3,  6   )    long  ->   x2         "CSE - aggressive"
-;  V21 cse2         [V21,T03] (  5, 12   )     int  ->  x22         "CSE - aggressive"
-;  V22 cse3         [V22,T16] (  2,  4   )   byref  ->  x19         hoist "CSE - aggressive"
-;  V23 cse4         [V23,T08] (  2,  8   )     int  ->   x2         "CSE - aggressive"
-;  V24 cse5         [V24,T10] (  3,  6   )   byref  ->   x0         "CSE - aggressive"
-;  V25 rat0         [V25,T15] (  3,  4   )    long  ->   x0         "TLS field access"
-;  V26 rat1         [V26,T12] (  3,  6   )    long  ->   x0         "TLS access"
-;  V27 rat2         [V27,T13] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
+;  V21 cse2         [V21,T08] (  2,  8   )     int  ->   x2         "CSE - aggressive"
+;  V22 cse3         [V22,T10] (  3,  6   )   byref  ->   x0         "CSE - aggressive"
+;  V23 rat0         [V23,T15] (  3,  4   )    long  ->   x0         "TLS field access"
+;  V24 rat1         [V24,T12] (  3,  6   )    long  ->   x0         "TLS access"
+;  V25 rat2         [V25,T13] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M10734_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            str     x23, [sp, #0x38]
             mov     fp, sp
                        ;; size=20 bbWeight=1 PerfScore 4.50
 G_M10734_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -95,91 +93,95 @@ G_M10734_IG06:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             udiv    w1, w21, w0
             msub    w20, w1, w0, w21
             mov     w21, wzr
-            ldr     w22, [x19, #0x08]
-            cmp     w22, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             ble     G_M10734_IG12
-            add     x19, x19, #16
-            ; gcrRegs -[x19]
-            ; byrRegs +[x19]
+            ldr     wzr, [x19, #0x08]
                        ;; size=72 bbWeight=0 PerfScore 0.00
-G_M10734_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            cmp     w20, w22
+G_M10734_IG07:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x19, #0x08]
+            cmp     w20, w0
             bhs     G_M10734_IG16
-            ldr     x23, [x19, w20, UXTW #3]
+            add     x0, x19, #16
+            ; byrRegs +[x0]
+            ldr     x22, [x0, w20, UXTW #3]
+            ; gcrRegs +[x22]
+            ldrsb   wzr, [x22]
+            mov     x23, xzr
             ; gcrRegs +[x23]
-            ldrsb   wzr, [x23]
-            mov     x24, xzr
-            ; gcrRegs +[x24]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
+            ; byrRegs -[x0]
             bl      <unknown method>
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [x23, #0x08]
+            ldr     x0, [x22, #0x08]
             ; gcrRegs +[x0]
-            ldr     w1, [x23, #0x14]
+            ldr     w1, [x22, #0x14]
             sub     w1, w1, #1
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
             bls     G_M10734_IG09
-                       ;; size=52 bbWeight=4 PerfScore 82.00
-G_M10734_IG08:        ; bbWeight=2, gcrefRegs=800001 {x0 x23}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x24]
+                       ;; size=60 bbWeight=4 PerfScore 96.00
+G_M10734_IG08:        ; bbWeight=2, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x23]
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ubfiz   x2, x1, #3, #32
-            ldr     x24, [x0, x2]
-            ; gcrRegs +[x24]
+            ldr     x23, [x0, x2]
+            ; gcrRegs +[x23]
             str     xzr, [x0, x2]
-            str     w1, [x23, #0x14]
+            str     w1, [x22, #0x14]
                        ;; size=20 bbWeight=2 PerfScore 13.00
-G_M10734_IG09:        ; bbWeight=4, gcrefRegs=1800000 {x23 x24}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG09:        ; bbWeight=4, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0 x23]
+            ; gcrRegs -[x0 x22]
             ; gcr arg pop 0
-            cbnz    x24, G_M10734_IG14
+            cbnz    x23, G_M10734_IG14
             add     w20, w20, #1
-            cmp     w22, w20
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w20
             bne     G_M10734_IG11
-                       ;; size=24 bbWeight=4 PerfScore 18.00
-G_M10734_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x24]
+                       ;; size=28 bbWeight=4 PerfScore 30.00
+G_M10734_IG10:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x23]
             mov     w20, wzr
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M10734_IG11:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG11:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     w21, w21, #1
-            cmp     w22, w21
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w21
             bgt     G_M10734_IG07
-                       ;; size=12 bbWeight=4 PerfScore 8.00
+                       ;; size=16 bbWeight=4 PerfScore 20.00
 G_M10734_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x19]
+            ; gcrRegs -[x19]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M10734_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M10734_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x24]
-            mov     x0, x24
+                       ;; size=20 bbWeight=0.50 PerfScore 3.00
+G_M10734_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x23]
+            mov     x0, x23
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M10734_IG15:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.50 PerfScore 2.50
+                       ;; size=20 bbWeight=0.50 PerfScore 3.00
 G_M10734_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x24]
+            ; gcrRegs -[x0 x23]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
@@ -195,7 +197,7 @@ G_M10734_IG18:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             b       G_M10734_IG03
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 356, prolog size 20, PerfScore 153.50, instruction count 89, allocated bytes for code 356 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
+Total bytes of code 372, prolog size 20, PerfScore 192.50, instruction count 93, allocated bytes for code 372 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -206,7 +208,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 89 (0x00059) Actual length = 356 (0x000164)
+  Function Length   : 93 (0x0005d) Actual length = 372 (0x000174)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -217,10 +219,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D1 07       save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
     E6          save_next
-    E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
-    E4          end
 

libraries_tests.run.linux.arm64.Release.mch

-28 (-2.68%) : 406353.dasm - System.Resources.ResourceManager:GetResourceFileName(System.Globalization.CultureInfo):System.String:this (Tier1)

@@ -26,35 +26,35 @@
 ;  V14 tmp12        [V14,T13] (  4,  3   )     ref  ->  x22        
 ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V16 tmp14        [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V17 tmp15        [V17,T25] (  5,  0   )     ref  ->  x22        
+;  V17 tmp15        [V17,T24] (  6,  0   )     ref  ->  x22        
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V19 tmp17        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V20 tmp18        [V20,T34] (  2,  0   )     ref  ->  x22         class-hnd exact single-def "dup spill" <System.String>
-;  V21 tmp19        [V21,T29] (  4,  0   )     ref  ->  x22        
+;  V20 tmp18        [V20,T33] (  2,  0   )     ref  ->  x22         class-hnd exact single-def "dup spill" <System.String>
+;  V21 tmp19        [V21,T28] (  5,  0   )     ref  ->  x22        
 ;  V22 tmp20        [V22,T10] (  2,  4   )     ref  ->  x23         class-hnd exact single-def "dup spill" <System.String>
 ;  V23 tmp21        [V23,T14] (  4,  3   )     ref  ->  x23        
 ;* V24 tmp22        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V25 tmp23        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V26 tmp24        [V26,T26] (  5,  0   )     ref  ->  x23        
+;  V26 tmp24        [V26,T25] (  6,  0   )     ref  ->  x23        
 ;* V27 tmp25        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V28 tmp26        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V29 tmp27        [V29,T35] (  2,  0   )     ref  ->  x23         class-hnd exact single-def "dup spill" <System.String>
-;  V30 tmp28        [V30,T30] (  4,  0   )     ref  ->  x23        
+;  V29 tmp27        [V29,T34] (  2,  0   )     ref  ->  x23         class-hnd exact single-def "dup spill" <System.String>
+;  V30 tmp28        [V30,T29] (  5,  0   )     ref  ->  x23        
 ;  V31 tmp29        [V31,T15] (  2,  2   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V32 tmp30        [V32,T11] (  2,  4   )   byref  ->   x0         single-def "impAppendStmt"
 ;  V33 tmp31        [V33,T17] (  2,  2   )     ref  ->  x24         class-hnd exact single-def "dup spill" <System.String>
 ;  V34 tmp32        [V34,T20] (  4,  1.50)     ref  ->  x24        
 ;* V35 tmp33        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V36 tmp34        [V36    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V37 tmp35        [V37,T27] (  5,  0   )     ref  ->  x24        
+;  V37 tmp35        [V37,T26] (  6,  0   )     ref  ->  x24        
 ;* V38 tmp36        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V39 tmp37        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V40 tmp38        [V40,T36] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "dup spill" <System.String>
-;  V41 tmp39        [V41,T31] (  4,  0   )     ref  ->  x24        
+;  V40 tmp38        [V40,T35] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "dup spill" <System.String>
+;  V41 tmp39        [V41,T30] (  5,  0   )     ref  ->  x24        
 ;* V42 tmp40        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V43 tmp41        [V43,T00] (  5, 13   )     int  ->  x25         "Inline stloc first use temp"
 ;  V44 tmp42        [V44,T05] (  6,  5.50)  ushort  ->  x27         "Inline stloc first use temp"
-;  V45 tmp43        [V45,T33] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V45 tmp43        [V45,T32] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V46 tmp44        [V46,T23] (  3,  1   )     int  ->  x28        
 ;* V47 tmp45        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V48 tmp46        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -67,11 +67,11 @@
 ;  V55 tmp53        [V55,T21] (  4,  1.50)     ref  ->   x2        
 ;* V56 tmp54        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V57 tmp55        [V57    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V58 tmp56        [V58,T28] (  5,  0   )     ref  ->   x2        
+;  V58 tmp56        [V58,T27] (  6,  0   )     ref  ->   x2        
 ;* V59 tmp57        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V60 tmp58        [V60    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V61 tmp59        [V61,T37] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "dup spill" <System.String>
-;  V62 tmp60        [V62,T32] (  4,  0   )     ref  ->   x2        
+;  V61 tmp59        [V61,T36] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "dup spill" <System.String>
+;  V62 tmp60        [V62,T31] (  5,  0   )     ref  ->   x2        
 ;* V63 tmp61        [V63    ] (  0,  0   )   byref  ->  zero-ref    "field V47._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp62        [V64    ] (  0,  0   )     int  ->  zero-ref    "field V47._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp63        [V65    ] (  0,  0   )   byref  ->  zero-ref    "field V48._reference (fldOffset=0x0)" P-INDEP
@@ -84,12 +84,11 @@
 ;* V72 tmp70        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x8)" P-INDEP
 ;* V73 tmp71        [V73    ] (  0,  0   )   byref  ->  zero-ref    "field V53._reference (fldOffset=0x0)" P-INDEP
 ;* V74 tmp72        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
-;  V75 tmp73        [V75,T38] (  2,  0   )     ref  ->   x0         "argument with side effect"
-;  V76 tmp74        [V76,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V75 tmp73        [V75,T37] (  2,  0   )     ref  ->   x0         "argument with side effect"
+;  V76 tmp74        [V76,T38] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V77 cse0         [V77,T07] (  3,  5   )     int  ->  x26         "CSE - aggressive"
-;  V78 cse1         [V78,T24] ( 16,  0   )     ref  ->  registers   multi-def "CSE - moderate"
-;  V79 cse2         [V79,T12] (  4,  3.79)     int  ->  x24         "CSE - moderate"
-;  V80 cse3         [V80,T08] (  5,  4   )    long  ->  x21         "CSE - aggressive"
+;  V78 cse1         [V78,T12] (  4,  3.79)     int  ->  x24         "CSE - moderate"
+;  V79 cse2         [V79,T08] (  5,  4   )    long  ->  x21         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -112,33 +111,25 @@ G_M51875_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             movk    x21, #0xD1FFAB1E LSL #16
             movk    x21, #0xD1FFAB1E LSL #32
             cmp     x0, x21
-            bne     G_M51875_IG35
+            bne     G_M51875_IG29
             ldr     x22, [x19, #0x48]
             ; gcrRegs +[x22]
-            cbnz    x22, G_M51875_IG06
+            cbnz    x22, G_M51875_IG04
                        ;; size=32 bbWeight=1 PerfScore 10.00
-G_M51875_IG03:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG03:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x22]
             ldr     x14, [x19, #0x30]
             ; gcrRegs +[x14]
             ldr     x22, [x14, #0x18]
             ; gcrRegs +[x22]
-            cbnz    x22, G_M51875_IG04
-            movz    x22, #0xD1FFAB1E
-            ; gcrRegs -[x22]
-            movk    x22, #0xD1FFAB1E LSL #16
-            movk    x22, #0xD1FFAB1E LSL #32
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M51875_IG04:        ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x14] +[x22]
-            cbnz    x22, G_M51875_IG05
-            movz    x22, #0xD1FFAB1E
-            ; gcrRegs -[x22]
-            movk    x22, #0xD1FFAB1E LSL #16
-            movk    x22, #0xD1FFAB1E LSL #32
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M51875_IG05:        ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x22]
+            movz    x14, #0xD1FFAB1E
+            ; gcrRegs -[x14]
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #0xD1FFAB1E LSL #32
+            cmp     x22, #0
+            csel    x22, x22, x14, ne
+            cmp     x22, #0
+            csel    x22, x22, x14, ne
             add     x14, x19, #72
             ; byrRegs +[x14]
             mov     x15, x22
@@ -146,8 +137,8 @@ G_M51875_IG05:        ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG06:        ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M51875_IG04:        ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for <unknown method>
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -157,32 +148,25 @@ G_M51875_IG06:        ; bbWeight=1, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
             ; gcr arg pop 0
             ldr     x1, [x0]
             cmp     x1, x21
-            bne     G_M51875_IG36
+            bne     G_M51875_IG30
             ldr     x23, [x0, #0x48]
             ; gcrRegs +[x23]
-            cbnz    x23, G_M51875_IG10
+            cbnz    x23, G_M51875_IG06
                        ;; size=40 bbWeight=1 PerfScore 14.00
-G_M51875_IG07:        ; bbWeight=0, gcrefRegs=580001 {x0 x19 x20 x22}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG05:        ; bbWeight=0, gcrefRegs=580001 {x0 x19 x20 x22}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x23]
             ldr     x14, [x0, #0x30]
             ; gcrRegs +[x14]
             ldr     x23, [x14, #0x18]
             ; gcrRegs +[x23]
-            cbnz    x23, G_M51875_IG08
             movz    x14, #0xD1FFAB1E
             ; gcrRegs -[x14]
             movk    x14, #0xD1FFAB1E LSL #16
             movk    x14, #0xD1FFAB1E LSL #32
-            mov     x23, x14
-                       ;; size=28 bbWeight=0 PerfScore 0.00
-G_M51875_IG08:        ; bbWeight=0, gcrefRegs=D80001 {x0 x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
-            cbnz    x23, G_M51875_IG09
-            movz    x14, #0xD1FFAB1E
-            movk    x14, #0xD1FFAB1E LSL #16
-            movk    x14, #0xD1FFAB1E LSL #32
-            mov     x23, x14
-                       ;; size=20 bbWeight=0 PerfScore 0.00
-G_M51875_IG09:        ; bbWeight=0, gcrefRegs=D80001 {x0 x19 x20 x22 x23}, byrefRegs=0000 {}, byref
+            cmp     x23, #0
+            csel    x23, x23, x14, ne
+            cmp     x23, #0
+            csel    x23, x23, x14, ne
             add     x14, x0, #72
             ; byrRegs +[x14]
             mov     x15, x23
@@ -190,20 +174,20 @@ G_M51875_IG09:        ; bbWeight=0, gcrefRegs=D80001 {x0 x19 x20 x22 x23}, byref
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG10:        ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+                       ;; size=48 bbWeight=0 PerfScore 0.00
+G_M51875_IG06:        ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
             cmp     x22, x23
-            beq     G_M51875_IG13
+            beq     G_M51875_IG09
                        ;; size=8 bbWeight=1 PerfScore 1.50
-G_M51875_IG11:        ; bbWeight=0.89, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
-            cbz     x22, G_M51875_IG25
-            cbz     x23, G_M51875_IG25
+G_M51875_IG07:        ; bbWeight=0.89, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+            cbz     x22, G_M51875_IG21
+            cbz     x23, G_M51875_IG21
             ldr     w24, [x22, #0x08]
             ldr     w0, [x23, #0x08]
             cmp     w24, w0
-            bne     G_M51875_IG25
+            bne     G_M51875_IG21
                        ;; size=24 bbWeight=0.89 PerfScore 8.48
-G_M51875_IG12:        ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG08:        ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefRegs=0000 {}, byref, isz
             mov     w0, #1
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -241,9 +225,9 @@ G_M51875_IG12:        ; bbWeight=1, gcrefRegs=D80000 {x19 x20 x22 x23}, byrefReg
             ; gcrRegs -[x22-x23]
             ; byrRegs -[x0-x1]
             ; gcr arg pop 0
-            cbz     w0, G_M51875_IG25
+            cbz     w0, G_M51875_IG21
                        ;; size=120 bbWeight=1 PerfScore 30.50
-G_M51875_IG13:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
+G_M51875_IG09:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
@@ -258,7 +242,7 @@ G_M51875_IG13:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ; gcrRegs -[x20]
             ; gcr arg pop 0
                        ;; size=36 bbWeight=0.50 PerfScore 5.00
-G_M51875_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M51875_IG10:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x27, x28, [sp, #0x50]
             ldp     x25, x26, [sp, #0x40]
             ldp     x23, x24, [sp, #0x30]
@@ -267,7 +251,7 @@ G_M51875_IG14:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=28 bbWeight=0.50 PerfScore 3.50
-G_M51875_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, gcvars, byref
+G_M51875_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0] +[x19-x20 x24]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -275,32 +259,32 @@ G_M51875_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=118
             ldrb    w0, [x0, w27, UXTW #2]
             and     w28, w0, #31
                        ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M51875_IG16:        ; bbWeight=0.50, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG12:        ; bbWeight=0.50, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, byref, isz
             mov     w0, #1
             lsl     w0, w0, w28
             mov     w2, #0xD1FFAB1E
             tst     w0, w2
-            bne     G_M51875_IG18
+            bne     G_M51875_IG14
                        ;; size=20 bbWeight=0.50 PerfScore 1.50
-G_M51875_IG17:        ; bbWeight=2, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG13:        ; bbWeight=2, gcrefRegs=1180000 {x19 x20 x24}, byrefRegs=0000 {}, byref, isz
             mov     w0, #95
             cmp     w27, #45
...

-4 (-1.45%) : 91179.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)

@@ -40,7 +40,6 @@
 ;* V28 tmp26        [V28    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V14.array (fldOffset=0x0)" P-DEP
 ;* V29 tmp27        [V29    ] (  0,  0   )     ref  ->  zero-ref    "field V15.array (fldOffset=0x0)" P-INDEP
 ;* V30 tmp28        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V23.array (fldOffset=0x0)" P-INDEP
-;  V31 cse0         [V31,T10] (  2,  0   )    long  ->   x0         "CSE - conservative"
 ;
 ; Lcl frame size = 0
 
@@ -108,7 +107,6 @@ G_M22152_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
-            add     x0, x0, #0xD1FFAB1E
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             mov     x20, x0
@@ -136,7 +134,7 @@ G_M22152_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             b       G_M22152_IG03
-                       ;; size=100 bbWeight=0 PerfScore 0.00
+                       ;; size=96 bbWeight=0 PerfScore 0.00
 G_M22152_IG08:        ; bbWeight=0, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21] +[x1]
             ldr     x0, [x20, #0x08]
@@ -160,7 +158,7 @@ G_M22152_IG09:        ; bbWeight=0, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}
             b       G_M22152_IG05
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 276, prolog size 16, PerfScore 31.00, instruction count 69, allocated bytes for code 276 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
+Total bytes of code 272, prolog size 16, PerfScore 31.00, instruction count 68, allocated bytes for code 272 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -171,7 +169,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 69 (0x00045) Actual length = 276 (0x000114)
+  Function Length   : 68 (0x00044) Actual length = 272 (0x000110)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-0.97%) : 370512.dasm - System.Buffers.SharedArrayPool`1[System.Buffers.AhoCorasickNode]:Return(System.Buffers.AhoCorasickNode[],ubyte):this (Instrumented Tier1)

@@ -11,7 +11,7 @@
 ;  V00 this         [V00,T09] (  8,  5   )     ref  ->  x20         this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.Buffers.AhoCorasickNode]>
 ;  V01 arg1         [V01,T06] ( 11,  7.50)     ref  ->  x19         class-hnd single-def <System.Buffers.AhoCorasickNode[]>
 ;  V02 arg2         [V02,T12] (  3,  2.50)   ubyte  ->  x21         single-def
-;  V03 loc0         [V03,T10] (  8,  5   )     int  ->  x23        
+;  V03 loc0         [V03,T11] (  8,  5   )     int  ->  x23        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V05 loc2         [V05,T22] (  4,  2.50)   ubyte  ->  x25        
 ;  V06 loc3         [V06,T25] (  3,  2   )   ubyte  ->  x26        
@@ -29,12 +29,12 @@
 ;* V18 tmp7         [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V19 tmp8         [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp9         [V20    ] (  0,  0   )     int  ->  zero-ref   
-;  V21 tmp10        [V21,T42] (  2,  1   )     int  ->  x27        
+;  V21 tmp10        [V21,T42] (  2,  1   )     int  ->  x28        
 ;* V22 tmp11        [V22    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp13        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp14        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp15        [V26,T35] (  3,  1.50)     int  ->  x28        
+;  V26 tmp15        [V26,T35] (  3,  1.50)     int  ->  x23        
 ;* V27 tmp16        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V28 tmp17        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp18        [V29    ] (  0,  0   )     int  ->  zero-ref   
@@ -58,19 +58,19 @@
 ;* V47 tmp36        [V47    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V48 tmp37        [V48,T37] (  3,  1.50)     int  ->  x27         "Inline stloc first use temp"
 ;  V49 tmp38        [V49,T38] (  3,  1.50)   ubyte  ->  x26         "Inline return value spill temp"
-;  V50 tmp39        [V50,T11] (  3,  4.50)     ref  ->  x24         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V50 tmp39        [V50,T02] (  6, 16.50)     ref  ->  x24         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;  V51 tmp40        [V51,T01] (  7, 22   )     int  ->  x26         "Inline stloc first use temp"
 ;  V52 tmp41        [V52,T05] (  4, 12   )     int  ->  x27         "Inline stloc first use temp"
-;  V53 tmp42        [V53,T02] (  2, 16   )     int  ->  x26         "dup spill"
+;  V53 tmp42        [V53,T03] (  2, 16   )     int  ->  x26         "dup spill"
 ;* V54 tmp43        [V54    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V55 tmp44        [V55,T48] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V56 tmp45        [V56,T17] (  4,  3   )     int  ->  x26         "dup spill"
 ;* V57 tmp46        [V57    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V58 tmp47        [V58    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V59 tmp48        [V59,T08] (  3, 10   )   ubyte  ->  [fp+0x1C]  "Inline stloc first use temp"
-;  V60 tmp49        [V60,T00] (  8, 56   )     ref  ->  [fp+0x10]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V60 tmp49        [V60,T00] (  8, 56   )     ref  ->  x28         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V61 tmp50        [V61,T07] (  3, 10   )     ref  ->  x14         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V62 tmp51        [V62,T03] (  5, 14   )     int  ->   x0         "Inline stloc first use temp"
+;  V62 tmp51        [V62,T04] (  5, 14   )     int  ->   x0         "Inline stloc first use temp"
 ;  V63 tmp52        [V63,T33] (  2,  2   )     int  ->   x4         "Inlining Arg"
 ;* V64 tmp53        [V64,T45] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
 ;* V65 tmp54        [V65,T46] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP
@@ -83,8 +83,8 @@
 ;* V72 cse1         [V72,T34] (  0,  0   )     ref  ->  zero-ref    "CSE - moderate"
 ;  V73 cse2         [V73,T39] (  3,  1.50)    long  ->   x0         "CSE - moderate"
 ;  V74 cse3         [V74,T40] (  3,  1.50)    long  ->  x21         "CSE - moderate"
-;  V75 cse4         [V75,T04] (  5, 12   )     int  ->  x28         "CSE - aggressive"
-;  V76 cse5         [V76,T13] (  6,  4   )     int  ->  x22         "CSE - moderate"
+;  V75 cse4         [V75,T13] (  6,  4   )     int  ->  x22         "CSE - moderate"
+;  V76 cse5         [V76,T10] ( 14,  5.50)    long  ->  x27         multi-def "CSE - aggressive"
 ;  V77 rat0         [V77,T26] (  3,  2   )    long  ->   x0         "TLS field access"
 ;  V78 rat1         [V78,T20] (  3,  3   )    long  ->   x0         "TLS access"
 ;  V79 rat2         [V79,T21] (  3,  3   )    long  ->   x0         "ThreadStaticBlockBase access"
@@ -270,41 +270,38 @@ G_M31247_IG10:        ; bbWeight=0, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRe
 G_M31247_IG11:        ; bbWeight=0, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             and     w26, w0, #1
             mov     w27, wzr
-            ldr     w28, [x24, #0x08]
-            cmp     w28, #0
+            ldr     w0, [x24, #0x08]
+            cmp     w0, #0
             ble     G_M31247_IG18
                        ;; size=20 bbWeight=0 PerfScore 0.00
 G_M31247_IG12:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
-            cmp     w26, w28
+            ldr     w0, [x24, #0x08]
+            cmp     w26, w0
             bhs     G_M31247_IG31
             add     x0, x24, #16
             ; byrRegs +[x0]
-            ldr     x1, [x0, w26, UXTW #3]
-            ; gcrRegs +[x1]
-            str     x1, [fp, #0x10]    // [V60 tmp49]
-            ; GC ptr vars +{V60}
-            ldrsb   wzr, [x1]
+            ldr     x28, [x0, w26, UXTW #3]
+            ; gcrRegs +[x28]
+            ldrsb   wzr, [x28]
             str     wzr, [fp, #0x1C]   // [V59 tmp48]
-            mov     x0, x1
+            mov     x0, x28
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0-x1]
+            ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x1, [fp, #0x10]    // [V60 tmp49]
-            ; gcrRegs +[x1]
-            ldr     x14, [x1, #0x08]
+            ldr     x14, [x28, #0x08]
             ; gcrRegs +[x14]
-            ldr     w0, [x1, #0x14]
+            ldr     w0, [x28, #0x14]
             ldr     w15, [x14, #0x08]
             cmp     w15, w0
             bls     G_M31247_IG15
-                       ;; size=60 bbWeight=4 PerfScore 96.00
-G_M31247_IG13:        ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
+                       ;; size=56 bbWeight=4 PerfScore 96.00
+G_M31247_IG13:        ; bbWeight=2, gcrefRegs=11384000 {x14 x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref, isz
             cbnz    w0, G_M31247_IG14
-            str     wzr, [x1, #0x18]
+            str     wzr, [x28, #0x18]
                        ;; size=8 bbWeight=2 PerfScore 4.00
-G_M31247_IG14:        ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M31247_IG14:        ; bbWeight=2, gcrefRegs=11384000 {x14 x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref
             add     x14, x14, #16
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
@@ -315,31 +312,32 @@ G_M31247_IG14:        ; bbWeight=2, gcrefRegs=1384002 {x1 x14 x19 x20 x21 x24},
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
             add     w0, w0, #1
-            str     w0, [x1, #0x14]
-            mov     w2, #1
-            str     w2, [fp, #0x1C]    // [V59 tmp48]
+            str     w0, [x28, #0x14]
+            mov     w1, #1
+            str     w1, [fp, #0x1C]    // [V59 tmp48]
                        ;; size=32 bbWeight=2 PerfScore 12.00
-G_M31247_IG15:        ; bbWeight=4, gcrefRegs=1380002 {x1 x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
-            mov     x0, x1
+G_M31247_IG15:        ; bbWeight=4, gcrefRegs=11380000 {x19 x20 x21 x24 x28}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x28
             ; gcrRegs +[x0]
-            ; GC ptr vars -{V60}
             bl      <unknown method>
-            ; gcrRegs -[x0-x1]
+            ; gcrRegs -[x0 x28]
             ; gcr arg pop 0
-            ldr     w2, [fp, #0x1C]    // [V59 tmp48]
-            cbnz    w2, G_M31247_IG19
+            ldr     w28, [fp, #0x1C]   // [V59 tmp48]
+            cbnz    w28, G_M31247_IG19
             add     w26, w26, #1
-            cmp     w28, w26
+            ldr     w0, [x24, #0x08]
+            cmp     w0, w26
             bne     G_M31247_IG17
-                       ;; size=28 bbWeight=4 PerfScore 26.00
+                       ;; size=32 bbWeight=4 PerfScore 38.00
 G_M31247_IG16:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
             mov     w26, wzr
                        ;; size=4 bbWeight=2 PerfScore 1.00
 G_M31247_IG17:        ; bbWeight=4, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             add     w27, w27, #1
-            cmp     w28, w27
+            ldr     w0, [x24, #0x08]
+            cmp     w0, w27
             bgt     G_M31247_IG12
-                       ;; size=12 bbWeight=4 PerfScore 8.00
+                       ;; size=16 bbWeight=4 PerfScore 20.00
 G_M31247_IG18:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21 x24]
             mov     w26, wzr
@@ -400,9 +398,10 @@ G_M31247_IG21:        ; bbWeight=0.50, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
             bne     G_M31247_IG22
             mov     x0, x19
             ; gcrRegs +[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #0xD1FFAB1E LSL #32
+            mov     x1, x27
             bl      CORINFO_HELP_CLASSPROFILE32
             ; gcrRegs -[x0]
             ; gcr arg pop 0
@@ -418,76 +417,70 @@ G_M31247_IG21:        ; bbWeight=0.50, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
             bl      <unknown method>
             ; gcrRegs -[x0 x20]
             ; gcr arg pop 0
-            sxtw    w27, w0
+            sxtw    w28, w0
             cbnz    w25, G_M31247_IG25
-            movn    w28, #0
+            movn    w23, #0
             b       G_M31247_IG26
-                       ;; size=172 bbWeight=0.50 PerfScore 21.00
+                       ;; size=176 bbWeight=0.50 PerfScore 21.25
 G_M31247_IG22:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x24]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #0xD1FFAB1E LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M31247_IG29
-                       ;; size=20 bbWeight=0.25 PerfScore 0.88
+                       ;; size=24 bbWeight=0.25 PerfScore 1.00
 G_M31247_IG23:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #0xD1FFAB1E LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M31247_IG29
-                       ;; size=20 bbWeight=0.25 PerfScore 0.88
+                       ;; size=24 bbWeight=0.25 PerfScore 1.00
 G_M31247_IG24:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19-x20]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            movz    x27, #0xD1FFAB1E
+            movk    x27, #0xD1FFAB1E LSL #16
+            movk    x27, #0xD1FFAB1E LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
             b       G_M31247_IG20
-                       ;; size=20 bbWeight=0.25 PerfScore 0.88
+                       ;; size=24 bbWeight=0.25 PerfScore 1.00
 G_M31247_IG25:        ; bbWeight=0.50, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19-x20] +[x24]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x27, #0xD1FFAB1E
             bl      CORINFO_HELP_COUNTPROFILE32
             ; gcr arg pop 0
-            sxtw    w28, w23
             b       G_M31247_IG27
-                       ;; size=24 bbWeight=0.50 PerfScore 2.00
+                       ;; size=12 bbWeight=0.50 PerfScore 1.25
 G_M31247_IG26:        ; bbWeight=0.50, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
             mov     w26, #1
             b       G_M31247_IG28
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M31247_IG27:        ; bbWeight=0.50, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
+            add     x0, x27, #0xD1FFAB1E
...

+16 (+5.33%) : 502265.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)

@@ -11,37 +11,36 @@
 ;
 ;  V00 this         [V00,T04] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Array>
-;  V02 loc1         [V02,T16] (  3,  2.05)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
-;  V03 loc2         [V03,T13] (  7,  2.34)     int  ->  x20        
-;  V04 loc3         [V04,T08] (  4,  3.21)     int  ->  x21        
+;  V02 loc1         [V02,T05] (  7,  4.24)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V03 loc2         [V03,T14] (  7,  2.34)     int  ->  x20        
+;  V04 loc3         [V04,T09] (  4,  3.21)     int  ->  x21        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
-;  V07 tmp2         [V07,T17] (  2,  0.28)     int  ->  x20         "dup spill"
+;  V07 tmp2         [V07,T16] (  2,  0.28)     int  ->  x20         "dup spill"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T18] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V09 tmp4         [V09,T17] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V10 tmp5         [V10,T01] (  4,  6   )     int  ->  x20         "dup spill"
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V13 tmp8         [V13,T06] (  4,  4.08)     ref  ->  x24         class-hnd "Inline stloc first use temp" <System.Array>
-;  V14 tmp9         [V14,T00] (  7, 14.62)     ref  ->  x23         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V15 tmp10        [V15,T09] (  3,  3.10)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V16 tmp11        [V16,T05] (  4,  4.11)     int  ->   x1         "Inline stloc first use temp"
-;  V17 cse0         [V17,T12] (  3,  3   )    long  ->   x0         "CSE - aggressive"
-;  V18 cse1         [V18,T11] (  3,  3.01)    long  ->   x2         "CSE - aggressive"
-;  V19 cse2         [V19,T14] (  5,  2.19)     int  ->  x22         "CSE - aggressive"
-;  V20 cse3         [V20,T15] (  2,  2.10)     int  ->   x2         "CSE - aggressive"
-;  V21 cse4         [V21,T10] (  3,  3.01)   byref  ->   x0         "CSE - aggressive"
-;  V22 rat0         [V22,T07] (  3,  4   )    long  ->   x0         "TLS field access"
-;  V23 rat1         [V23,T02] (  3,  6   )    long  ->   x0         "TLS access"
-;  V24 rat2         [V24,T03] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
+;  V13 tmp8         [V13,T07] (  4,  4.08)     ref  ->  x23         class-hnd "Inline stloc first use temp" <System.Array>
+;  V14 tmp9         [V14,T00] (  7, 14.62)     ref  ->  x22         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V15 tmp10        [V15,T10] (  3,  3.10)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp11        [V16,T06] (  4,  4.11)     int  ->   x1         "Inline stloc first use temp"
+;  V17 cse0         [V17,T13] (  3,  3   )    long  ->   x0         "CSE - aggressive"
+;  V18 cse1         [V18,T12] (  3,  3.01)    long  ->   x2         "CSE - aggressive"
+;  V19 cse2         [V19,T15] (  2,  2.10)     int  ->   x2         "CSE - aggressive"
+;  V20 cse3         [V20,T11] (  3,  3.01)   byref  ->   x0         "CSE - aggressive"
+;  V21 rat0         [V21,T08] (  3,  4   )    long  ->   x0         "TLS field access"
+;  V22 rat1         [V22,T02] (  3,  6   )    long  ->   x0         "TLS access"
+;  V23 rat2         [V23,T03] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M10734_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            str     x23, [sp, #0x38]
             mov     fp, sp
                        ;; size=20 bbWeight=1 PerfScore 4.50
 G_M10734_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -79,93 +78,97 @@ G_M10734_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M10734_IG06:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             and     w20, w0, #1
             mov     w21, wzr
-            ldr     w22, [x19, #0x08]
-            cmp     w22, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             ble     G_M10734_IG13
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+            ldr     wzr, [x19, #0x08]
+                       ;; size=24 bbWeight=0 PerfScore 0.00
 G_M10734_IG07:        ; bbWeight=1.05, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            cmp     w20, w22
+            ldr     w0, [x19, #0x08]
+            cmp     w20, w0
             bhs     G_M10734_IG17
             add     x0, x19, #16
             ; byrRegs +[x0]
-            ldr     x23, [x0, w20, UXTW #3]
+            ldr     x22, [x0, w20, UXTW #3]
+            ; gcrRegs +[x22]
+            ldrsb   wzr, [x22]
+            mov     x23, xzr
             ; gcrRegs +[x23]
-            ldrsb   wzr, [x23]
-            mov     x24, xzr
-            ; gcrRegs +[x24]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
             bl      <unknown method>
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [x23, #0x08]
+            ldr     x0, [x22, #0x08]
             ; gcrRegs +[x0]
-            ldr     w1, [x23, #0x14]
+            ldr     w1, [x22, #0x14]
             sub     w1, w1, #1
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
             bls     G_M10734_IG09
-                       ;; size=56 bbWeight=1.05 PerfScore 22.07
-G_M10734_IG08:        ; bbWeight=1.00, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x24]
+                       ;; size=60 bbWeight=1.05 PerfScore 25.22
+G_M10734_IG08:        ; bbWeight=1.00, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x23]
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ubfiz   x2, x1, #3, #32
-            ldr     x24, [x0, x2]
-            ; gcrRegs +[x24]
+            ldr     x23, [x0, x2]
+            ; gcrRegs +[x23]
             str     xzr, [x0, x2]
-            str     w1, [x23, #0x14]
+            str     w1, [x22, #0x14]
                        ;; size=20 bbWeight=1.00 PerfScore 6.51
-G_M10734_IG09:        ; bbWeight=1.05, gcrefRegs=1880000 {x19 x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M10734_IG09:        ; bbWeight=1.05, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0 x23]
+            ; gcrRegs -[x0 x22]
             ; gcr arg pop 0
-            cbnz    x24, G_M10734_IG15
+            cbnz    x23, G_M10734_IG15
                        ;; size=12 bbWeight=1.05 PerfScore 2.63
 G_M10734_IG10:        ; bbWeight=0.07, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x24]
+            ; gcrRegs -[x23]
             add     w20, w20, #1
-            cmp     w22, w20
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w20
             bne     G_M10734_IG12
-                       ;; size=12 bbWeight=0.07 PerfScore 0.14
+                       ;; size=16 bbWeight=0.07 PerfScore 0.35
 G_M10734_IG11:        ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             mov     w20, wzr
                        ;; size=4 bbWeight=0.03 PerfScore 0.01
 G_M10734_IG12:        ; bbWeight=1.07, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     w21, w21, #1
-            cmp     w22, w21
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w21
             bgt     G_M10734_IG07
-                       ;; size=12 bbWeight=1.07 PerfScore 2.14
+                       ;; size=16 bbWeight=1.07 PerfScore 5.35
 G_M10734_IG13:        ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.02 PerfScore 0.01
 G_M10734_IG14:        ; bbWeight=0.02, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.02 PerfScore 0.10
-G_M10734_IG15:        ; bbWeight=0.98, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x24]
-            mov     x0, x24
+                       ;; size=20 bbWeight=0.02 PerfScore 0.11
+G_M10734_IG15:        ; bbWeight=0.98, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x23]
+            mov     x0, x23
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.98 PerfScore 0.49
 G_M10734_IG16:        ; bbWeight=0.98, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.98 PerfScore 4.90
+                       ;; size=20 bbWeight=0.98 PerfScore 5.89
 G_M10734_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x24]
+            ; gcrRegs -[x0 x23]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
@@ -177,7 +180,7 @@ G_M10734_IG18:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             b       G_M10734_IG03
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 300, prolog size 20, PerfScore 65.00, instruction count 75, allocated bytes for code 300 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 316, prolog size 20, PerfScore 72.58, instruction count 79, allocated bytes for code 316 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -188,7 +191,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 75 (0x0004b) Actual length = 300 (0x00012c)
+  Function Length   : 79 (0x0004f) Actual length = 316 (0x00013c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -199,10 +202,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D1 07       save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
     E6          save_next
-    E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
-    E4          end
 

+16 (+5.33%) : 569314.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)

@@ -11,37 +11,36 @@
 ;
 ;  V00 this         [V00,T04] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Array>
-;  V02 loc1         [V02,T14] (  3,  2.11)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
-;  V03 loc2         [V03,T09] (  7,  3   )     int  ->  x20        
-;  V04 loc3         [V04,T07] (  4,  3.67)     int  ->  x21        
+;  V02 loc1         [V02,T05] (  7,  4.67)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V03 loc2         [V03,T10] (  7,  3   )     int  ->  x20        
+;  V04 loc3         [V04,T08] (  4,  3.67)     int  ->  x21        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
-;  V07 tmp2         [V07,T17] (  2,  0.89)     int  ->  x20         "dup spill"
+;  V07 tmp2         [V07,T16] (  2,  0.89)     int  ->  x20         "dup spill"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T18] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V09 tmp4         [V09,T17] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V10 tmp5         [V10,T01] (  4,  6   )     int  ->  x20         "dup spill"
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V13 tmp8         [V13,T06] (  4,  3.67)     ref  ->  x24         class-hnd "Inline stloc first use temp" <System.Array>
-;  V14 tmp9         [V14,T00] (  7, 14.44)     ref  ->  x23         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V15 tmp10        [V15,T11] (  3,  2.78)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V16 tmp11        [V16,T08] (  4,  3.33)     int  ->   x1         "Inline stloc first use temp"
-;  V17 cse0         [V17,T10] (  3,  3   )    long  ->   x0         "CSE - aggressive"
-;  V18 cse1         [V18,T16] (  3,  1.67)    long  ->   x2         "CSE - moderate"
-;  V19 cse2         [V19,T12] (  5,  2.56)     int  ->  x22         "CSE - aggressive"
-;  V20 cse3         [V20,T13] (  2,  2.22)     int  ->   x2         "CSE - aggressive"
-;  V21 cse4         [V21,T15] (  3,  1.67)   byref  ->   x0         "CSE - moderate"
-;  V22 rat0         [V22,T05] (  3,  4   )    long  ->   x0         "TLS field access"
-;  V23 rat1         [V23,T02] (  3,  6   )    long  ->   x0         "TLS access"
-;  V24 rat2         [V24,T03] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
+;  V13 tmp8         [V13,T07] (  4,  3.67)     ref  ->  x23         class-hnd "Inline stloc first use temp" <System.Array>
+;  V14 tmp9         [V14,T00] (  7, 14.44)     ref  ->  x22         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V15 tmp10        [V15,T12] (  3,  2.78)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp11        [V16,T09] (  4,  3.33)     int  ->   x1         "Inline stloc first use temp"
+;  V17 cse0         [V17,T11] (  3,  3   )    long  ->   x0         "CSE - aggressive"
+;  V18 cse1         [V18,T15] (  3,  1.67)    long  ->   x2         "CSE - moderate"
+;  V19 cse2         [V19,T13] (  2,  2.22)     int  ->   x2         "CSE - aggressive"
+;  V20 cse3         [V20,T14] (  3,  1.67)   byref  ->   x0         "CSE - moderate"
+;  V21 rat0         [V21,T06] (  3,  4   )    long  ->   x0         "TLS field access"
+;  V22 rat1         [V22,T02] (  3,  6   )    long  ->   x0         "TLS access"
+;  V23 rat2         [V23,T03] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M10734_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            str     x23, [sp, #0x38]
             mov     fp, sp
                        ;; size=20 bbWeight=1 PerfScore 4.50
 G_M10734_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -79,93 +78,97 @@ G_M10734_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M10734_IG06:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             and     w20, w0, #1
             mov     w21, wzr
-            ldr     w22, [x19, #0x08]
-            cmp     w22, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             ble     G_M10734_IG13
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+            ldr     wzr, [x19, #0x08]
+                       ;; size=24 bbWeight=0 PerfScore 0.00
 G_M10734_IG07:        ; bbWeight=1.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            cmp     w20, w22
+            ldr     w0, [x19, #0x08]
+            cmp     w20, w0
             bhs     G_M10734_IG17
             add     x0, x19, #16
             ; byrRegs +[x0]
-            ldr     x23, [x0, w20, UXTW #3]
+            ldr     x22, [x0, w20, UXTW #3]
+            ; gcrRegs +[x22]
+            ldrsb   wzr, [x22]
+            mov     x23, xzr
             ; gcrRegs +[x23]
-            ldrsb   wzr, [x23]
-            mov     x24, xzr
-            ; gcrRegs +[x24]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
             bl      <unknown method>
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [x23, #0x08]
+            ldr     x0, [x22, #0x08]
             ; gcrRegs +[x0]
-            ldr     w1, [x23, #0x14]
+            ldr     w1, [x22, #0x14]
             sub     w1, w1, #1
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
             bls     G_M10734_IG09
-                       ;; size=56 bbWeight=1.11 PerfScore 23.33
-G_M10734_IG08:        ; bbWeight=0.56, gcrefRegs=880001 {x0 x19 x23}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x24]
+                       ;; size=60 bbWeight=1.11 PerfScore 26.67
+G_M10734_IG08:        ; bbWeight=0.56, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x23]
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ubfiz   x2, x1, #3, #32
-            ldr     x24, [x0, x2]
-            ; gcrRegs +[x24]
+            ldr     x23, [x0, x2]
+            ; gcrRegs +[x23]
             str     xzr, [x0, x2]
-            str     w1, [x23, #0x14]
+            str     w1, [x22, #0x14]
                        ;; size=20 bbWeight=0.56 PerfScore 3.61
-G_M10734_IG09:        ; bbWeight=1.11, gcrefRegs=1880000 {x19 x23 x24}, byrefRegs=0000 {}, byref, isz
+G_M10734_IG09:        ; bbWeight=1.11, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0 x23]
+            ; gcrRegs -[x0 x22]
             ; gcr arg pop 0
-            cbnz    x24, G_M10734_IG15
+            cbnz    x23, G_M10734_IG15
                        ;; size=12 bbWeight=1.11 PerfScore 2.78
 G_M10734_IG10:        ; bbWeight=0.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x24]
+            ; gcrRegs -[x23]
             add     w20, w20, #1
-            cmp     w22, w20
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w20
             bne     G_M10734_IG12
-                       ;; size=12 bbWeight=0.22 PerfScore 0.44
+                       ;; size=16 bbWeight=0.22 PerfScore 1.11
 G_M10734_IG11:        ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             mov     w20, wzr
                        ;; size=4 bbWeight=0.11 PerfScore 0.06
 G_M10734_IG12:        ; bbWeight=1.22, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     w21, w21, #1
-            cmp     w22, w21
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w21
             bgt     G_M10734_IG07
-                       ;; size=12 bbWeight=1.22 PerfScore 2.44
+                       ;; size=16 bbWeight=1.22 PerfScore 6.11
 G_M10734_IG13:        ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.11 PerfScore 0.06
 G_M10734_IG14:        ; bbWeight=0.11, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.11 PerfScore 0.56
-G_M10734_IG15:        ; bbWeight=0.89, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x24]
-            mov     x0, x24
+                       ;; size=20 bbWeight=0.11 PerfScore 0.67
+G_M10734_IG15:        ; bbWeight=0.89, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x23]
+            mov     x0, x23
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.89 PerfScore 0.44
 G_M10734_IG16:        ; bbWeight=0.89, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.89 PerfScore 4.44
+                       ;; size=20 bbWeight=0.89 PerfScore 5.33
 G_M10734_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x24]
+            ; gcrRegs -[x0 x23]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
@@ -177,7 +180,7 @@ G_M10734_IG18:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             b       G_M10734_IG03
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 300, prolog size 20, PerfScore 64.17, instruction count 75, allocated bytes for code 300 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 316, prolog size 20, PerfScore 72.83, instruction count 79, allocated bytes for code 316 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -188,7 +191,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 75 (0x0004b) Actual length = 300 (0x00012c)
+  Function Length   : 79 (0x0004f) Actual length = 316 (0x00013c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -199,10 +202,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D1 07       save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
     E6          save_next
-    E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
-    E4          end
 

+16 (+5.33%) : 551304.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)

@@ -11,38 +11,36 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Array>
-;  V02 loc1         [V02,T06] (  3,  1   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V02 loc1         [V02,T06] (  7,  1   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
 ;  V03 loc2         [V03,T08] (  7,  0   )     int  ->  x20        
-;  V04 loc3         [V04,T11] (  4,  0   )     int  ->  x21        
+;  V04 loc3         [V04,T10] (  4,  0   )     int  ->  x21        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
-;  V07 tmp2         [V07,T18] (  2,  0   )     int  ->  x20         "dup spill"
+;  V07 tmp2         [V07,T16] (  2,  0   )     int  ->  x20         "dup spill"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T15] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V09 tmp4         [V09,T14] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V10 tmp5         [V10,T00] (  4,  6   )     int  ->  x20         "dup spill"
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V13 tmp8         [V13,T10] (  4,  0   )     ref  ->  x24         class-hnd "Inline stloc first use temp" <System.Array>
-;  V14 tmp9         [V14,T07] (  7,  0   )     ref  ->  x23         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V15 tmp10        [V15,T13] (  3,  0   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V16 tmp11        [V16,T12] (  4,  0   )     int  ->   x1         "Inline stloc first use temp"
+;  V13 tmp8         [V13,T09] (  4,  0   )     ref  ->  x23         class-hnd "Inline stloc first use temp" <System.Array>
+;  V14 tmp9         [V14,T07] (  7,  0   )     ref  ->  x22         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V15 tmp10        [V15,T12] (  3,  0   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp11        [V16,T11] (  4,  0   )     int  ->   x1         "Inline stloc first use temp"
 ;  V17 cse0         [V17,T05] (  3,  3   )    long  ->   x0         "CSE - aggressive"
-;  V18 cse1         [V18,T16] (  3,  0   )    long  ->   x2         "CSE - aggressive"
-;  V19 cse2         [V19,T19] (  2,  0   )     int  ->   x2         "CSE - aggressive"
-;  V20 cse3         [V20,T09] (  5,  0   )     int  ->  x22         "CSE - moderate"
-;  V21 cse4         [V21,T17] (  2,  0   )   byref  ->  x19         hoist "CSE - moderate"
-;  V22 cse5         [V22,T14] (  3,  0   )   byref  ->   x0         "CSE - aggressive"
-;  V23 rat0         [V23,T04] (  3,  4   )    long  ->   x0         "TLS field access"
-;  V24 rat1         [V24,T01] (  3,  6   )    long  ->   x0         "TLS access"
-;  V25 rat2         [V25,T02] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
+;  V18 cse1         [V18,T15] (  3,  0   )    long  ->   x2         "CSE - aggressive"
+;  V19 cse2         [V19,T17] (  2,  0   )     int  ->   x2         "CSE - aggressive"
+;  V20 cse3         [V20,T13] (  3,  0   )   byref  ->   x0         "CSE - aggressive"
+;  V21 rat0         [V21,T04] (  3,  4   )    long  ->   x0         "TLS field access"
+;  V22 rat1         [V22,T01] (  3,  6   )    long  ->   x0         "TLS access"
+;  V23 rat2         [V23,T02] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M10734_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            str     x23, [sp, #0x38]
             mov     fp, sp
                        ;; size=20 bbWeight=1 PerfScore 4.50
 G_M10734_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -80,29 +78,31 @@ G_M10734_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M10734_IG06:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             and     w20, w0, #1
             mov     w21, wzr
-            ldr     w22, [x19, #0x08]
-            cmp     w22, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             ble     G_M10734_IG10
-            add     x19, x19, #16
-            ; gcrRegs -[x19]
-            ; byrRegs +[x19]
+            ldr     wzr, [x19, #0x08]
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M10734_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            cmp     w20, w22
+G_M10734_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x19, #0x08]
+            cmp     w20, w0
             bhs     G_M10734_IG14
-            ldr     x23, [x19, w20, UXTW #3]
+            add     x0, x19, #16
+            ; byrRegs +[x0]
+            ldr     x22, [x0, w20, UXTW #3]
+            ; gcrRegs +[x22]
+            ldrsb   wzr, [x22]
+            mov     x23, xzr
             ; gcrRegs +[x23]
-            ldrsb   wzr, [x23]
-            mov     x24, xzr
-            ; gcrRegs +[x24]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
+            ; byrRegs -[x0]
             bl      <unknown method>
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [x23, #0x08]
+            ldr     x0, [x22, #0x08]
             ; gcrRegs +[x0]
-            ldr     w1, [x23, #0x14]
+            ldr     w1, [x22, #0x14]
             sub     w1, w1, #1
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
@@ -111,54 +111,56 @@ G_M10734_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, by
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ubfiz   x2, x1, #3, #32
-            ldr     x24, [x0, x2]
+            ldr     x23, [x0, x2]
             str     xzr, [x0, x2]
-            str     w1, [x23, #0x14]
-                       ;; size=72 bbWeight=0 PerfScore 0.00
-G_M10734_IG08:        ; bbWeight=0, gcrefRegs=1800000 {x23 x24}, byrefRegs=80000 {x19}, byref, isz
+            str     w1, [x22, #0x14]
+                       ;; size=80 bbWeight=0 PerfScore 0.00
+G_M10734_IG08:        ; bbWeight=0, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0 x23]
+            ; gcrRegs -[x0 x22]
             ; gcr arg pop 0
-            cbnz    x24, G_M10734_IG12
+            cbnz    x23, G_M10734_IG12
             add     w20, w20, #1
-            cmp     w22, w20
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w20
             bne     G_M10734_IG09
             mov     w20, wzr
-                       ;; size=28 bbWeight=0 PerfScore 0.00
-G_M10734_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            ; gcrRegs -[x24]
+                       ;; size=32 bbWeight=0 PerfScore 0.00
+G_M10734_IG09:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x23]
             add     w21, w21, #1
-            cmp     w22, w21
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w21
             bgt     G_M10734_IG07
-                       ;; size=12 bbWeight=0 PerfScore 0.00
+                       ;; size=16 bbWeight=0 PerfScore 0.00
 G_M10734_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x19]
+            ; gcrRegs -[x19]
             mov     x0, xzr
                        ;; size=4 bbWeight=0 PerfScore 0.00
 G_M10734_IG11:        ; bbWeight=0, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M10734_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x24]
-            mov     x0, x24
+G_M10734_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x23]
+            mov     x0, x23
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0 PerfScore 0.00
 G_M10734_IG13:        ; bbWeight=0, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=20 bbWeight=0 PerfScore 0.00
 G_M10734_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x24]
+            ; gcrRegs -[x0 x23]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
@@ -170,7 +172,7 @@ G_M10734_IG15:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             b       G_M10734_IG03
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 300, prolog size 20, PerfScore 26.00, instruction count 75, allocated bytes for code 300 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 316, prolog size 20, PerfScore 26.00, instruction count 79, allocated bytes for code 316 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -181,7 +183,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 75 (0x0004b) Actual length = 300 (0x00012c)
+  Function Length   : 79 (0x0004f) Actual length = 316 (0x00013c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -192,10 +194,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D1 07       save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
     E6          save_next
-    E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
-    E4          end
 

librariestestsnotieredcompilation.run.linux.arm64.Release.mch

-4 (-2.94%) : 143786.dasm - System.SpanTests.ReadOnlySpanTests+<>cDisplayClass21_0:b9():this (FullOpts)

@@ -35,24 +35,24 @@
 ;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V25 tmp24        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp25        [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V27 tmp26        [V27,T07] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V28 tmp27        [V28,T03] (  2,  2   )     int  ->   x2         "Inline stloc first use temp"
+;* V27 tmp26        [V27,T06] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V28 tmp27        [V28,T03] (  3,  3   )     int  ->   x1         "Inline stloc first use temp"
 ;* V29 tmp28        [V29    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp29        [V30    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp30        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp31        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp32        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V02._value (fldOffset=0x0)" P-INDEP
-;* V34 tmp33        [V34,T08] (  0,  0   )     int  ->  zero-ref    "field V04._value (fldOffset=0x0)" P-INDEP
+;* V34 tmp33        [V34,T07] (  0,  0   )     int  ->  zero-ref    "field V04._value (fldOffset=0x0)" P-INDEP
 ;* V35 tmp34        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V05._value (fldOffset=0x0)" P-INDEP
 ;* V36 tmp35        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V06.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V37 tmp36        [V37,T09] (  0,  0   )     int  ->  zero-ref    "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V37 tmp36        [V37,T08] (  0,  0   )     int  ->  zero-ref    "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V38 tmp37        [V38    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp38        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V40 tmp39        [V40    ] (  0,  0   )     int  ->  zero-ref    "field V08._value (fldOffset=0x0)" P-INDEP
 ;* V41 tmp40        [V41    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V42 tmp41        [V42    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V43 tmp42        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V10.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V44 tmp43        [V44,T10] (  0,  0   )     int  ->  zero-ref    "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V44 tmp43        [V44,T09] (  0,  0   )     int  ->  zero-ref    "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V45 tmp44        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V11.Item1 (fldOffset=0x0)" P-INDEP
 ;* V46 tmp45        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V11.Item2 (fldOffset=0x4)" P-INDEP
 ;* V47 tmp46        [V47    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
@@ -67,9 +67,8 @@
 ;* V56 tmp55        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V21._value (fldOffset=0x0)" P-INDEP
 ;* V57 tmp56        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V22._value (fldOffset=0x0)" P-INDEP
 ;* V58 tmp57        [V58    ] (  0,  0   )     int  ->  zero-ref    "field V26.Item1 (fldOffset=0x0)" P-INDEP
-;  V59 tmp58        [V59,T05] (  2,  2   )     int  ->   x1         "field V26.Item2 (fldOffset=0x4)" P-INDEP
-;  V60 cse0         [V60,T04] (  3,  3   )     int  ->   x1         "CSE - moderate"
-;  V61 cse1         [V61,T06] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
+;  V59 tmp58        [V59,T04] (  2,  2   )     int  ->   x1         "field V26.Item2 (fldOffset=0x4)" P-INDEP
+;  V60 cse0         [V60,T05] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -84,11 +83,10 @@ G_M60991_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     w0, [x0, #0x08]
             ; gcrRegs -[x0]
             sxtw    w1, w0
-            sxtw    w2, w1
-            cmp     w2, w0
+            cmp     w1, w0
             bhi     G_M60991_IG06
             tbz     w1, #31, G_M60991_IG04
-                       ;; size=32 bbWeight=1 PerfScore 10.50
+                       ;; size=28 bbWeight=1 PerfScore 10.00
 G_M60991_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -124,7 +122,7 @@ G_M60991_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 136, prolog size 8, PerfScore 17.75, instruction count 34, allocated bytes for code 136 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
+Total bytes of code 132, prolog size 8, PerfScore 17.25, instruction count 33, allocated bytes for code 132 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -135,7 +133,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-2.38%) : 302852.dasm - CoreXml.Test.XLinq.LoadSaveAsyncTests+<>c:b_00():this (FullOpts)

@@ -37,7 +37,6 @@
 ;* V26 tmp25        [V26    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V14._source (fldOffset=0x0)" P-INDEP
 ;* V27 tmp26        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V18._source (fldOffset=0x0)" P-INDEP
 ;* V28 tmp27        [V28    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V19.m_task (fldOffset=0x0)" P-INDEP
-;  V29 cse0         [V29,T03] (  2,  0   )    long  ->   x1         "CSE - conservative"
 ;
 ; Lcl frame size = 80
 
@@ -82,21 +81,20 @@ G_M33644_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            add     x1, x1, #0xD1FFAB1E
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
             ; gcrRegs +[x0]
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=36 bbWeight=0 PerfScore 0.00
 G_M33644_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[x0]
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 168, prolog size 28, PerfScore 29.50, instruction count 42, allocated bytes for code 168 (MethodHash=8e347c93) for method CoreXml.Test.XLinq.LoadSaveAsyncTests+<>c:<ArgumentValidation>b__0_0():this (FullOpts)
+Total bytes of code 164, prolog size 28, PerfScore 29.50, instruction count 41, allocated bytes for code 164 (MethodHash=8e347c93) for method CoreXml.Test.XLinq.LoadSaveAsyncTests+<>c:<ArgumentValidation>b__0_0():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -107,7 +105,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
+  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-1.04%) : 299650.dasm - System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<g_CreateSourceEnumerable|31>d:MoveNext():this (FullOpts)

@@ -9,7 +9,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 39, 33   )     ref  ->  [fp+0x10]  this class-hnd EH-live single-def <System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d>
-;  V01 loc0         [V01,T24] (  2,  2   )     int  ->   x1         single-def
+;  V01 loc0         [V01,T23] (  2,  2   )     int  ->   x1         single-def
 ;  V02 loc1         [V02    ] (  6,  6   )  struct ( 8) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
 ;  V03 loc2         [V03    ] (  6,  6   )     ref  ->  [fp+0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d>
 ;  V04 loc3         [V04    ] (  6,  6   )  struct ( 8) [fp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
@@ -17,7 +17,7 @@
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V08 tmp1         [V08    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V09 tmp2         [V09,T32] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V09 tmp2         [V09,T31] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V10 tmp3         [V10    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V11 tmp4         [V11    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V12 tmp5         [V12    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
@@ -27,15 +27,15 @@
 ;* V16 tmp9         [V16    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V17 tmp10        [V17    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V18 tmp11        [V18    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V19 tmp12        [V19,T33] (  2,  0   )     ref  ->  x19         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V19 tmp12        [V19,T32] (  2,  0   )     ref  ->  x19         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V21 tmp14        [V21    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V22 tmp15        [V22,T18] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+;  V22 tmp15        [V22,T17] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V23 tmp16        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;  V24 tmp17        [V24,T09] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V24 tmp17        [V24,T08] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V25 tmp18        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V26 tmp19        [V26,T03] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V27 tmp20        [V27,T28] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;  V26 tmp19        [V26,T02] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V27 tmp20        [V27,T27] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V30 tmp23        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -73,19 +73,19 @@
 ;* V62 tmp55        [V62    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
 ;* V63 tmp56        [V63    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V64 tmp57        [V64    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V65 tmp58        [V65,T10] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V65 tmp58        [V65,T09] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V66 tmp59        [V66    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V67 tmp60        [V67    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp61        [V68    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V69 tmp62        [V69    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;* V70 tmp63        [V70    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V71 tmp64        [V71    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V72 tmp65        [V72,T19] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+;  V72 tmp65        [V72,T18] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V73 tmp66        [V73    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;  V74 tmp67        [V74,T11] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V74 tmp67        [V74,T10] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V75 tmp68        [V75    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V76 tmp69        [V76,T04] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V77 tmp70        [V77,T29] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;  V76 tmp69        [V76,T03] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V77 tmp70        [V77,T28] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V78 tmp71        [V78    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V79 tmp72        [V79    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V80 tmp73        [V80    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -122,19 +122,19 @@
 ;* V111 tmp104      [V111    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
 ;* V112 tmp105      [V112    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp106      [V113    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V114 tmp107      [V114,T12] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V114 tmp107      [V114,T11] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V115 tmp108      [V115    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V116 tmp109      [V116    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V117 tmp110      [V117    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V118 tmp111      [V118    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;* V119 tmp112      [V119    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V120 tmp113      [V120    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V121 tmp114      [V121,T20] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+;  V121 tmp114      [V121,T19] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V122 tmp115      [V122    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;  V123 tmp116      [V123,T13] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V123 tmp116      [V123,T12] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V124 tmp117      [V124    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V125 tmp118      [V125,T05] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V126 tmp119      [V126,T30] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;  V125 tmp118      [V125,T04] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V126 tmp119      [V126,T29] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V127 tmp120      [V127    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V128 tmp121      [V128    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V129 tmp122      [V129    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -171,19 +171,19 @@
 ;* V160 tmp153      [V160    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
 ;* V161 tmp154      [V161    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V162 tmp155      [V162    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V163 tmp156      [V163,T14] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V163 tmp156      [V163,T13] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V164 tmp157      [V164    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V165 tmp158      [V165    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V166 tmp159      [V166    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V167 tmp160      [V167    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V168 tmp161      [V168,T06] (  3,  6   )   byref  ->   x0         single-def "Inlining Arg"
-;  V169 tmp162      [V169,T07] (  3,  6   )   byref  ->   x0         single-def "Inlining Arg"
+;  V168 tmp161      [V168,T05] (  3,  6   )   byref  ->   x0         single-def "Inlining Arg"
+;  V169 tmp162      [V169,T06] (  3,  6   )   byref  ->   x0         single-def "Inlining Arg"
 ;  V170 tmp163      [V170    ] (  6,  6   )     ref  ->  [fp+0x30]  do-not-enreg[X] addr-exposed "field V02.m_task (fldOffset=0x0)" P-DEP
 ;  V171 tmp164      [V171    ] (  6,  6   )     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
 ;  V172 tmp165      [V172    ] (  6,  4   )     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V05.m_task (fldOffset=0x0)" P-DEP
 ;* V173 tmp166      [V173    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V20._source (fldOffset=0x0)" P-INDEP
 ;* V174 tmp167      [V174    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V21._source (fldOffset=0x0)" P-INDEP
-;* V175 tmp168      [V175,T25] (  0,  0   )     ref  ->  zero-ref    single-def "field V23._source (fldOffset=0x0)" P-INDEP
+;* V175 tmp168      [V175,T24] (  0,  0   )     ref  ->  zero-ref    single-def "field V23._source (fldOffset=0x0)" P-INDEP
 ;* V176 tmp169      [V176    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V29._source (fldOffset=0x0)" P-DEP
 ;* V177 tmp170      [V177    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V36._node (fldOffset=0x0)" P-DEP
 ;* V178 tmp171      [V178    ] (  0,  0   )    long  ->  zero-ref    single-def "field V36._id (fldOffset=0x8)" P-DEP
@@ -191,10 +191,10 @@
 ;* V180 tmp173      [V180    ] (  0,  0   )    long  ->  zero-ref    "field V54._id (fldOffset=0x8)" P-DEP
 ;* V181 tmp174      [V181    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V55._node (fldOffset=0x0)" P-INDEP
 ;* V182 tmp175      [V182    ] (  0,  0   )    long  ->  zero-ref    single-def "field V55._id (fldOffset=0x8)" P-INDEP
-;  V183 tmp176      [V183,T21] (  2,  2   )     ref  ->  x20         single-def "field V62.m_task (fldOffset=0x0)" P-INDEP
+;  V183 tmp176      [V183,T20] (  2,  2   )     ref  ->  x20         single-def "field V62.m_task (fldOffset=0x0)" P-INDEP
 ;* V184 tmp177      [V184    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V70._source (fldOffset=0x0)" P-INDEP
 ;* V185 tmp178      [V185    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V71._source (fldOffset=0x0)" P-INDEP
-;* V186 tmp179      [V186,T26] (  0,  0   )     ref  ->  zero-ref    single-def "field V73._source (fldOffset=0x0)" P-INDEP
+;* V186 tmp179      [V186,T25] (  0,  0   )     ref  ->  zero-ref    single-def "field V73._source (fldOffset=0x0)" P-INDEP
 ;* V187 tmp180      [V187    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V79._source (fldOffset=0x0)" P-DEP
 ;* V188 tmp181      [V188    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V85._node (fldOffset=0x0)" P-DEP
 ;* V189 tmp182      [V189    ] (  0,  0   )    long  ->  zero-ref    single-def "field V85._id (fldOffset=0x8)" P-DEP
@@ -202,10 +202,10 @@
 ;* V191 tmp184      [V191    ] (  0,  0   )    long  ->  zero-ref    "field V103._id (fldOffset=0x8)" P-DEP
 ;* V192 tmp185      [V192    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V104._node (fldOffset=0x0)" P-INDEP
 ;* V193 tmp186      [V193    ] (  0,  0   )    long  ->  zero-ref    single-def "field V104._id (fldOffset=0x8)" P-INDEP
-;  V194 tmp187      [V194,T22] (  2,  2   )     ref  ->  x20         single-def "field V111.m_task (fldOffset=0x0)" P-INDEP
+;  V194 tmp187      [V194,T21] (  2,  2   )     ref  ->  x20         single-def "field V111.m_task (fldOffset=0x0)" P-INDEP
 ;* V195 tmp188      [V195    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V119._source (fldOffset=0x0)" P-INDEP
 ;* V196 tmp189      [V196    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V120._source (fldOffset=0x0)" P-INDEP
-;* V197 tmp190      [V197,T27] (  0,  0   )     ref  ->  zero-ref    single-def "field V122._source (fldOffset=0x0)" P-INDEP
+;* V197 tmp190      [V197,T26] (  0,  0   )     ref  ->  zero-ref    single-def "field V122._source (fldOffset=0x0)" P-INDEP
 ;* V198 tmp191      [V198    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V128._source (fldOffset=0x0)" P-DEP
 ;* V199 tmp192      [V199    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V134._node (fldOffset=0x0)" P-DEP
 ;* V200 tmp193      [V200    ] (  0,  0   )    long  ->  zero-ref    single-def "field V134._id (fldOffset=0x8)" P-DEP
@@ -213,14 +213,13 @@
 ;* V202 tmp195      [V202    ] (  0,  0   )    long  ->  zero-ref    "field V152._id (fldOffset=0x8)" P-DEP
 ;* V203 tmp196      [V203    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V153._node (fldOffset=0x0)" P-INDEP
 ;* V204 tmp197      [V204    ] (  0,  0   )    long  ->  zero-ref    single-def "field V153._id (fldOffset=0x8)" P-INDEP
-;  V205 tmp198      [V205,T23] (  2,  2   )     ref  ->  x20         single-def "field V160.m_task (fldOffset=0x0)" P-INDEP
-;  V206 tmp199      [V206,T15] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V207 tmp200      [V207,T16] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V208 tmp201      [V208,T17] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V209 PSPSym      [V209,T31] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
+;  V205 tmp198      [V205,T22] (  2,  2   )     ref  ->  x20         single-def "field V160.m_task (fldOffset=0x0)" P-INDEP
+;  V206 tmp199      [V206,T14] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
+;  V207 tmp200      [V207,T15] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
+;  V208 tmp201      [V208,T16] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
+;  V209 PSPSym      [V209,T30] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;  V210 cse0        [V210,T01] (  6,  6   )    long  ->  x19         multi-def "CSE - aggressive"
-;  V211 cse1        [V211,T02] (  6,  6   )    long  ->   x1         multi-def "CSE - moderate"
-;  V212 rat0        [V212,T08] (  3,  6   )     int  ->   x1         "ReplaceWithLclVar is creating a new local variable"
+;  V211 rat0        [V211,T07] (  3,  6   )     int  ->   x1         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -260,11 +259,10 @@ G_M44969_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             movk    x19, #0xD1FFAB1E LSL #32
             ldr     x19, [x19]
             ; gcrRegs +[x19]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
+            movz    x0, #0xD1FFAB1E
             ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -329,7 +327,7 @@ G_M44969_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs -[x1]
             ; gcr arg pop 0
             b       G_M44969_IG16
-                       ;; size=208 bbWeight=1 PerfScore 51.50
+                       ;; size=204 bbWeight=1 PerfScore 51.00
 G_M44969_IG05:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x1, [x0, #0x48]
@@ -366,11 +364,10 @@ G_M44969_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             movk    x19, #0xD1FFAB1E LSL #32
             ldr     x19, [x19]
             ; gcrRegs +[x19]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
+            movz    x0, #0xD1FFAB1E
             ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -435,7 +432,7 @@ G_M44969_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs -[x1]
             ; gcr arg pop 0
             b       G_M44969_IG16
-                       ;; size=212 bbWeight=1 PerfScore 52.00
+                       ;; size=208 bbWeight=1 PerfScore 51.50
 G_M44969_IG08:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19] +[x0]
             ldr     x1, [x0, #0x48]
@@ -474,11 +471,10 @@ G_M44969_IG10:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             movk    x19, #0xD1FFAB1E LSL #32
             ldr     x19, [x19]
             ; gcrRegs +[x19]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
+            movz    x0, #0xD1FFAB1E
             ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -543,7 +539,7 @@ G_M44969_IG10:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs -[x1]
             ; gcr arg pop 0
             b       G_M44969_IG16
-                       ;; size=212 bbWeight=1 PerfScore 52.00
+                       ;; size=208 bbWeight=1 PerfScore 51.50
 G_M44969_IG11:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19] +[x0]
             ldr     x1, [x0, #0x48]
@@ -697,7 +693,7 @@ RWD00   dd  G_M44969_IG10 - G_M44969_IG02
            dd  G_M44969_IG11 - G_M44969_IG02
 
 
-; Total bytes of code 1152, prolog size 32, PerfScore 240.50, instruction count 288, allocated bytes for code 1152 (MethodHash=2a8e5056) for method System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d:MoveNext():this (FullOpts)
+Total bytes of code 1140, prolog size 32, PerfScore 239.00, instruction count 285, allocated bytes for code 1140 (MethodHash=2a8e5056) for method System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d:MoveNext():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -708,7 +704,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 263 (0x00107) Actual length = 1052 (0x00041c)
+  Function Length   : 260 (0x00104) Actual length = 1040 (0x000410)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+0.49%) : 298814.dasm - System.Threading.Tasks.Tests.Status.TaskStatusTest:RealRun():this (FullOpts)

@@ -8,11 +8,11 @@
 ; 27 inlinees with PGO data; 93 single block inlinees; 16 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 61, 56   )     ref  ->  [fp+0x18]  this class-hnd EH-live single-def <System.Threading.Tasks.Tests.Status.TaskStatusTest>
-;  V01 loc0         [V01,T43] (  3,  3   )   ubyte  ->  [fp+0x64]  do-not-enreg[M] EH-live
+;  V00 this         [V00,T00] ( 61, 56   )     ref  ->  [fp+0x10]  this class-hnd EH-live single-def <System.Threading.Tasks.Tests.Status.TaskStatusTest>
+;  V01 loc0         [V01,T43] (  3,  3   )   ubyte  ->  [fp+0x5C]  do-not-enreg[M] EH-live
 ;  V02 loc1         [V02,T44] (  3,  3   )     int  ->   x1         single-def
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Threading.Tasks.Tests.Status.CancelWaitingToRunTaskScheduler>
-;  V04 loc3         [V04,T40] (  3,  3   )     ref  ->  x26         class-hnd exact single-def <System.Threading.CancellationTokenSource>
+;  V04 loc3         [V04,T40] (  3,  3   )     ref  ->  x27         class-hnd exact single-def <System.Threading.CancellationTokenSource>
 ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;  V07 loc6         [V07,T91] (  2,  0   )     int  ->  x19         ld-addr-op single-def
@@ -20,8 +20,8 @@
 ;* V09 loc8         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.AggregateException>
 ;  V10 loc9         [V10,T39] (  4,  3   )     ref  ->  x19         class-hnd single-def <System.AggregateException>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T16] (  3,  6   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.Action>
-;  V13 tmp2         [V13,T17] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+;  V12 tmp1         [V12,T15] (  3,  6   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.Action>
+;  V13 tmp2         [V13,T16] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
 ;* V14 tmp3         [V14    ] (  0,  0   )  struct ( 8) zero-ref    single-def "spilled call-like call argument" <System.Threading.CancellationToken>
 ;* V15 tmp4         [V15    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V16 tmp5         [V16,T63] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "Single-def Box Helper" <System.Threading.Tasks.TaskStatus>
@@ -34,7 +34,7 @@
 ;  V23 tmp12        [V23,T68] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "Single-def Box Helper" <System.Threading.Tasks.TaskStatus>
 ;  V24 tmp13        [V24,T60] (  5,  0   )     ref  ->  x19         class-hnd single-def "impSpillSpecialSideEff" <System.AggregateException>
 ;  V25 tmp14        [V25,T69] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.Threading.Tasks.TaskStatus>
-;  V26 tmp15        [V26,T15] (  4,  6   )     ref  ->  x25         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Tests.Status.CancelWaitingToRunTaskScheduler>
+;  V26 tmp15        [V26,T14] (  4,  6   )     ref  ->  x26         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Tests.Status.CancelWaitingToRunTaskScheduler>
 ;* V27 tmp16        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Threading.CancellationTokenSource>
 ;  V28 tmp17        [V28,T32] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "dup spill" <System.Action>
 ;* V29 tmp18        [V29,T53] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.Threading.Tasks.TaskFactory>
@@ -43,29 +43,29 @@
 ;  V32 tmp21        [V32,T31] (  4,  4   )     ref  ->  x19        
 ;* V33 tmp22        [V33    ] (  0,  0   )  struct ( 8) zero-ref    single-def "spilled call-like call argument" <System.Threading.CancellationToken>
 ;  V34 tmp23        [V34,T62] (  4,  0   )     ref  ->  x19         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-;  V35 tmp24        [V35,T09] (  4,  8   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.Action>
-;  V36 tmp25        [V36,T18] (  3,  6   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Tests.Status.StatusTestException>
-;  V37 tmp26        [V37,T14] (  5,  6   )     ref  ->  x20         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.TaskCompletionSource`1[int]>
+;  V35 tmp24        [V35,T08] (  4,  8   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.Action>
+;  V36 tmp25        [V36,T17] (  3,  6   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Tests.Status.StatusTestException>
+;  V37 tmp26        [V37,T13] (  5,  6   )     ref  ->  x20         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.TaskCompletionSource`1[int]>
 ;  V38 tmp27        [V38,T61] (  5,  0   )     ref  ->  x19         class-hnd single-def "impSpillSpecialSideEff" <System.AggregateException>
-;  V39 tmp28        [V39,T19] (  3,  6   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource`1[int]>
-;  V40 tmp29        [V40,T20] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[int]>
-;  V41 tmp30        [V41,T21] (  3,  6   )     ref  ->  x21         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[int]>
+;  V39 tmp28        [V39,T18] (  3,  6   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.TaskCompletionSource`1[int]>
+;  V40 tmp29        [V40,T19] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[int]>
+;  V41 tmp30        [V41,T20] (  3,  6   )     ref  ->  x21         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[int]>
 ;* V42 tmp31        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V43 tmp32        [V43    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V44 tmp33        [V44,T45] (  3,  3   )   ubyte  ->  x23         "Inline stloc first use temp"
-;  V45 tmp34        [V45,T03] ( 11, 17.08)     ref  ->  x22         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
-;  V46 tmp35        [V46,T47] (  3,  2   )     ref  ->  x24         class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
+;  V45 tmp34        [V45,T05] (  8, 11.08)     ref  ->  x22         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
+;  V46 tmp35        [V46,T47] (  3,  2   )     ref  ->  x25         class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
 ;  V47 tmp36        [V47,T54] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V48 tmp37        [V48,T29] (  5,  5.00)     int  ->   x1         single-def "Inline stloc first use temp"
 ;  V49 tmp38        [V49,T46] (  3,  2.54)     ref  ->   x1         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;  V50 tmp39        [V50,T22] (  3,  6.00)   byref  ->   x1         single-def "Inlining Arg"
+;  V50 tmp39        [V50,T21] (  3,  6.00)   byref  ->   x1         single-def "Inlining Arg"
 ;  V51 tmp40        [V51,T33] (  2,  4.00)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Object>
 ;  V52 tmp41        [V52,T52] (  2,  2   )   ubyte  ->   x0         single-def "Inline stloc first use temp"
 ;* V53 tmp42        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
 ;* V54 tmp43        [V54    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V55 tmp44        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V56 tmp45        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task>
-;  V57 tmp46        [V57,T10] (  4,  8   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
+;  V57 tmp46        [V57,T09] (  4,  8   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task>
 ;* V58 tmp47        [V58    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
 ;  V59 tmp48        [V59,T30] (  3,  4.00)     ref  ->   x1         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V60 tmp49        [V60    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
@@ -74,19 +74,19 @@
 ;* V63 tmp52        [V63    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;  V64 tmp53        [V64,T06] (  5, 10   )     ref  ->  x19         class-hnd single-def "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V65 tmp54        [V65    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V66 tmp55        [V66,T23] (  3,  6   )     ref  ->  x23         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V66 tmp55        [V66,T22] (  3,  6   )     ref  ->  x23         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;  V67 tmp56        [V67,T34] (  2,  4   )     ref  ->   x1         class-hnd single-def "dup spill" <System.Threading.Tasks.TaskScheduler>
 ;  V68 tmp57        [V68,T38] (  4,  3.99)     ref  ->   x1        
-;  V69 tmp58        [V69,T24] (  3,  6   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <System.Threading.ManualResetEventSlim>
+;  V69 tmp58        [V69,T23] (  3,  6   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <System.Threading.ManualResetEventSlim>
 ;* V70 tmp59        [V70    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Threading.CancellationToken>
 ;* V71 tmp60        [V71    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V72 tmp61        [V72    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V73 tmp62        [V73    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
 ;  V74 tmp63        [V74,T48] (  2,  2   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V75 tmp64        [V75    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;  V76 tmp65        [V76,T35] (  2,  4   )     ref  ->  x20         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V76 tmp65        [V76,T35] (  2,  4   )     ref  ->  x21         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V77 tmp66        [V77    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V78 tmp67        [V78,T25] (  3,  6   )     ref  ->  x26         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V78 tmp67        [V78,T24] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V79 tmp68        [V79,T57] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V80 tmp69        [V80    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V81 tmp70        [V81    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
@@ -123,12 +123,12 @@
 ;* V112 tmp101      [V112    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp102      [V113    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V114 tmp103      [V114    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V115 tmp104      [V115,T04] (  2, 16   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+;  V115 tmp104      [V115,T03] (  2, 16   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V116 tmp105      [V116    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;  V117 tmp106      [V117,T02] (  2, 32   )     ref  ->  x19         class-hnd exact "Inlining Arg" <<unknown class>>
 ;* V118 tmp107      [V118    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V119 tmp108      [V119,T01] (  3, 48   )     ref  ->  x20         class-hnd exact "NewObj constructor temp" <<unknown class>>
-;* V120 tmp109      [V120,T12] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V119 tmp108      [V119,T01] (  3, 48   )     ref  ->  x26         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V120 tmp109      [V120,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V121 tmp110      [V121    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V122 tmp111      [V122    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V123 tmp112      [V123    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -165,12 +165,12 @@
 ;* V154 tmp143      [V154    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V155 tmp144      [V155    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V156 tmp145      [V156    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V157 tmp146      [V157    ] (  2,  0   )     ref  ->  [fp+0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+;  V157 tmp146      [V157    ] (  2,  0   )     ref  ->  [fp+0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
 ;* V158 tmp147      [V158    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
 ;* V159 tmp148      [V159    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V160 tmp149      [V160,T26] (  3,  6   )   byref  ->   x1         single-def "Inlining Arg"
+;  V160 tmp149      [V160,T25] (  3,  6   )   byref  ->   x1         single-def "Inlining Arg"
 ;  V161 tmp150      [V161,T70] (  3,  0   )   byref  ->  x19         single-def "Inlining Arg"
-;  V162 tmp151      [V162    ] (  4,  0   )  struct (16) [fp+0x48]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
+;  V162 tmp151      [V162    ] (  4,  0   )  struct (16) [fp+0x40]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
 ;* V163 tmp152      [V163    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
 ;* V164 tmp153      [V164    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
 ;* V165 tmp154      [V165    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[System.__Canon]>
@@ -178,9 +178,9 @@
 ;* V167 tmp156      [V167    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
 ;* V168 tmp157      [V168    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
 ;* V169 tmp158      [V169    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V170 tmp159      [V170,T27] (  3,  6   )   byref  ->   x1         single-def "Inlining Arg"
+;  V170 tmp159      [V170,T26] (  3,  6   )   byref  ->   x1         single-def "Inlining Arg"
 ;  V171 tmp160      [V171,T71] (  3,  0   )   byref  ->  x19         single-def "Inlining Arg"
-;  V172 tmp161      [V172    ] (  4,  0   )  struct (16) [fp+0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
+;  V172 tmp161      [V172    ] (  4,  0   )  struct (16) [fp+0x30]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
 ;* V173 tmp162      [V173    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
 ;* V174 tmp163      [V174    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
 ;* V175 tmp164      [V175    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[System.__Canon]>
@@ -188,11 +188,11 @@
 ;* V177 tmp166      [V177    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
 ;* V178 tmp167      [V178    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
 ;* V179 tmp168      [V179    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V180 tmp169      [V180,T28] (  3,  6   )   byref  ->   x1         single-def "Inlining Arg"
+;  V180 tmp169      [V180,T27] (  3,  6   )   byref  ->   x1         single-def "Inlining Arg"
 ;* V181 tmp170      [V181    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[int]>
 ;  V182 tmp171      [V182,T72] (  3,  0   )   byref  ->  x19         single-def "Inlining Arg"
 ;  V183 tmp172      [V183,T74] (  2,  0   )     ref  ->  x19         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskCompletionSource`1[int]>
-;  V184 tmp173      [V184    ] (  4,  0   )  struct (16) [fp+0x28]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
+;  V184 tmp173      [V184    ] (  4,  0   )  struct (16) [fp+0x20]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
 ;* V185 tmp174      [V185    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
 ;* V186 tmp175      [V186    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TaskStatus>
 ;* V187 tmp176      [V187    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[System.__Canon]>
@@ -208,7 +208,7 @@
 ;  V197 tmp186      [V197,T36] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Exception>
 ;* V198 tmp187      [V198    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.AggregateException>
 ;  V199 tmp188      [V199,T73] (  3,  0   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Exception>
-;  V200 tmp189      [V200    ] (  2,  0   )     ref  ->  [fp+0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+;  V200 tmp189      [V200    ] (  2,  0   )     ref  ->  [fp+0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
 ;* V201 tmp190      [V201    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
 ;* V202 tmp191      [V202    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V05.m_task (fldOffset=0x0)" P-INDEP
 ;  V203 tmp192      [V203,T49] (  2,  2   )     ref  ->   x4         "field V14._source (fldOffset=0x0)" P-INDEP
@@ -228,7 +228,7 @@
 ;* V217 tmp206      [V217    ] (  0,  0   )    long  ->  zero-ref    single-def "field V106._id (fldOffset=0x8)" P-INDEP
 ;* V218 tmp207      [V218    ] (  0,  0   )     ref  ->  zero-ref    "field V113._source (fldOffset=0x0)" P-INDEP
 ;* V219 tmp208      [V219    ] (  0,  0   )     ref  ->  zero-ref    "field V114._source (fldOffset=0x0)" P-INDEP
-;* V220 tmp209      [V220,T11] (  0,  0   )     ref  ->  zero-ref    "field V116._source (fldOffset=0x0)" P-INDEP
+;* V220 tmp209      [V220,T10] (  0,  0   )     ref  ->  zero-ref    "field V116._source (fldOffset=0x0)" P-INDEP
 ;* V221 tmp210      [V221    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V122._source (fldOffset=0x0)" P-DEP
 ;* V222 tmp211      [V222    ] (  0,  0   )     ref  ->  zero-ref    "field V129._node (fldOffset=0x0)" P-DEP
 ;* V223 tmp212      [V223    ] (  0,  0   )    long  ->  zero-ref    "field V129._id (fldOffset=0x8)" P-DEP
@@ -266,34 +266,35 @@
 ;  V255 tmp244      [V255,T88] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
 ;  V256 tmp245      [V256,T89] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;  V257 tmp246      [V257,T90] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V258 PSPSym      [V258,T58] (  1,  1   )    long  ->  [fp+0x68]  do-not-enreg[V] "PSPSym"
+;  V258 PSPSym      [V258,T58] (  1,  1   )    long  ->  [fp+0x60]  do-not-enreg[V] "PSPSym"
 ;* V259 cse0        [V259,T59] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
-;  V260 cse1        [V260,T07] (  3, 10   )     ref  ->  x21         "CSE - moderate"
+;  V260 cse1        [V260,T07] (  3, 10   )     ref  ->  x25         "CSE - moderate"
 ;  V261 cse2        [V261,T41] (  3,  3   )     ref  ->   x1         "CSE - conservative"
 ;  V262 cse3        [V262,T42] (  3,  3   )     ref  ->   x1         "CSE - conservative"
-;  V263 cse4        [V263,T13] (  6,  5.98)    long  ->  x24         multi-def "CSE - aggressive"
+;  V263 cse4        [V263,T12] (  6,  5.98)    long  ->  x24         multi-def "CSE - aggressive"
 ;  V264 cse5        [V264,T51] (  2,  2   )     ref  ->   x1         "CSE - moderate"
-;  V265 cse6        [V265,T05] ( 25, 15   )   byref  ->  registers   multi-def "CSE - aggressive"
-;  V266 cse7        [V266,T08] (  3, 10   )    long  ->  x25         "CSE - moderate"
+;  V265 cse6        [V265,T04] ( 25, 15   )   byref  ->  registers   multi-def "CSE - aggressive"
+;  V266 cse7        [V266,T28] (  5,  5.00)   byref  ->  x24         "CSE - moderate"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 88
 
 G_M30923_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0xB0]!
-            stp     x19, x20, [sp, #0x70]
-            stp     x21, x22, [sp, #0x80]
-            stp     x23, x24, [sp, #0x90]
-            stp     x25, x26, [sp, #0xA0]
+            stp     x19, x20, [sp, #0x68]
+            stp     x21, x22, [sp, #0x78]
+            stp     x23, x24, [sp, #0x88]
+            stp     x25, x26, [sp, #0x98]
+            str     x27, [sp, #0xA8]
             mov     fp, sp
-            add     x9, fp, #32
+            add     x9, fp, #24
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
             add     x1, sp, #176
-            str     x1, [fp, #0x68]    // [V258 PSPSym]
-            str     x0, [fp, #0x18]    // [V00 this]
+            str     x1, [fp, #0x60]    // [V258 PSPSym]
+            str     x0, [fp, #0x10]    // [V00 this]
             ; GC ptr vars +{V00}
-                       ;; size=52 bbWeight=1 PerfScore 11.00
+                       ;; size=56 bbWeight=1 PerfScore 12.00
 G_M30923_IG02:        ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[x0]
             ldrb    w1, [x0, #0x39]
@@ -325,7 +326,7 @@ G_M30923_IG02:        ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
-            ldr     x0, [fp, #0x18]    // [V00 this]
+            ldr     x0, [fp, #0x10]    // [V00 this]
             ; gcrRegs +[x0]
             add     x14, x0, #24
             ; byrRegs +[x14]
@@ -345,7 +346,7 @@ G_M30923_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             mov     x19, x0
             ; gcrRegs +[x19]
-            ldr     x1, [fp, #0x18]    // [V00 this]
+            ldr     x1, [fp, #0x10]    // [V00 this]
             ; gcrRegs +[x1]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
@@ -365,7 +366,7 @@ G_M30923_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             mov     x20, x0
             ; gcrRegs +[x20]
-            ldr     x1, [fp, #0x18]    // [V00 this]
+            ldr     x1, [fp, #0x10]    // [V00 this]
             ; gcrRegs +[x1]
...

+8 (+0.77%) : 242830.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTestsDefault+CollectionTestsContextDefault:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)

@@ -15,7 +15,7 @@
 ;  V04 loc1         [V04,T02] (  4, 12   )     ref  ->  x21         class-hnd exact <System.String>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Queue`1+Enumerator[System.String]>
-;  V07 tmp2         [V07,T26] (  2,  0   )     int  ->   x0        
+;  V07 tmp2         [V07,T25] (  2,  0   )     int  ->   x0        
 ;  V08 tmp3         [V08,T23] (  3,  0   )     ref  ->  x21        
 ;  V09 tmp4         [V09,T24] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V10 tmp5         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -68,8 +68,7 @@
 ;  V57 PSPSym       [V57,T20] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;  V58 cse0         [V58,T16] (  4,  2   )     int  ->   x0         "CSE - moderate"
 ;  V59 cse1         [V59,T17] (  4,  2   )     int  ->   x0         "CSE - moderate"
-;  V60 cse2         [V60,T25] (  3,  0   )     ref  ->   x1         "CSE - aggressive"
-;  V61 cse3         [V61,T13] (  3,  5   )    long  ->  x20         "CSE - aggressive"
+;  V60 cse2         [V60,T13] (  3,  5   )    long  ->  x20         "CSE - aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -306,19 +305,19 @@ G_M57976_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             cset    x0, eq
             tst     w0, #255
             bne     G_M57976_IG20
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=68 bbWeight=0 PerfScore 0.00
+                       ;; size=76 bbWeight=0 PerfScore 0.00
 G_M57976_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [fp, #0x34]    // [V39 tmp34]
             cmn     w0, #1
@@ -485,7 +484,7 @@ G_M57976_IG33:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1036, prolog size 44, PerfScore 274.00, instruction count 259, allocated bytes for code 1036 (MethodHash=13341d87) for method System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
+Total bytes of code 1044, prolog size 44, PerfScore 274.00, instruction count 261, allocated bytes for code 1044 (MethodHash=13341d87) for method System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -496,7 +495,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 247 (0x000f7) Actual length = 988 (0x0003dc)
+  Function Length   : 249 (0x000f9) Actual length = 996 (0x0003e4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+2.03%) : 100929.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  x24        
 ;  V10 loc7         [V10,T07] (  3, 12   )     ref  ->   x2         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T25] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T26] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T27] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V20 tmp9         [V20,T31] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T32] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T28] (  3,  0   )     int  ->  x23         "Inlining Arg"
-;  V31 tmp20        [V31,T33] (  2,  0   )   byref  ->  x22         "Inlining Arg"
+;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  x23         "Inlining Arg"
+;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  x22         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T34] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T23] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T29] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V44 tmp33        [V44,T35] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T36] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T24] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T30] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V55 tmp44        [V55,T37] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T38] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  x21         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T05] (  4, 12   )     int  ->  x25         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.53)     ref  ->  x19         class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T08] (  3, 12   )     ref  ->   x2         "arr expr"
-;  V98 tmp87        [V98,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V99 tmp88        [V99,T40] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V100 cse0        [V100,T18] (  3,  3   )     ref  ->   x0         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  4,  9   )   byref  ->  x23         hoist multi-def "CSE - aggressive"
 ;  V102 cse2        [V102,T09] (  6, 10   )     int  ->  x22         multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T20] ( 12,  0   )     ref  ->   x1         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -409,19 +408,19 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG30
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG31
@@ -471,19 +470,19 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w23, w1, w0
             tbz     w23, #31, G_M45430_IG33
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=104 bbWeight=0 PerfScore 0.00
+                       ;; size=112 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
             cbz     w23, G_M45430_IG34
             movz    x0, #0xD1FFAB1E
@@ -579,19 +578,19 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG38
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG39
@@ -652,19 +651,19 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M45430_IG43
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M45430_IG44
             movz    x0, #0xD1FFAB1E
@@ -726,7 +725,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1580, prolog size 48, PerfScore 291.42, instruction count 395, allocated bytes for code 1580 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1612, prolog size 48, PerfScore 291.42, instruction count 403, allocated bytes for code 1612 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -737,7 +736,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 395 (0x0018b) Actual length = 1580 (0x00062c)
+  Function Length   : 403 (0x00193) Actual length = 1612 (0x00064c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.arm64.checked.mch 19 14 5 0 -136 +72
benchmarks.run_tiered.linux.arm64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.arm64.checked.mch 89 17 70 2 -172 +432
libraries.crossgen2.linux.arm64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.linux.arm64.checked.mch 11 0 11 0 -0 +168
libraries_tests.run.linux.arm64.Release.mch 746 233 464 49 -2,996 +4,592
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 65 40 20 5 -208 +132
realworld.run.linux.arm64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.linux.arm64.checked.mch 0 0 0 0 -0 +0
930 304 570 56 -3,512 +5,396

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 33,636 2,755 30,881 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.arm64.checked.mch 153,703 60,106 93,597 152 (0.10%) 153 (0.10%)
benchmarks.run_tiered.linux.arm64.checked.mch 63,983 47,942 16,041 0 (0.00%) 0 (0.00%)
coreclr_tests.run.linux.arm64.checked.mch 628,135 383,770 244,365 334 (0.05%) 336 (0.05%)
libraries.crossgen2.linux.arm64.checked.mch 233,777 15 233,762 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm64.checked.mch 294,236 6 294,230 1 (0.00%) 4 (0.00%)
libraries_tests.run.linux.arm64.Release.mch 737,783 487,495 250,288 3,053 (0.41%) 3,055 (0.41%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 304,063 21,560 282,503 6 (0.00%) 8 (0.00%)
realworld.run.linux.arm64.checked.mch 33,304 151 33,153 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,041 6 19,035 0 (0.00%) 0 (0.00%)
2,501,661 1,003,806 1,497,855 3,546 (0.14%) 3,556 (0.14%)

jit-analyze output

benchmarks.run_pgo.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 80912504 (overridden on cmd)
Total bytes of diff: 80912440 (overridden on cmd)
Total bytes of delta: -64 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -4212 : 125980.dasm (-100.00 % of base)
       -3616 : 18037.dasm (-100.00 % of base)
       -2204 : 85323.dasm (-100.00 % of base)
       -2200 : 144959.dasm (-100.00 % of base)
       -2200 : 141492.dasm (-100.00 % of base)
       -2168 : 86261.dasm (-100.00 % of base)
       -1692 : 129003.dasm (-100.00 % of base)
       -1668 : 150220.dasm (-100.00 % of base)
       -1580 : 120381.dasm (-100.00 % of base)
       -1332 : 149331.dasm (-100.00 % of base)
       -1296 : 151537.dasm (-100.00 % of base)
       -1296 : 69109.dasm (-100.00 % of base)
       -1296 : 45011.dasm (-100.00 % of base)
       -1248 : 148911.dasm (-100.00 % of base)
       -1248 : 45012.dasm (-100.00 % of base)
       -1248 : 61198.dasm (-100.00 % of base)
       -1236 : 91027.dasm (-100.00 % of base)
        -908 : 120371.dasm (-100.00 % of base)
        -260 : 86635.dasm (-100.00 % of base)

19 total files with Code Size differences (19 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -4212 (-100.00 % of base) : 125980.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -3616 (-100.00 % of base) : 18037.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
       -2204 (-100.00 % of base) : 85323.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
       -2200 (-100.00 % of base) : 144959.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -2200 (-100.00 % of base) : 141492.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -2168 (-100.00 % of base) : 86261.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -1692 (-100.00 % of base) : 129003.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -1668 (-100.00 % of base) : 150220.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
       -1580 (-100.00 % of base) : 120381.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
       -1332 (-100.00 % of base) : 149331.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1296 (-100.00 % of base) : 151537.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1296 (-100.00 % of base) : 69109.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1296 (-100.00 % of base) : 45011.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1248 (-100.00 % of base) : 148911.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1248 (-100.00 % of base) : 45012.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1248 (-100.00 % of base) : 61198.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1236 (-100.00 % of base) : 91027.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
        -908 (-100.00 % of base) : 120371.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
        -260 (-100.00 % of base) : 86635.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)

Top method improvements (percentages):
       -2204 (-100.00 % of base) : 85323.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
       -1692 (-100.00 % of base) : 129003.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -4212 (-100.00 % of base) : 125980.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -3616 (-100.00 % of base) : 18037.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
        -908 (-100.00 % of base) : 120371.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
       -1580 (-100.00 % of base) : 120381.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
        -260 (-100.00 % of base) : 86635.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier1)
       -1668 (-100.00 % of base) : 150220.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
       -1248 (-100.00 % of base) : 148911.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1248 (-100.00 % of base) : 45012.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1248 (-100.00 % of base) : 61198.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1236 (-100.00 % of base) : 91027.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -2200 (-100.00 % of base) : 144959.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -2168 (-100.00 % of base) : 86261.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -2200 (-100.00 % of base) : 141492.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -1296 (-100.00 % of base) : 151537.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1296 (-100.00 % of base) : 69109.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1332 (-100.00 % of base) : 149331.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
       -1296 (-100.00 % of base) : 45011.dasm - System.Type:GetConstructor(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)

19 total methods with Code Size differences (19 improved, 0 regressed).


coreclr_tests.run.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 509947608 (overridden on cmd)
Total bytes of diff: 509947868 (overridden on cmd)
Total bytes of delta: 260 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -7568 : 426456.dasm (-100.00 % of base)
       -6300 : 425959.dasm (-100.00 % of base)
       -2732 : 425018.dasm (-100.00 % of base)
       -2732 : 429506.dasm (-100.00 % of base)
       -2516 : 122046.dasm (-100.00 % of base)
       -2448 : 38096.dasm (-100.00 % of base)
       -2352 : 213426.dasm (-100.00 % of base)
       -2164 : 549847.dasm (-100.00 % of base)
       -2060 : 248225.dasm (-100.00 % of base)
       -2060 : 248229.dasm (-100.00 % of base)
       -1936 : 420702.dasm (-100.00 % of base)
       -1936 : 426403.dasm (-100.00 % of base)
       -1836 : 526895.dasm (-100.00 % of base)
       -1588 : 530195.dasm (-100.00 % of base)
       -1524 : 270407.dasm (-100.00 % of base)
       -1340 : 242844.dasm (-100.00 % of base)
       -1312 : 33062.dasm (-100.00 % of base)
       -1288 : 1976.dasm (-100.00 % of base)
       -1276 : 254429.dasm (-100.00 % of base)
       -1264 : 2259.dasm (-100.00 % of base)

50 total files with Code Size differences (50 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -7568 (-100.00 % of base) : 426456.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
       -6300 (-100.00 % of base) : 425959.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
       -2732 (-100.00 % of base) : 429506.dasm - Gen`1[System.__Canon]:ThreadPoolTest() (Tier1)
       -2732 (-100.00 % of base) : 425018.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
       -2516 (-100.00 % of base) : 122046.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2448 (-100.00 % of base) : 38096.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2352 (-100.00 % of base) : 213426.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2164 (-100.00 % of base) : 549847.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
       -2060 (-100.00 % of base) : 248225.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -2060 (-100.00 % of base) : 248229.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -1936 (-100.00 % of base) : 420702.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -1936 (-100.00 % of base) : 426403.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -1836 (-100.00 % of base) : 526895.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
       -1588 (-100.00 % of base) : 530195.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1524 (-100.00 % of base) : 270407.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
       -1340 (-100.00 % of base) : 242844.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (Instrumented Tier1)
       -1312 (-100.00 % of base) : 33062.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
       -1288 (-100.00 % of base) : 1976.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Instrumented Tier1)
       -1276 (-100.00 % of base) : 254429.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Instrumented Tier1)
       -1264 (-100.00 % of base) : 2259.dasm - System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this (Instrumented Tier1)

Top method improvements (percentages):
       -1196 (-100.00 % of base) : 248147.dasm - AssignJagged:Run():double:this (Tier1)
        -696 (-100.00 % of base) : 271378.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
       -2164 (-100.00 % of base) : 549847.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
        -392 (-100.00 % of base) : 248113.dasm - Fourier:Run():double:this (Tier1)
       -2732 (-100.00 % of base) : 429506.dasm - Gen`1[System.__Canon]:ThreadPoolTest() (Tier1)
       -2060 (-100.00 % of base) : 248225.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -2060 (-100.00 % of base) : 248229.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -1936 (-100.00 % of base) : 420702.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -1936 (-100.00 % of base) : 426403.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -2732 (-100.00 % of base) : 425018.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
       -7568 (-100.00 % of base) : 426456.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
       -6300 (-100.00 % of base) : 425959.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
        -820 (-100.00 % of base) : 420002.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
        -376 (-100.00 % of base) : 312791.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
        -856 (-100.00 % of base) : 255370.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateShouldSerializeTest(System.Reflection.MemberInfo):System.Predicate`1[System.Object]:this (Tier1)
        -476 (-100.00 % of base) : 247913.dasm - NumericSortRect:Run():double:this (Tier1)
       -1836 (-100.00 % of base) : 526895.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
        -332 (-100.00 % of base) : 312998.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
        -332 (-100.00 % of base) : 570531.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
       -1024 (-100.00 % of base) : 449372.dasm - System.Buffers.SharedArrayPool`1[byte]:Return(byte[],ubyte):this (FullOpts)


libraries.pmi.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 75989468 (overridden on cmd)
Total bytes of diff: 75989636 (overridden on cmd)
Total bytes of delta: 168 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -2196 : 155338.dasm (-100.00 % of base)
       -1696 : 207157.dasm (-100.00 % of base)
       -1588 : 207158.dasm (-100.00 % of base)
       -1004 : 4458.dasm (-100.00 % of base)
        -996 : 4457.dasm (-100.00 % of base)
        -908 : 207859.dasm (-100.00 % of base)
        -892 : 207858.dasm (-100.00 % of base)
        -764 : 207875.dasm (-100.00 % of base)
        -756 : 207874.dasm (-100.00 % of base)
        -384 : 4463.dasm (-100.00 % of base)
        -356 : 4464.dasm (-100.00 % of base)

11 total files with Code Size differences (11 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -2196 (-100.00 % of base) : 155338.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+<WaitForExitAsync>d__27:MoveNext():this (FullOpts)
       -1696 (-100.00 % of base) : 207157.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1588 (-100.00 % of base) : 207158.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1004 (-100.00 % of base) : 4458.dasm - System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
        -996 (-100.00 % of base) : 4457.dasm - System.Buffers.SharedArrayPool`1[short]:Rent(int):short[]:this (FullOpts)
        -908 (-100.00 % of base) : 207859.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -892 (-100.00 % of base) : 207858.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
        -764 (-100.00 % of base) : 207875.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
        -756 (-100.00 % of base) : 207874.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
        -384 (-100.00 % of base) : 4463.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
        -356 (-100.00 % of base) : 4464.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)

Top method improvements (percentages):
       -2196 (-100.00 % of base) : 155338.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+<WaitForExitAsync>d__27:MoveNext():this (FullOpts)
        -996 (-100.00 % of base) : 4457.dasm - System.Buffers.SharedArrayPool`1[short]:Rent(int):short[]:this (FullOpts)
       -1004 (-100.00 % of base) : 4458.dasm - System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
        -356 (-100.00 % of base) : 4464.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
        -384 (-100.00 % of base) : 4463.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
       -1696 (-100.00 % of base) : 207157.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1588 (-100.00 % of base) : 207158.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -892 (-100.00 % of base) : 207858.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
        -908 (-100.00 % of base) : 207859.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -756 (-100.00 % of base) : 207874.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
        -764 (-100.00 % of base) : 207875.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)

11 total methods with Code Size differences (11 improved, 0 regressed).


libraries_tests.run.linux.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 381322764 (overridden on cmd)
Total bytes of diff: 381324360 (overridden on cmd)
Total bytes of delta: 1596 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
      -20704 : 671005.dasm (-100.00 % of base)
      -19364 : 55029.dasm (-100.00 % of base)
      -19116 : 685686.dasm (-100.00 % of base)
      -18852 : 66279.dasm (-100.00 % of base)
      -17456 : 685533.dasm (-100.00 % of base)
      -16588 : 55032.dasm (-100.00 % of base)
       -8992 : 55040.dasm (-100.00 % of base)
       -8796 : 81986.dasm (-100.00 % of base)
       -7972 : 55041.dasm (-100.00 % of base)
       -7840 : 575826.dasm (-100.00 % of base)
       -7480 : 671363.dasm (-100.00 % of base)
       -7064 : 683933.dasm (-100.00 % of base)
       -6752 : 692499.dasm (-100.00 % of base)
       -6564 : 565788.dasm (-100.00 % of base)
       -6428 : 571417.dasm (-100.00 % of base)
       -5292 : 570778.dasm (-100.00 % of base)
       -4836 : 461896.dasm (-100.00 % of base)
       -4708 : 414713.dasm (-100.00 % of base)
       -4076 : 671070.dasm (-100.00 % of base)
       -3888 : 568981.dasm (-100.00 % of base)

100 total files with Code Size differences (100 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
      -20704 (-100.00 % of base) : 671005.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
      -19364 (-100.00 % of base) : 55029.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
      -19116 (-100.00 % of base) : 685686.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -18852 (-100.00 % of base) : 66279.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -17456 (-100.00 % of base) : 685533.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -16588 (-100.00 % of base) : 55032.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
       -8992 (-100.00 % of base) : 55040.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -8796 (-100.00 % of base) : 81986.dasm - Microsoft.CodeAnalysis.SolutionState:AddProject(Microsoft.CodeAnalysis.ProjectState):Microsoft.CodeAnalysis.SolutionState:this (Tier1)
       -7972 (-100.00 % of base) : 55041.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
       -7840 (-100.00 % of base) : 575826.dasm - System.Security.Cryptography.X509Certificates.CertificateRequest:LoadSigningRequest(System.ReadOnlySpan`1[ubyte],ubyte,System.Security.Cryptography.HashAlgorithmName,byref,int,System.Security.Cryptography.RSASignaturePadding):System.Security.Cryptography.X509Certificates.CertificateRequest (Tier1)
       -7480 (-100.00 % of base) : 671363.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:.ctor(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],int,System.Text.RegularExpressions.RegexFindOptimizations,System.TimeSpan):this (Tier1)
       -7064 (-100.00 % of base) : 683933.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:InferMethodTypeArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (Tier1)
       -6752 (-100.00 % of base) : 692499.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+SwitchStatementLocalRewriter:LowerSwitchStatement(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
       -6564 (-100.00 % of base) : 565788.dasm - System.Security.Cryptography.CryptoStream+<ReadAsyncCore>d__44:MoveNext():this (Tier1)
       -6428 (-100.00 % of base) : 571417.dasm - System.Security.Cryptography.Tests.HashAlgorithmTestDriver`1[System.__Canon]:VerifyTransformBlockHash(ubyte[],ubyte[],ubyte[],ubyte[]):this (Tier1)
       -5292 (-100.00 % of base) : 570778.dasm - System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder:Load(System.ReadOnlySpan`1[ubyte],byref,byref):System.Security.Cryptography.X509Certificates.CertificateRevocationListBuilder (Tier1)
       -4836 (-100.00 % of base) : 461896.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -4708 (-100.00 % of base) : 414713.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:ParseRdn(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte[] (Tier1)
       -4076 (-100.00 % of base) : 671070.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformObjectCreationOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -3888 (-100.00 % of base) : 568981.dasm - System.IO.File:ReadAllBytesUnknownLength(Microsoft.Win32.SafeHandles.SafeFileHandle):ubyte[] (Tier1)

Top method improvements (percentages):
       -2996 (-100.00 % of base) : 459688.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -4836 (-100.00 % of base) : 461896.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -2132 (-100.00 % of base) : 689846.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
        -976 (-100.00 % of base) : 57235.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (Tier1)
      -19364 (-100.00 % of base) : 55029.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
      -20704 (-100.00 % of base) : 671005.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
      -18852 (-100.00 % of base) : 66279.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -17456 (-100.00 % of base) : 685533.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -19116 (-100.00 % of base) : 685686.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -16588 (-100.00 % of base) : 55032.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
       -6752 (-100.00 % of base) : 692499.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+SwitchStatementLocalRewriter:LowerSwitchStatement(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
       -7064 (-100.00 % of base) : 683933.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:InferMethodTypeArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (Tier1)
       -8992 (-100.00 % of base) : 55040.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -7972 (-100.00 % of base) : 55041.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
       -4076 (-100.00 % of base) : 671070.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformObjectCreationOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -3248 (-100.00 % of base) : 179545.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CustomModifierUtils:CopyTypeCustomModifiers(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol (Tier1)
        -276 (-100.00 % of base) : 91179.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
       -3444 (-100.00 % of base) : 90376.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseUsingDirective():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.UsingDirectiveSyntax:this (Tier1)
        -584 (-100.00 % of base) : 175140.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
        -572 (-100.00 % of base) : 115520.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)


librariestestsnotieredcompilation.run.linux.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 162528980 (overridden on cmd)
Total bytes of diff: 162528904 (overridden on cmd)
Total bytes of delta: -76 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -4912 : 298814.dasm (-100.00 % of base)
       -2444 : 296967.dasm (-100.00 % of base)
       -2436 : 24001.dasm (-100.00 % of base)
       -2192 : 296754.dasm (-100.00 % of base)
       -2040 : 143418.dasm (-100.00 % of base)
       -1932 : 152382.dasm (-100.00 % of base)
       -1840 : 296770.dasm (-100.00 % of base)
       -1772 : 296600.dasm (-100.00 % of base)
       -1724 : 296836.dasm (-100.00 % of base)
       -1684 : 296641.dasm (-100.00 % of base)
       -1616 : 296853.dasm (-100.00 % of base)
       -1580 : 100929.dasm (-100.00 % of base)
       -1480 : 299730.dasm (-100.00 % of base)
       -1412 : 296775.dasm (-100.00 % of base)
       -1412 : 296824.dasm (-100.00 % of base)
       -1412 : 296870.dasm (-100.00 % of base)
       -1412 : 296934.dasm (-100.00 % of base)
       -1364 : 196910.dasm (-100.00 % of base)
       -1328 : 296765.dasm (-100.00 % of base)
       -1328 : 296921.dasm (-100.00 % of base)

54 total files with Code Size differences (54 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -4912 (-100.00 % of base) : 298814.dasm - System.Threading.Tasks.Tests.Status.TaskStatusTest:RealRun():this (FullOpts)
       -2444 (-100.00 % of base) : 296967.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<ReuseInstanceWithResets_Success>d__0:MoveNext():this (FullOpts)
       -2436 (-100.00 % of base) : 24001.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<ReuseInstanceWithResets_Success>d__0:MoveNext():this (FullOpts)
       -2192 (-100.00 % of base) : 296754.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<Generic_CreateFromValueTaskSource_Await_Normal>d__37:MoveNext():this (FullOpts)
       -2040 (-100.00 % of base) : 143418.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
       -1932 (-100.00 % of base) : 152382.dasm - System.Net.Quic.Tests.MsQuicTests+<QuicRootedObjectGetReleased>d__3:MoveNext():this (FullOpts)
       -1840 (-100.00 % of base) : 296770.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<CreateFromValueTaskSource_Await_Normal>d__36:MoveNext():this (FullOpts)
       -1772 (-100.00 % of base) : 296600.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<Generic_CreateFromValueTaskSource_Canceled>d__25:MoveNext():this (FullOpts)
       -1724 (-100.00 % of base) : 296836.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<NonGeneric_CreateFromValueTaskSource_Canceled>d__24:MoveNext():this (FullOpts)
       -1684 (-100.00 % of base) : 296641.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<Generic_CreateFromValueTaskSource_Faulted>d__23:MoveNext():this (FullOpts)
       -1616 (-100.00 % of base) : 296853.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<NonGeneric_CreateFromValueTaskSource_Faulted>d__22:MoveNext():this (FullOpts)
       -1580 (-100.00 % of base) : 100929.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1480 (-100.00 % of base) : 299730.dasm - System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest:RealRun():this (FullOpts)
       -1412 (-100.00 % of base) : 296775.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_11>d:MoveNext():this (FullOpts)
       -1412 (-100.00 % of base) : 296824.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_22>d:MoveNext():this (FullOpts)
       -1412 (-100.00 % of base) : 296870.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_33>d:MoveNext():this (FullOpts)
       -1412 (-100.00 % of base) : 296934.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_44>d:MoveNext():this (FullOpts)
       -1364 (-100.00 % of base) : 196910.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
       -1328 (-100.00 % of base) : 296818.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_20>d:MoveNext():this (FullOpts)
       -1328 (-100.00 % of base) : 296857.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_31>d:MoveNext():this (FullOpts)

Top method improvements (percentages):
        -168 (-100.00 % of base) : 302852.dasm - CoreXml.Test.XLinq.LoadSaveAsyncTests+<>c:<ArgumentValidation>b__0_0():this (FullOpts)
        -808 (-100.00 % of base) : 40987.dasm - Microsoft.Extensions.DependencyInjection.HttpClientFactoryServiceCollectionExtensionsTest+<>c+<<AddHttpClient_GetAwaiterAndResult_InSingleThreadedSynchronizationContext_ShouldNotHangs>b__44_3>d:MoveNext():this (FullOpts)
        -908 (-100.00 % of base) : 16030.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]:Rent(int):Microsoft.CodeAnalysis.Testing.DiagnosticResult[]:this (FullOpts)
        -968 (-100.00 % of base) : 16031.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]:Return(Microsoft.CodeAnalysis.Testing.DiagnosticResult[],ubyte):this (FullOpts)
       -1004 (-100.00 % of base) : 11277.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Rent(int):System.Collections.Immutable.ImmutableArray`1[System.__Canon][]:this (FullOpts)
        -956 (-100.00 % of base) : 11292.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Return(System.Collections.Immutable.ImmutableArray`1[System.__Canon][],ubyte):this (FullOpts)
        -164 (-100.00 % of base) : 80498.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
        -636 (-100.00 % of base) : 80514.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -220 (-100.00 % of base) : 80540.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
        -668 (-100.00 % of base) : 80219.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -220 (-100.00 % of base) : 80490.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
        -964 (-100.00 % of base) : 127397.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<>c__DisplayClass16_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
       -1932 (-100.00 % of base) : 152382.dasm - System.Net.Quic.Tests.MsQuicTests+<QuicRootedObjectGetReleased>d__3:MoveNext():this (FullOpts)
        -620 (-100.00 % of base) : 23917.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<DisposeAsync>d__8[int]:MoveNext():this (FullOpts)
        -536 (-100.00 % of base) : 299720.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<DisposeAsync>d__8[int]:MoveNext():this (FullOpts)
        -540 (-100.00 % of base) : 299717.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<MoveNextAsync>d__5[int]:MoveNext():this (FullOpts)
       -2040 (-100.00 % of base) : 143418.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
        -136 (-100.00 % of base) : 143786.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
        -628 (-100.00 % of base) : 265435.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<<RegressionTest_DisposingEnumeratorOnPendingMoveNextAsyncOperation>g__GetNumbersAsync|20_1>d:MoveNext():this (FullOpts)
        -628 (-100.00 % of base) : 253359.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<<RegressionTest_DisposingEnumeratorOnPendingMoveNextAsyncOperation>g__GetNumbersAsync|20_1>d:MoveNext():this (FullOpts)



linux x64

Diffs are based on 2,595,039 contexts (1,052,329 MinOpts, 1,542,710 FullOpts).

MISSED contexts: 3,596 (0.14%)

Overall (-236 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 66,799,627 +62
coreclr_tests.run.linux.x64.checked.mch 458,880,954 +193
libraries.pmi.linux.x64.checked.mch 59,972,991 +90
libraries_tests.run.linux.x64.Release.mch 329,977,293 -591
librariestestsnotieredcompilation.run.linux.x64.Release.mch 130,000,373 +10

FullOpts (-236 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 46,969,870 +62
coreclr_tests.run.linux.x64.checked.mch 132,322,819 +193
libraries.pmi.linux.x64.checked.mch 59,860,121 +90
libraries_tests.run.linux.x64.Release.mch 145,587,772 -591
librariestestsnotieredcompilation.run.linux.x64.Release.mch 119,341,902 +10

Example diffs

benchmarks.run_pgo.linux.x64.checked.mch

-3 (-0.49%) : 16377.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)

@@ -70,7 +70,6 @@
 ;  V59 tmp50        [V59,T03] (  3, 40   )     ref  ->  rdi         "arr expr"
 ;  V60 PSPSym       [V60,T30] (  1,  1   )    long  ->  [rbp-0x50]  do-not-enreg[V] "PSPSym"
 ;  V61 cse0         [V61,T08] (  2, 16   )     int  ->  rdi         "CSE - moderate"
-;  V62 cse1         [V62,T31] (  8,  0   )     ref  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 40
 
@@ -236,16 +235,14 @@ G_M12834_IG14:        ; bbWeight=0, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {},
        ; gcrRegs -[rsi]
        mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
-       mov      rax, 0xD1FFAB1E
-       ; gcrRegs +[rax]
-       mov      rsi, rax
+       mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        call     [<unknown method>]
-       ; gcrRegs -[rax rsi rdi]
+       ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        mov      rsi, gword ptr [rbp-0x40]
        ; gcrRegs +[rsi]
-                       ;; size=33 bbWeight=0 PerfScore 0.00
+                       ;; size=30 bbWeight=0 PerfScore 0.00
 G_M12834_IG15:        ; bbWeight=8, gcrefRegs=9040 {rsi r12 r15}, byrefRegs=0000 {}, byref, isz
        cmp      r14d, dword ptr [r12+0x14]
        jne      SHORT G_M12834_IG20
@@ -393,7 +390,7 @@ G_M12834_IG33:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 607, prolog size 32, PerfScore 610.00, instruction count 167, allocated bytes for code 607 (MethodHash=d237cddd) for method System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
+Total bytes of code 604, prolog size 32, PerfScore 610.00, instruction count 166, allocated bytes for code 604 (MethodHash=d237cddd) for method System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:

-6 (-0.41%) : 125664.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.Canon]:TryInsert(BenchmarksGame.ByteString,System.Canon,ubyte):ubyte:this (Tier1)

@@ -14,30 +14,30 @@
 ;  V02 arg2         [V02,T09] (  4,  3   )     ref  ->  r15         class-hnd single-def <System.__Canon>
 ;  V03 arg3         [V03,T11] (  6,  2   )   ubyte  ->  r14         single-def
 ;  V04 loc0         [V04,T02] ( 14,  7.05)     ref  ->  r12         class-hnd <<unknown class>>
-;  V05 loc1         [V05,T15] (  5,  2   )     ref  ->  [rbp-0xA0]  class-hnd single-def <<unknown class>>
-;  V06 loc2         [V06,T16] (  7,  1.57)     int  ->  [rbp-0x3C]  spill-single-def
+;  V05 loc1         [V05,T15] (  5,  2   )     ref  ->  [rbp-0x90]  class-hnd single-def <<unknown class>>
+;  V06 loc2         [V06,T16] (  8,  1.62)     int  ->  [rbp-0x3C]  spill-single-def
 ;  V07 loc3         [V07,T17] (  7,  1.57)     int  ->  [rbp-0x40] 
-;  V08 loc4         [V08,T14] (  5,  2.05)   byref  ->  [rbp-0xA8] 
+;  V08 loc4         [V08,T14] (  5,  2.05)   byref  ->  [rbp-0x98] 
 ;  V09 loc5         [V09,T13] ( 11,  2.57)     int  ->  [rbp-0x44] 
 ;  V10 loc6         [V10,T07] (  6,  5   )     int  ->  r14        
 ;  V11 loc7         [V11,T08] (  5,  5   )   byref  ->  r12         single-def
 ;  V12 loc8         [V12,T12] (  3,  3   )     int  ->  r14        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref   
-;  V15 tmp2         [V15,T33] (  3,  0   )     int  ->  rcx        
+;  V15 tmp2         [V15,T32] (  3,  0   )     int  ->  rcx        
 ;* V16 tmp3         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp4         [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp5         [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp6         [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V21 tmp8         [V21,T34] (  3,  0   )     int  ->  rcx         "Inline return value spill temp"
+;  V21 tmp8         [V21,T33] (  3,  0   )     int  ->  rcx         "Inline return value spill temp"
 ;  V22 tmp9         [V22,T19] (  6,  1.22)     int  ->  rdi         "Inline stloc first use temp"
-;  V23 tmp10        [V23,T29] (  8,  0   )     int  ->  rcx         "Inline stloc first use temp"
+;  V23 tmp10        [V23,T28] (  8,  0   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V24 tmp11        [V24    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V25 tmp12        [V25,T30] (  4,  0   )     ref  ->  [rbp-0xB0]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-;  V26 tmp13        [V26,T35] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V27 tmp14        [V27,T39] (  2,  0   )    long  ->  r10         "Inlining Arg"
-;  V28 tmp15        [V28,T31] (  4,  0   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
+;  V25 tmp12        [V25,T29] (  4,  0   )     ref  ->  [rbp-0xA0]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V26 tmp13        [V26,T34] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V27 tmp14        [V27,T38] (  2,  0   )    long  ->  r10         "Inlining Arg"
+;  V28 tmp15        [V28,T30] (  4,  0   )     int  ->  [rbp-0x48]  spill-single-def "Inline stloc first use temp"
 ;* V29 tmp16        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp17        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp18        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -57,22 +57,21 @@
 ;* V45 tmp32        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V34.Start (fldOffset=0x8)" P-INDEP
 ;* V46 tmp33        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V34.Length (fldOffset=0xc)" P-INDEP
 ;  V47 tmp34        [V47,T06] (  8,  5.22)     int  ->  r13         "V01.[012..016)"
-;  V48 tmp35        [V48,T03] (  3,  6   )   byref  ->  [rbp-0xB8]  spill-single-def "Spilling address for field-by-field copy"
+;  V48 tmp35        [V48,T03] (  3,  6   )   byref  ->  [rbp-0xA8]  spill-single-def "Spilling address for field-by-field copy"
 ;  V49 tmp36        [V49,T04] (  3,  6   )     ref  ->  rdi         single-def "arr expr"
 ;  V50 tmp37        [V50,T05] (  3,  6   )     int  ->  rsi         "index expr"
 ;  V51 tmp38        [V51,T20] (  3,  0.67)     ref  ->  rsi         single-def "arr expr"
 ;  V52 tmp39        [V52,T21] (  3,  0.67)     int  ->  rcx         "index expr"
-;  V53 tmp40        [V53,T32] (  3,  0   )     ref  ->  rdx         "arr expr"
+;  V53 tmp40        [V53,T31] (  3,  0   )     ref  ->  rdx         "arr expr"
 ;  V54 tmp41        [V54,T25] (  2,  0.19)     int  ->  rsi         "argument with side effect"
-;  V55 tmp42        [V55,T36] (  3,  0   )     int  ->  rdi         "index expr"
-;  V56 tmp43        [V56,T37] (  3,  0   )     int  ->  rdx         "index expr"
-;  V57 tmp44        [V57,T38] (  3,  0   )  struct (16) [rbp-0x80]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <BenchmarksGame.ByteString>
-;  V58 cse0         [V58,T18] (  4,  1.57)   byref  ->  [rbp-0xC0]  spill-single-def "CSE - moderate"
+;  V55 tmp42        [V55,T35] (  3,  0   )     int  ->  rdi         "index expr"
+;  V56 tmp43        [V56,T36] (  3,  0   )     int  ->  rdx         "index expr"
+;  V57 tmp44        [V57,T37] (  3,  0   )  struct (16) [rbp-0x80]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <BenchmarksGame.ByteString>
+;  V58 cse0         [V58,T18] (  4,  1.57)   byref  ->  [rbp-0xB0]  spill-single-def "CSE - moderate"
 ;  V59 cse1         [V59,T27] (  3,  0.14)     int  ->  [rbp-0x84]  spill-single-def "CSE - conservative"
-;  V60 cse2         [V60,T28] (  3,  0.05)    long  ->  [rbp-0x90]  spill-single-def "CSE - conservative"
-;  V61 cse3         [V61,T10] ( 10,  4.57)     int  ->  [rbp-0x94]  multi-def "CSE - aggressive"
+;  V60 cse2         [V60,T10] ( 10,  4.57)     int  ->  [rbp-0x88]  multi-def "CSE - aggressive"
 ;
-; Lcl frame size = 152
+; Lcl frame size = 136
 
 G_M56080_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -81,9 +80,9 @@ G_M56080_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 152
+       sub      rsp, 136
        vzeroupper 
-       lea      rbp, [rsp+0xC0]
+       lea      rbp, [rsp+0xB0]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x80], ymm8
        vmovdqa  xmmword ptr [rbp-0x60], xmm8
@@ -148,7 +147,7 @@ G_M56080_IG09:        ; bbWeight=0, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=
        mov      rsi, gword ptr [rbp-0x38]
        ; gcrRegs +[rsi]
        mov      rdx, qword ptr [rbp-0x30]
-       mov      gword ptr [rbp-0xA0], rax
+       mov      gword ptr [rbp-0x90], rax
        ; GC ptr vars +{V05}
        mov      rdi, rax
        ; gcrRegs +[rdi]
@@ -186,7 +185,7 @@ G_M56080_IG13:        ; bbWeight=0, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=
        mov      ecx, edi
                        ;; size=2 bbWeight=0 PerfScore 0.00
 G_M56080_IG14:        ; bbWeight=0, gcrefRegs=9009 {rax rbx r12 r15}, byrefRegs=0000 {}, byref
-       mov      gword ptr [rbp-0xA0], rax
+       mov      gword ptr [rbp-0x90], rax
        ; GC ptr vars +{V05}
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M56080_IG15:        ; bbWeight=0, gcVars=0000000000008000 {V05}, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, gcvars, byref, isz
@@ -196,17 +195,16 @@ G_M56080_IG15:        ; bbWeight=0, gcVars=0000000000008000 {V05}, gcrefRegs=900
        mov      dword ptr [rbp-0x40], r8d
        mov      r9, gword ptr [rbx+0x08]
        ; gcrRegs +[r9]
-       mov      gword ptr [rbp-0xB0], r9
+       mov      gword ptr [rbp-0xA0], r9
        ; GC ptr vars +{V25}
        mov      edi, dword ptr [r9+0x08]
        mov      r10, qword ptr [rbx+0x30]
        mov      r11d, ecx
-       mov      qword ptr [rbp-0x90], r11
        imul     r10, r11
        shr      r10, 32
        inc      r10
-       mov      esi, edi
-       imul     r10, rsi
+       mov      r11d, edi
+       imul     r10, r11
        shr      r10, 32
        mov      dword ptr [rbp-0x48], r10d
        mov      eax, ecx
@@ -221,10 +219,10 @@ G_M56080_IG15:        ; bbWeight=0, gcVars=0000000000008000 {V05}, gcrefRegs=900
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi r9]
        ; gcr arg pop 0
-                       ;; size=101 bbWeight=0 PerfScore 0.00
+                       ;; size=95 bbWeight=0 PerfScore 0.00
 G_M56080_IG16:        ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
        mov      r10d, dword ptr [rbp-0x48]
-       mov      r9, gword ptr [rbp-0xB0]
+       mov      r9, gword ptr [rbp-0xA0]
        ; gcrRegs +[r9]
        cmp      r10d, dword ptr [r9+0x08]
        jae      G_M56080_IG49
@@ -233,7 +231,7 @@ G_M56080_IG16:        ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000
        ; byrRegs +[rax]
        mov      edx, dword ptr [rax]
        dec      edx
-       cmp      gword ptr [rbp-0xA0], 0
+       cmp      gword ptr [rbp-0x90], 0
        jne      G_M56080_IG29
                        ;; size=47 bbWeight=0 PerfScore 0.00
 G_M56080_IG17:        ; bbWeight=1.52, gcVars=0000000000000000 {}, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0001 {rax}, gcvars, byref
@@ -248,7 +246,7 @@ G_M56080_IG18:        ; bbWeight=0.52, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
        shl      rdi, 5
        lea      rsi, bword ptr [r12+rdi+0x10]
        ; byrRegs +[rsi]
-       mov      bword ptr [rbp-0xC0], rsi
+       mov      bword ptr [rbp-0xB0], rsi
        ; GC ptr vars +{V58}
        mov      ecx, dword ptr [rbp-0x3C]
        cmp      dword ptr [rsi+0x08], ecx
@@ -256,8 +254,8 @@ G_M56080_IG18:        ; bbWeight=0.52, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
        jne      SHORT G_M56080_IG22
                        ;; size=29 bbWeight=0.52 PerfScore 4.58
 G_M56080_IG19:        ; bbWeight=0, gcVars=0000000000040000 {V58}, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0041 {rax rsi}, gcvars, byref
-       mov      dword ptr [rbp-0x94], r9d
-       mov      bword ptr [rbp-0xA8], rax
+       mov      dword ptr [rbp-0x88], r9d
+       mov      bword ptr [rbp-0x98], rax
        ; GC ptr vars +{V08}
                        ;; size=14 bbWeight=0 PerfScore 0.00
 G_M56080_IG20:        ; bbWeight=0, nogc, extend
@@ -275,11 +273,11 @@ G_M56080_IG21:        ; bbWeight=0, extend
        ; byrRegs -[rax]
        ; gcr arg pop 0
        test     eax, eax
-       mov      rax, bword ptr [rbp-0xA8]
+       mov      rax, bword ptr [rbp-0x98]
        ; byrRegs +[rax]
-       mov      rsi, bword ptr [rbp-0xC0]
+       mov      rsi, bword ptr [rbp-0xB0]
        ; byrRegs +[rsi]
-       mov      r9d, dword ptr [rbp-0x94]
+       mov      r9d, dword ptr [rbp-0x88]
        jne      G_M56080_IG26
                        ;; size=47 bbWeight=0 PerfScore 0.00
 G_M56080_IG22:        ; bbWeight=0.52, gcVars=0000000000040000 {V58}, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0041 {rax rsi}, gcvars, byref
@@ -365,7 +363,7 @@ G_M56080_IG29:        ; bbWeight=0, gcVars=0000000000008000 {V05}, gcrefRegs=900
        ; byrRegs +[rax]
        ; GC ptr vars +{V05 V15}
        mov      dword ptr [rbp-0x44], edx
-       mov      bword ptr [rbp-0xA8], rax
+       mov      bword ptr [rbp-0x98], rax
        ; GC ptr vars +{V08}
        mov      edi, 1
        ; GC ptr vars -{V15}
@@ -376,23 +374,23 @@ G_M56080_IG29:        ; bbWeight=0, gcVars=0000000000008000 {V05}, gcrefRegs=900
 G_M56080_IG30:        ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz
        mov      r9d, dword ptr [r12+0x08]
        mov      eax, r9d
-       mov      dword ptr [rbp-0x94], eax
+       mov      dword ptr [rbp-0x88], eax
        mov      r9d, dword ptr [rbp-0x44]
        cmp      eax, r9d
        jbe      G_M56080_IG35
        mov      edx, r9d
-       mov      rax, bword ptr [rbp-0xA8]
+       mov      rax, bword ptr [rbp-0x98]
        ; byrRegs +[rax]
-       mov      r9d, dword ptr [rbp-0x94]
-       mov      r10, gword ptr [rbp-0xA0]
+       mov      r9d, dword ptr [rbp-0x88]
+       mov      r10, gword ptr [rbp-0x90]
        ; gcrRegs +[r10]
        mov      esi, edx
        shl      rsi, 5
        mov      ecx, dword ptr [rbp-0x3C]
        cmp      dword ptr [r12+rsi+0x18], ecx
        jne      SHORT G_M56080_IG33
-       mov      dword ptr [rbp-0x94], r9d
-       mov      bword ptr [rbp-0xA8], rax
+       mov      dword ptr [rbp-0x88], r9d
+       mov      bword ptr [rbp-0x98], rax
        mov      dword ptr [rbp-0x44], edx
        mov      esi, edx
        shl      rsi, 5
@@ -408,7 +406,7 @@ G_M56080_IG32:        ; bbWeight=0, isz, extend
        mov      rcx, gword ptr [rbp-0x38]
        ; gcrRegs +[rcx]
        mov      r8, qword ptr [rbp-0x30]
-       mov      gword ptr [rbp-0xA0], r10
+       mov      gword ptr [rbp-0x90], r10
        mov      rdi, r10
        ; gcrRegs +[rdi]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
@@ -417,11 +415,11 @@ G_M56080_IG32:        ; bbWeight=0, isz, extend
        ; byrRegs -[rax]
        ; gcr arg pop 0
        test     eax, eax
-       mov      rax, bword ptr [rbp-0xA8]
+       mov      rax, bword ptr [rbp-0x98]
        ; byrRegs +[rax]
        mov      edx, dword ptr [rbp-0x44]
-       mov      r9d, dword ptr [rbp-0x94]
-       mov      r10, gword ptr [rbp-0xA0]
+       mov      r9d, dword ptr [rbp-0x88]
+       mov      r10, gword ptr [rbp-0x90]
        ; gcrRegs +[r10]
        jne      SHORT G_M56080_IG36
                        ;; size=67 bbWeight=0 PerfScore 0.00
@@ -434,9 +432,9 @@ G_M56080_IG33:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=9408 {
        inc      r8d
        cmp      r9d, r8d
        mov      dword ptr [rbp-0x44], edx
-       mov      bword ptr [rbp-0xA8], rax
+       mov      bword ptr [rbp-0x98], rax
        ; GC ptr vars +{V08}
...

+8 (+0.27%) : 141376.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan1[System.String],ubyte):System.Buffers.SearchValues1System.String

@@ -11,12 +11,12 @@
 ;
 ;  V00 arg0         [V00,T17] (  3,  3   )  struct (16) [rbp-0x180]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def ptr <System.ReadOnlySpan`1[System.String]>
 ;  V01 arg1         [V01,T18] (  3,  3   )   ubyte  ->  rdx         ld-addr-op single-def
-;  V02 loc0         [V02,T82] (  8,  0   )     ref  ->  r13         class-hnd exact single-def <System.Collections.Generic.HashSet`1[System.String]>
+;  V02 loc0         [V02,T81] (  8,  0   )     ref  ->  r13         class-hnd exact single-def <System.Collections.Generic.HashSet`1[System.String]>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.Span`1[System.String]>
-;  V04 loc2         [V04,T97] (  4,  0   )     int  ->  [rbp-0x184]  ptr
+;  V04 loc2         [V04,T96] (  4,  0   )     int  ->  [rbp-0x184]  ptr
 ;  V05 loc3         [V05    ] (  4,  0   )     ref  ->  [rbp-0x190]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <System.Collections.Generic.HashSet`1[System.String]>
 ;  V06 loc4         [V06    ] (  3,  0   )  struct (160) [rbp-0xD0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op unsafe-buffer <System.Buffers.AhoCorasickBuilder>
-;  V07 loc5         [V07,T111] (  2,  0   )     ref  ->  rbx         class-hnd single-def <System.Buffers.SearchValues`1[System.String]>
+;  V07 loc5         [V07,T110] (  2,  0   )     ref  ->  rbx         class-hnd single-def <System.Buffers.SearchValues`1[System.String]>
 ;  V08 loc6         [V08,T33] (  6,  3   )     ref  ->  r15         class-hnd single-def <System.String>
 ;  V09 loc7         [V09    ] (  3,  3   )     ref  ->  [rbp-0x198]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <System.String>
 ;  V10 loc8         [V10    ] (  5,  4   )   ubyte  ->  [rbp-0x19C]  do-not-enreg[X] addr-exposed ld-addr-op
@@ -24,43 +24,43 @@
 ;  V12 loc10        [V12    ] (  2,  1   )   ubyte  ->  [rbp-0x1A4]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V13 loc11        [V13,T30] (  4,  3.80)     int  ->  r14         ld-addr-op
 ;* V14 loc12        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[System.String]>
-;  V15 loc13        [V15,T85] (  6,  0   )     int  ->  r12        
-;  V16 loc14        [V16,T100] (  3,  0   )     ref  ->  rsi         class-hnd <System.String>
+;  V15 loc13        [V15,T84] (  6,  0   )     int  ->  r12        
+;  V16 loc14        [V16,T99] (  3,  0   )     ref  ->  rsi         class-hnd <System.String>
 ;  V17 loc15        [V17    ] (  3,  0   )  struct (24) [rbp-0x1C0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.HashSet`1+Enumerator[System.String]>
-;  V18 loc16        [V18,T112] (  2,  0   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def ptr <System.String>
+;  V18 loc16        [V18,T111] (  2,  0   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def ptr <System.String>
 ;  V19 tmp0         [V19,T72] (  1,  1   )     int  ->  [rbp-0x1C4]  do-not-enreg[V] "GSCookie dummy"
 ;# V20 OutArgs      [V20    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V21 tmp2         [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp3         [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp4         [V23,T113] (  2,  0   )     ref  ->  r14        
-;  V24 tmp5         [V24,T101] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
-;  V25 tmp6         [V25,T98] (  4,  0   )     int  ->  r12         "impSpillLclRefs"
+;  V23 tmp4         [V23,T112] (  2,  0   )     ref  ->  r14        
+;  V24 tmp5         [V24,T100] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+;  V25 tmp6         [V25,T97] (  4,  0   )     int  ->  r12         "impSpillLclRefs"
 ;* V26 tmp7         [V26    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V27 tmp8         [V27,T114] (  2,  0   )     ref  ->  rcx         class-hnd single-def "dup spill" <<unknown class>>
+;  V27 tmp8         [V27,T113] (  2,  0   )     ref  ->  rcx         class-hnd single-def "dup spill" <<unknown class>>
 ;* V28 tmp9         [V28    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[System.String]>
 ;* V29 tmp10        [V29    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[System.String]>
-;  V30 tmp11        [V30,T90] (  4,  0   )     ref  ->  rcx        
+;  V30 tmp11        [V30,T89] (  4,  0   )     ref  ->  rcx        
 ;  V31 tmp12        [V31    ] (  2,  0   )  struct (160) [rbp-0x170]  do-not-enreg[XS] must-init addr-exposed ld-addr-op unsafe-buffer "NewObj constructor temp" <System.Buffers.AhoCorasickBuilder>
 ;* V32 tmp13        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret "spilled call-like call argument" <System.ReadOnlySpan`1[System.String]>
 ;* V33 tmp14        [V33    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret "spilled call-like call argument" <System.ReadOnlySpan`1[System.String]>
-;  V34 tmp15        [V34,T91] (  4,  0   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V35 tmp16        [V35,T92] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+;  V34 tmp15        [V34,T90] (  4,  0   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V35 tmp16        [V35,T91] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
 ;* V36 tmp17        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.String]>
 ;* V37 tmp18        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V38 tmp19        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.String>
 ;* V39 tmp20        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V40 tmp21        [V40,T22] (  5,  4   )     ref  ->  r14         class-hnd "Inlining Arg" <System.String>
 ;* V41 tmp22        [V41    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V42 tmp23        [V42,T87] (  5,  0   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <System.String>
+;  V42 tmp23        [V42,T86] (  5,  0   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V43 tmp24        [V43    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V44 tmp25        [V44    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V45 tmp26        [V45    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V46 tmp27        [V46    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V47 tmp28        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp29        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V49 tmp30        [V49,T135] (  2,  0   )     int  ->  r13         "Inlining Arg"
-;  V50 tmp31        [V50,T115] (  2,  0   )   byref  ->  r12         single-def "Inlining Arg"
-;  V51 tmp32        [V51,T116] (  2,  0   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle]>
+;  V49 tmp30        [V49,T134] (  2,  0   )     int  ->  r13         "Inlining Arg"
+;  V50 tmp31        [V50,T114] (  2,  0   )   byref  ->  r12         single-def "Inlining Arg"
+;  V51 tmp32        [V51,T115] (  2,  0   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle]>
 ;* V52 tmp33        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V53 tmp34        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V54 tmp35        [V54    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -68,10 +68,10 @@
 ;* V56 tmp37        [V56    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp38        [V57    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V58 tmp39        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V59 tmp40        [V59,T136] (  2,  0   )     int  ->  r15         "Inlining Arg"
-;  V60 tmp41        [V60,T117] (  2,  0   )   byref  ->  r13         single-def "Inlining Arg"
-;  V61 tmp42        [V61,T137] (  2,  0   )     int  ->  [rbp-0x1C8]  spill-single-def ptr "Inlining Arg"
-;  V62 tmp43        [V62,T118] (  2,  0   )   byref  ->  r12         single-def "Inlining Arg"
+;  V59 tmp40        [V59,T135] (  2,  0   )     int  ->  r15         "Inlining Arg"
+;  V60 tmp41        [V60,T116] (  2,  0   )   byref  ->  r13         single-def "Inlining Arg"
+;  V61 tmp42        [V61,T136] (  2,  0   )     int  ->  [rbp-0x1C8]  spill-single-def ptr "Inlining Arg"
+;  V62 tmp43        [V62,T117] (  2,  0   )   byref  ->  r12         single-def "Inlining Arg"
 ;* V63 tmp44        [V63    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[System.String]>
 ;* V64 tmp45        [V64    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.String]>
 ;  V65 tmp46        [V65,T16] (  5,  5   )     int  ->  r12         "Inline stloc first use temp"
@@ -88,8 +88,8 @@
 ;  V76 tmp57        [V76,T55] (  2,  2   )   byref  ->  r10         single-def
 ;  V77 tmp58        [V77,T51] (  3,  2   )     int  ->  r11        
 ;* V78 tmp59        [V78    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.String]>
-;  V79 tmp60        [V79,T88] (  5,  0   )     int  ->  r15         "Inline stloc first use temp"
-;  V80 tmp61        [V80,T93] (  4,  0   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.String>
+;  V79 tmp60        [V79,T87] (  5,  0   )     int  ->  r15         "Inline stloc first use temp"
+;  V80 tmp61        [V80,T92] (  4,  0   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.String>
 ;* V81 tmp62        [V81    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp63        [V82    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V83 tmp64        [V83    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
@@ -119,9 +119,9 @@
 ;* V107 tmp88       [V107    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V108 tmp89       [V108    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V109 tmp90       [V109    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V110 tmp91       [V110,T138] (  2,  0   )     int  ->  r12         "Inlining Arg"
-;  V111 tmp92       [V111,T119] (  2,  0   )   byref  ->  r14         "Inlining Arg"
-;  V112 tmp93       [V112,T120] (  2,  0   )     ref  ->  rdx         class-hnd exact "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
+;  V110 tmp91       [V110,T137] (  2,  0   )     int  ->  r12         "Inlining Arg"
+;  V111 tmp92       [V111,T118] (  2,  0   )   byref  ->  r14         "Inlining Arg"
+;  V112 tmp93       [V112,T119] (  2,  0   )     ref  ->  rdx         class-hnd exact "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
 ;* V113 tmp94       [V113    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V114 tmp95       [V114    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V115 tmp96       [V115    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -132,12 +132,12 @@
 ;  V120 tmp101      [V120,T04] ( 18, 11.82)     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V121 tmp102      [V121,T48] (  3,  0   )     ref  ->  r14         class-hnd "Inlining Arg" <System.Collections.Generic.HashSet`1[System.String]>
 ;  V122 tmp103      [V122,T21] (  6,  4   )   ubyte  ->  rbx         "Inlining Arg"
-;  V123 tmp104      [V123,T94] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-;  V124 tmp105      [V124,T95] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+;  V123 tmp104      [V123,T93] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+;  V124 tmp105      [V124,T94] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
 ;* V125 tmp106      [V125    ] (  0,  0   )     int  ->  zero-ref   
 ;* V126 tmp107      [V126    ] (  0,  0   )     int  ->  zero-ref   
-;  V127 tmp108      [V127,T121] (  2,  0   )     ref  ->  r15        
-;  V128 tmp109      [V128,T96] (  4,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+;  V127 tmp108      [V127,T120] (  2,  0   )     ref  ->  r15        
+;  V128 tmp109      [V128,T95] (  4,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
 ;  V129 tmp110      [V129,T38] (  3,  2.96)     int  ->  rdi         "Inline stloc first use temp"
 ;  V130 tmp111      [V130,T39] (  4,  2.83)   ubyte  ->  rcx         "Inlining Arg"
 ;  V131 tmp112      [V131,T40] (  4,  2.83)   ubyte  ->   r8         "Inlining Arg"
@@ -145,9 +145,9 @@
 ;* V133 tmp114      [V133    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def ptr "Inline stloc first use temp" <System.Buffers.SearchValues`1[System.String]>
 ;  V134 tmp115      [V134,T62] (  6,  1.17)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V135 tmp116      [V135    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V136 tmp117      [V136,T102] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V137 tmp118      [V137,T103] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V138 tmp119      [V138,T104] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V136 tmp117      [V136,T101] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V137 tmp118      [V137,T102] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V138 tmp119      [V138,T103] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V139 tmp120      [V139,T05] ( 10, 11.65)     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V140 tmp121      [V140    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V141 tmp122      [V141,T09] ( 16,  6.51)     int  ->  registers   ld-addr-op ptr "Inline ldloca(s) first use temp"
@@ -202,9 +202,9 @@
 ;* V190 tmp171      [V190    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V191 tmp172      [V191    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V192 tmp173      [V192    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V193 tmp174      [V193,T99] (  4,  0   )     int  ->  r15         "Inlining Arg"
-;  V194 tmp175      [V194,T105] (  3,  0   )   byref  ->  r14         single-def "Inlining Arg"
-;  V195 tmp176      [V195,T139] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V193 tmp174      [V193,T98] (  4,  0   )     int  ->  r15         "Inlining Arg"
+;  V194 tmp175      [V194,T104] (  3,  0   )   byref  ->  r14         single-def "Inlining Arg"
+;  V195 tmp176      [V195,T138] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
 ;  V196 tmp177      [V196    ] (  2,  0   )  ushort  ->  [rbp-0x1D0]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V197 tmp178      [V197    ] (  2,  0   )  ushort  ->  [rbp-0x1D4]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V198 tmp179      [V198    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -228,10 +228,10 @@
 ;* V216 tmp197      [V216    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V217 tmp198      [V217    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V218 tmp199      [V218    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "Inlining Arg"
-;  V219 tmp200      [V219,T86] (  6,  0   )  ushort  ->  r12         "Inlining Arg"
-;  V220 tmp201      [V220,T89] (  5,  0   )  ushort  ->  [rbp-0x1D8]  spill-single-def "Inlining Arg"
+;  V219 tmp200      [V219,T85] (  6,  0   )  ushort  ->  r12         "Inlining Arg"
+;  V220 tmp201      [V220,T88] (  5,  0   )  ushort  ->  [rbp-0x1D8]  spill-single-def "Inlining Arg"
 ;* V221 tmp202      [V221    ] (  0,  0   )     int  ->  zero-ref    ptr "Inlining Arg"
-;  V222 tmp203      [V222,T108] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V222 tmp203      [V222,T107] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
 ;* V223 tmp204      [V223    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V224 tmp205      [V224    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V225 tmp206      [V225    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "Inline stloc first use temp"
@@ -260,12 +260,12 @@
 ;* V248 tmp229      [V248    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V249 tmp230      [V249    ] (  1,  0   )     int  ->  [rbp-0x1E0]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V250 tmp231      [V250    ] (  1,  0   )     int  ->  [rbp-0x1E8]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;  V251 tmp232      [V251,T106] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V251 tmp232      [V251,T105] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V252 tmp233      [V252    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[System.String]>
-;  V253 tmp234      [V253,T84] (  7,  0   )   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-;  V254 tmp235      [V254,T83] (  8,  0   )     int  ->  r14         "field V03._length (fldOffset=0x8)" P-INDEP
-;  V255 tmp236      [V255,T122] (  2,  0   )   byref  ->  r14         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V256 tmp237      [V256,T109] (  3,  0   )     int  ->  r15         "field V14._length (fldOffset=0x8)" P-INDEP
+;  V253 tmp234      [V253,T83] (  7,  0   )   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+;  V254 tmp235      [V254,T82] (  8,  0   )     int  ->  r14         "field V03._length (fldOffset=0x8)" P-INDEP
+;  V255 tmp236      [V255,T121] (  2,  0   )   byref  ->  r14         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V256 tmp237      [V256,T108] (  3,  0   )     int  ->  r15         "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V257 tmp238      [V257    ] (  2,  0   )     ref  ->  [rbp-0x1C0]  do-not-enreg[X] addr-exposed "field V17._hashSet (fldOffset=0x0)" P-DEP
 ;  V258 tmp239      [V258    ] (  3,  0   )     ref  ->  [rbp-0x1B8]  do-not-enreg[X] addr-exposed ptr "field V17._current (fldOffset=0x8)" P-DEP
 ;  V259 tmp240      [V259    ] (  2,  0   )     int  ->  [rbp-0x1B0]  do-not-enreg[X] addr-exposed "field V17._version (fldOffset=0x10)" P-DEP
@@ -274,30 +274,30 @@
 ;* V262 tmp243      [V262    ] (  0,  0   )     int  ->  zero-ref    ptr "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V263 tmp244      [V263    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V29._reference (fldOffset=0x0)" P-INDEP
 ;* V264 tmp245      [V264    ] (  0,  0   )     int  ->  zero-ref    ptr "field V29._length (fldOffset=0x8)" P-INDEP
-;  V265 tmp246      [V265,T123] (  2,  0   )   byref  ->  rsi         "field V32._reference (fldOffset=0x0)" P-INDEP
-;  V266 tmp247      [V266,T140] (  2,  0   )     int  ->  rdx         "field V32._length (fldOffset=0x8)" P-INDEP
-;  V267 tmp248      [V267,T124] (  2,  0   )   byref  ->  rdi         "field V33._reference (fldOffset=0x0)" P-INDEP
-;  V268 tmp249      [V268,T141] (  2,  0   )     int  ->  rsi         "field V33._length (fldOffset=0x8)" P-INDEP
+;  V265 tmp246      [V265,T122] (  2,  0   )   byref  ->  rsi         "field V32._reference (fldOffset=0x0)" P-INDEP
+;  V266 tmp247      [V266,T139] (  2,  0   )     int  ->  rdx         "field V32._length (fldOffset=0x8)" P-INDEP
+;  V267 tmp248      [V267,T123] (  2,  0   )   byref  ->  rdi         "field V33._reference (fldOffset=0x0)" P-INDEP
+;  V268 tmp249      [V268,T140] (  2,  0   )     int  ->  rsi         "field V33._length (fldOffset=0x8)" P-INDEP
 ;  V269 tmp250      [V269,T56] (  2,  2   )   byref  ->  r13         single-def "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V270 tmp251      [V270,T73] (  0,  0   )     int  ->  zero-ref    ptr "field V36._length (fldOffset=0x8)" P-INDEP
 ;* V271 tmp252      [V271    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V272 tmp253      [V272    ] (  0,  0   )     int  ->  zero-ref    ptr "field V41._length (fldOffset=0x8)" P-INDEP
-;  V273 tmp254      [V273,T125] (  2,  0   )   byref  ->  r13         "field V43._reference (fldOffset=0x0)" P-INDEP
-;  V274 tmp255      [V274,T142] (  2,  0   )     int  ->  r15         "field V43._length (fldOffset=0x8)" P-INDEP
-;  V275 tmp256      [V275,T126] (  2,  0   )   byref  ->  rdx         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-;  V276 tmp257      [V276,T143] (  2,  0   )     int  ->  rcx         "field V44._length (fldOffset=0x8)" P-INDEP
-;  V277 tmp258      [V277,T127] (  2,  0   )   byref  ->  rdi         "field V46._reference (fldOffset=0x0)" P-INDEP
-;  V278 tmp259      [V278,T144] (  2,  0   )     int  ->  rsi         "field V46._length (fldOffset=0x8)" P-INDEP
-;  V279 tmp260      [V279,T128] (  2,  0   )   byref  ->  rdi         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
-;  V280 tmp261      [V280,T145] (  2,  0   )     int  ->  rsi         "field V47._length (fldOffset=0x8)" P-INDEP
+;  V273 tmp254      [V273,T124] (  2,  0   )   byref  ->  r13         "field V43._reference (fldOffset=0x0)" P-INDEP
+;  V274 tmp255      [V274,T141] (  2,  0   )     int  ->  r15         "field V43._length (fldOffset=0x8)" P-INDEP
+;  V275 tmp256      [V275,T125] (  2,  0   )   byref  ->  rdx         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;  V276 tmp257      [V276,T142] (  2,  0   )     int  ->  rcx         "field V44._length (fldOffset=0x8)" P-INDEP
+;  V277 tmp258      [V277,T126] (  2,  0   )   byref  ->  rdi         "field V46._reference (fldOffset=0x0)" P-INDEP
+;  V278 tmp259      [V278,T143] (  2,  0   )     int  ->  rsi         "field V46._length (fldOffset=0x8)" P-INDEP
+;  V279 tmp260      [V279,T127] (  2,  0   )   byref  ->  rdi         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+;  V280 tmp261      [V280,T144] (  2,  0   )     int  ->  rsi         "field V47._length (fldOffset=0x8)" P-INDEP
 ;* V281 tmp262      [V281    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V48._reference (fldOffset=0x0)" P-INDEP
 ;* V282 tmp263      [V282    ] (  0,  0   )     int  ->  zero-ref    "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V283 tmp264      [V283    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V52._reference (fldOffset=0x0)" P-INDEP
 ;* V284 tmp265      [V284    ] (  0,  0   )     int  ->  zero-ref    ptr "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V285 tmp266      [V285    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V53._reference (fldOffset=0x0)" P-INDEP
 ;* V286 tmp267      [V286    ] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
-;  V287 tmp268      [V287,T129] (  2,  0   )   byref  ->  r13         single-def "field V57._reference (fldOffset=0x0)" P-INDEP
-;  V288 tmp269      [V288,T146] (  2,  0   )     int  ->  r15         "field V57._length (fldOffset=0x8)" P-INDEP
+;  V287 tmp268      [V287,T128] (  2,  0   )   byref  ->  r13         single-def "field V57._reference (fldOffset=0x0)" P-INDEP
+;  V288 tmp269      [V288,T145] (  2,  0   )     int  ->  r15         "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V289 tmp270      [V289    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V290 tmp271      [V290    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;  V291 tmp272      [V291,T36] (  3,  2   )   byref  ->  r13         single-def "field V63._reference (fldOffset=0x0)" P-INDEP
@@ -308,10 +308,10 @@
 ;* V296 tmp277      [V296    ] (  0,  0   )     int  ->  zero-ref    ptr "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V297 tmp278      [V297    ] (  0,  0   )   byref  ->  zero-ref    "field V74._reference (fldOffset=0x0)" P-INDEP
 ;* V298 tmp279      [V298    ] (  0,  0   )     int  ->  zero-ref    "field V74._length (fldOffset=0x8)" P-INDEP
-;  V299 tmp280      [V299,T130] (  2,  0   )   byref  ->  r13         single-def "field V78._reference (fldOffset=0x0)" P-INDEP
-;* V300 tmp281      [V300,T150] (  0,  0   )     int  ->  zero-ref    ptr "field V78._length (fldOffset=0x8)" P-INDEP
-;  V301 tmp282      [V301,T131] (  2,  0   )   byref  ->  rdi         "field V81._reference (fldOffset=0x0)" P-INDEP
-;  V302 tmp283      [V302,T147] (  2,  0   )     int  ->  rsi         "field V81._length (fldOffset=0x8)" P-INDEP
+;  V299 tmp280      [V299,T129] (  2,  0   )   byref  ->  r13         single-def "field V78._reference (fldOffset=0x0)" P-INDEP
+;* V300 tmp281      [V300,T149] (  0,  0   )     int  ->  zero-ref    ptr "field V78._length (fldOffset=0x8)" P-INDEP
+;  V301 tmp282      [V301,T130] (  2,  0   )   byref  ->  rdi         "field V81._reference (fldOffset=0x0)" P-INDEP
+;  V302 tmp283      [V302,T146] (  2,  0   )     int  ->  rsi         "field V81._length (fldOffset=0x8)" P-INDEP
 ;  V303 tmp284      [V303,T11] (  3,  6   )   byref  ->  rdi         "field V82._reference (fldOffset=0x0)" P-INDEP
 ;  V304 tmp285      [V304,T13] (  3,  6   )     int  ->  rsi         "field V82._length (fldOffset=0x8)" P-INDEP
 ;  V305 tmp286      [V305,T57] (  2,  2   )   byref  ->  rdi         "field V83._reference (fldOffset=0x0)" P-INDEP
@@ -332,10 +332,10 @@
 ;* V320 tmp301      [V320    ] (  0,  0   )     int  ->  zero-ref    ptr "field V99._length (fldOffset=0x8)" P-INDEP
...

+14 (+0.44%) : 137835.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+d24[System.Canon]:MoveNext():this (Tier1-OSR)

@@ -30,13 +30,13 @@
 ;* V17 tmp6         [V17    ] (  0,    0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V18 tmp7         [V18    ] (  0,    0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[System.__Canon]>
 ;* V19 tmp8         [V19    ] (  0,    0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-;  V20 tmp9         [V20,T101] (  2,    0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V20 tmp9         [V20,T100] (  2,    0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;  V21 tmp10        [V21,T55] (  3,  599.94)     ref  ->  rdi         class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
 ;* V22 tmp11        [V22    ] (  0,    0   )  struct (16) zero-ref    do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
-;  V23 tmp12        [V23,T94] (  3,    0   )    long  ->  rsi         "spilling helperCall"
+;  V23 tmp12        [V23,T93] (  3,    0   )    long  ->  rsi         "spilling helperCall"
 ;* V24 tmp13        [V24    ] (  0,    0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V25 tmp14        [V25    ] (  0,    0   )     int  ->  zero-ref    "dup spill"
-;  V26 tmp15        [V26,T95] (  3,    0   )    long  ->  rsi         "spilling helperCall"
+;  V26 tmp15        [V26,T94] (  3,    0   )    long  ->  rsi         "spilling helperCall"
 ;  V27 tmp16        [V27,T67] (  4,  199.98)     ref  ->  r14         "guarded devirt return temp"
 ;  V28 tmp17        [V28,T54] (  5,  599.94)     ref  ->  rdi         "guarded devirt arg temp"
 ;  V29 tmp18        [V29,T59] (  3,  399.96)     int  ->  rsi         "guarded devirt arg temp"
@@ -48,7 +48,7 @@
 ;* V35 tmp24        [V35    ] (  0,    0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V36 tmp25        [V36    ] (  0,    0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V37 tmp26        [V37    ] (  0,    0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Threading.CancellationToken>
-;* V38 tmp27        [V38,T102] (  0,    0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;* V38 tmp27        [V38,T101] (  0,    0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V39 tmp28        [V39    ] (  0,    0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V40 tmp29        [V40    ] (  0,    0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V41 tmp30        [V41    ] (  0,    0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
@@ -109,7 +109,7 @@
 ;* V96 tmp85        [V96    ] (  0,    0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V97 tmp86        [V97    ] (  0,    0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp87        [V98    ] (  0,    0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V99 tmp88        [V99,T103] (  0,    0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V99 tmp88        [V99,T102] (  0,    0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
 ;* V100 tmp89       [V100    ] (  0,    0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Exception>
 ;* V101 tmp90       [V101    ] (  0,    0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.Exception[]>
 ;* V102 tmp91       [V102,T72] (  0,    0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -150,7 +150,7 @@
 ;* V137 tmp126      [V137    ] (  0,    0   )     ref  ->  zero-ref    single-def
 ;* V138 tmp127      [V138    ] (  0,    0   )     ref  ->  zero-ref    single-def
 ;* V139 tmp128      [V139,T70] (  0,    0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V140 tmp129      [V140,T89] (  0,    0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V140 tmp129      [V140,T88] (  0,    0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V141 tmp130      [V141    ] (  0,    0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V142 tmp131      [V142    ] (  0,    0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V143 tmp132      [V143    ] (  0,    0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -229,7 +229,7 @@
 ;* V216 tmp205      [V216    ] (  0,    0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V217 tmp206      [V217    ] (  0,    0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V218 tmp207      [V218    ] (  0,    0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V219 tmp208      [V219,T104] (  0,    0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V219 tmp208      [V219,T103] (  0,    0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
 ;* V220 tmp209      [V220    ] (  0,    0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Exception>
 ;* V221 tmp210      [V221    ] (  0,    0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.Exception[]>
 ;* V222 tmp211      [V222,T73] (  0,    0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -270,7 +270,7 @@
 ;* V257 tmp246      [V257    ] (  0,    0   )     ref  ->  zero-ref    single-def
 ;* V258 tmp247      [V258    ] (  0,    0   )     ref  ->  zero-ref    single-def
 ;* V259 tmp248      [V259,T71] (  0,    0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V260 tmp249      [V260,T90] (  0,    0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V260 tmp249      [V260,T89] (  0,    0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V261 tmp250      [V261    ] (  0,    0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V262 tmp251      [V262    ] (  0,    0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V263 tmp252      [V263    ] (  0,    0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -377,7 +377,7 @@
 ;* V364 tmp353      [V364    ] (  0,    0   )     ref  ->  zero-ref   
 ;  V365 tmp354      [V365,T49] (  2,  799.12)     ref  ->  rax        
 ;  V366 tmp355      [V366,T01] (  9,25971.54)     int  ->  [rbp-0x3C]  "Inline stloc first use temp"
-;  V367 tmp356      [V367,T91] (  3,    0   )     ref  ->  r12         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V367 tmp356      [V367,T90] (  3,    0   )     ref  ->  r12         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V368 tmp357      [V368    ] (  0,    0   )     ref  ->  zero-ref   
 ;  V369 tmp358      [V369,T50] (  2,  799.12)     ref  ->  rsi        
 ;* V370 tmp359      [V370    ] (  0,    0   )     ref  ->  zero-ref   
@@ -397,11 +397,11 @@
 ;* V384 tmp373      [V384    ] (  0,    0   )     ref  ->  zero-ref   
 ;  V385 tmp374      [V385,T52] (  2,  799.12)     ref  ->  rax        
 ;  V386 tmp375      [V386,T02] (  9,25971.54)     int  ->  [rbp-0x40]  "Inline stloc first use temp"
-;  V387 tmp376      [V387,T92] (  3,    0   )     ref  ->  r15         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V387 tmp376      [V387,T91] (  3,    0   )     ref  ->  r15         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V388 tmp377      [V388    ] (  0,    0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V389 tmp378      [V389    ] (  0,    0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V390 tmp379      [V390    ] (  0,    0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V391 tmp380      [V391,T93] (  3,    0   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V391 tmp380      [V391,T92] (  3,    0   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V392 tmp381      [V392    ] (  0,    0   )     ref  ->  zero-ref    single-def "field V33._source (fldOffset=0x0)" P-INDEP
 ;* V393 tmp382      [V393    ] (  0,    0   )     ref  ->  zero-ref    single-def "field V35._source (fldOffset=0x0)" P-INDEP
 ;* V394 tmp383      [V394    ] (  0,    0   )     ref  ->  zero-ref    single-def "field V37._source (fldOffset=0x0)" P-INDEP
@@ -436,7 +436,7 @@
 ;  V423 tmp412      [V423,T42] (  3, 1198.69)     ref  ->  r14         "field V315._source (fldOffset=0x0)" P-INDEP
 ;* V424 tmp413      [V424    ] (  0,    0   )     ref  ->  zero-ref    "field V317._source (fldOffset=0x0)" P-INDEP
 ;* V425 tmp414      [V425,T74] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
-;* V426 tmp415      [V426,T105] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
+;* V426 tmp415      [V426,T104] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V427 tmp416      [V427    ] (  0,    0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V428 tmp417      [V428    ] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V429 tmp418      [V429    ] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
@@ -444,12 +444,12 @@
 ;* V431 tmp420      [V431    ] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V432 tmp421      [V432    ] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V433 tmp422      [V433,T75] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
-;* V434 tmp423      [V434,T106] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
+;* V434 tmp423      [V434,T105] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V435 tmp424      [V435    ] (  0,    0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V436 tmp425      [V436    ] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
-;  V437 tmp426      [V437,T109] (  2,    0   )    long  ->  rdi         "argument with side effect"
+;  V437 tmp426      [V437,T108] (  2,    0   )    long  ->  rdi         "argument with side effect"
 ;  V438 tmp427      [V438,T07] (  2,12785.99)     ref  ->  rdi         "argument with side effect"
-;  V439 tmp428      [V439,T107] (  2,    0   )     ref  ->  rsi         "argument with side effect"
+;  V439 tmp428      [V439,T106] (  2,    0   )     ref  ->  rsi         "argument with side effect"
 ;* V440 tmp429      [V440    ] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V441 tmp430      [V441    ] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V442 tmp431      [V442,T23] (  3, 2397.37)     ref  ->  rdx         "arr expr"
@@ -460,7 +460,7 @@
 ;  V447 tmp436      [V447,T57] (  3,  599.34)     ref  ->  rsi         "arr expr"
 ;  V448 tmp437      [V448,T03] (  3,19178.98)     ref  ->  rdi         "arr expr"
 ;  V449 tmp438      [V449,T08] (  2,12785.99)     ref  ->  rdi         "argument with side effect"
-;  V450 tmp439      [V450,T108] (  2,    0   )     ref  ->  rsi         "argument with side effect"
+;  V450 tmp439      [V450,T107] (  2,    0   )     ref  ->  rsi         "argument with side effect"
 ;* V451 tmp440      [V451    ] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V452 tmp441      [V452    ] (  0,    0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V453 PSPSym      [V453,T86] (  1,    1   )    long  ->  [rbp-0xA0]  do-not-enreg[V] "PSPSym"
@@ -469,12 +469,11 @@
 ;  V456 cse2        [V456,T33] (  4, 1598.25)     int  ->  [rbp-0x48]  spill-single-def "CSE - conservative"
 ;  V457 cse3        [V457,T43] (  3, 1198.69)     ref  ->  rdi         "CSE - conservative"
 ;  V458 cse4        [V458,T10] (  9,11986.86)     int  ->  [rbp-0x4C]  spill-single-def "CSE - moderate"
-;  V459 cse5        [V459,T88] ( 18,    0   )     ref  ->  rsi         multi-def "CSE - conservative"
-;  V460 rat0        [V460,T96] (  3,    0   )    long  ->  rdi         "runtime lookup"
-;  V461 rat1        [V461,T97] (  3,    0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V462 rat2        [V462,T98] (  3,    0   )    long  ->  rsi         "fgMakeTemp is creating a new local variable"
-;  V463 rat3        [V463,T99] (  3,    0   )    long  ->  rdi         "spilling expr"
-;  V464 rat4        [V464,T100] (  3,    0   )    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V459 rat0        [V459,T95] (  3,    0   )    long  ->  rdi         "runtime lookup"
+;  V460 rat1        [V460,T96] (  3,    0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V461 rat2        [V461,T97] (  3,    0   )    long  ->  rsi         "fgMakeTemp is creating a new local variable"
+;  V462 rat3        [V462,T98] (  3,    0   )    long  ->  rdi         "spilling expr"
+;  V463 rat4        [V463,T99] (  3,    0   )    long  ->  rsi         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 120
 
@@ -1564,16 +1563,16 @@ G_M48189_IG73:        ; bbWeight=0, gcVars=00000000000000000400000000000800 {V00
        ; gcrRegs +[r12-r15]
        ; GC ptr vars +{V327}
        mov      dword ptr [rbp-0x38], edi
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        mov      edi, dword ptr [rbp-0x38]
        jmp      G_M48189_IG43
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+                       ;; size=37 bbWeight=0 PerfScore 0.00
 G_M48189_IG74:        ; bbWeight=0, gcVars=00000000000000000400000000000000 {V00}, gcrefRegs=B000 {r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[r14]
        ; GC ptr vars -{V327}
@@ -1595,15 +1594,15 @@ G_M48189_IG75:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=11 bbWeight=0 PerfScore 0.00
 G_M48189_IG76:        ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs +[r14-r15]
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        jmp      G_M48189_IG27
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+                       ;; size=31 bbWeight=0 PerfScore 0.00
 G_M48189_IG77:        ; bbWeight=0, gcrefRegs=9000 {r12 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r14] +[r12]
        mov      rdi, 0xD1FFAB1E
@@ -1822,7 +1821,7 @@ G_M48189_IG96:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 3204, prolog size 97, PerfScore 344022.06, instruction count 696, allocated bytes for code 3204 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
+Total bytes of code 3218, prolog size 97, PerfScore 344022.06, instruction count 696, allocated bytes for code 3218 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:

+14 (+0.46%) : 140481.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+d__24[ubyte]:MoveNext():this (Tier1-OSR)

@@ -27,7 +27,7 @@
 ;* V14 tmp4         [V14    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[ubyte]>
 ;* V15 tmp5         [V15    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[ubyte]>
 ;* V16 tmp6         [V16    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-;  V17 tmp7         [V17,T92] (  2,        0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V17 tmp7         [V17,T91] (  2,        0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;  V18 tmp8         [V18,T57] (  3,      599.94)     ref  ->  rax         class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[ubyte[]]>
 ;* V19 tmp9         [V19    ] (  0,        0   )  struct (16) zero-ref    do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
 ;* V20 tmp10        [V20    ] (  0,        0   )     int  ->  zero-ref    "dup spill"
@@ -132,7 +132,7 @@
 ;* V119 tmp109      [V119    ] (  0,        0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V120 tmp110      [V120    ] (  0,        0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V121 tmp111      [V121    ] (  0,        0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Threading.CancellationToken>
-;* V122 tmp112      [V122,T99] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;* V122 tmp112      [V122,T98] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V123 tmp113      [V123    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V124 tmp114      [V124    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V125 tmp115      [V125    ] (  0,        0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
@@ -192,7 +192,7 @@
 ;* V179 tmp169      [V179    ] (  0,        0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V180 tmp170      [V180    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V181 tmp171      [V181    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V182 tmp172      [V182,T93] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V182 tmp172      [V182,T92] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
 ;* V183 tmp173      [V183    ] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Exception>
 ;* V184 tmp174      [V184    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.Exception[]>
 ;* V185 tmp175      [V185,T75] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -233,7 +233,7 @@
 ;* V220 tmp210      [V220    ] (  0,        0   )     ref  ->  zero-ref    single-def
 ;* V221 tmp211      [V221    ] (  0,        0   )     ref  ->  zero-ref    single-def
 ;* V222 tmp212      [V222,T74] (  0,        0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V223 tmp213      [V223,T88] (  0,        0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V223 tmp213      [V223,T87] (  0,        0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V224 tmp214      [V224    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V225 tmp215      [V225    ] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V226 tmp216      [V226    ] (  0,        0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -384,7 +384,7 @@
 ;* V371 tmp361      [V371    ] (  0,        0   )     ref  ->  zero-ref   
 ;  V372 tmp362      [V372,T51] (  2,      799.12)     ref  ->  rax        
 ;  V373 tmp363      [V373,T03] (  9,    25971.54)     int  ->  [rbp-0x38]  "Inline stloc first use temp"
-;  V374 tmp364      [V374,T89] (  3,        0   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V374 tmp364      [V374,T88] (  3,        0   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V375 tmp365      [V375    ] (  0,        0   )     ref  ->  zero-ref   
 ;  V376 tmp366      [V376,T52] (  2,      799.12)     ref  ->  rsi        
 ;* V377 tmp367      [V377    ] (  0,        0   )     ref  ->  zero-ref   
@@ -404,14 +404,14 @@
 ;* V391 tmp381      [V391    ] (  0,        0   )     ref  ->  zero-ref   
 ;  V392 tmp382      [V392,T54] (  2,      799.12)     ref  ->  rax        
 ;  V393 tmp383      [V393,T04] (  9,    25971.54)     int  ->  r12         "Inline stloc first use temp"
-;  V394 tmp384      [V394,T90] (  3,        0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V394 tmp384      [V394,T89] (  3,        0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V395 tmp385      [V395    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V396 tmp386      [V396    ] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V397 tmp387      [V397    ] (  0,        0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V398 tmp388      [V398    ] (  0,        0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V399 tmp389      [V399    ] (  0,        0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V400 tmp390      [V400    ] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V401 tmp391      [V401,T91] (  3,        0   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V401 tmp391      [V401,T90] (  3,        0   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V402 tmp392      [V402    ] (  0,        0   )     ref  ->  zero-ref    single-def "field V38._source (fldOffset=0x0)" P-INDEP
 ;* V403 tmp393      [V403    ] (  0,        0   )     ref  ->  zero-ref    "field V45._source (fldOffset=0x0)" P-INDEP
 ;* V404 tmp394      [V404    ] (  0,        0   )     ref  ->  zero-ref    single-def "field V54._source (fldOffset=0x0)" P-INDEP
@@ -460,11 +460,11 @@
 ;  V447 tmp437      [V447,T44] (  3,     1198.69)     ref  ->  r15         "field V322._source (fldOffset=0x0)" P-INDEP
 ;* V448 tmp438      [V448    ] (  0,        0   )     ref  ->  zero-ref    "field V324._source (fldOffset=0x0)" P-INDEP
 ;* V449 tmp439      [V449,T76] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
-;* V450 tmp440      [V450,T94] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
+;* V450 tmp440      [V450,T93] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V451 tmp441      [V451    ] (  0,        0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V452 tmp442      [V452    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V453 tmp443      [V453,T09] (  2,    12785.99)     ref  ->  rdi         "argument with side effect"
-;  V454 tmp444      [V454,T95] (  2,        0   )     ref  ->  rsi         "argument with side effect"
+;  V454 tmp444      [V454,T94] (  2,        0   )     ref  ->  rsi         "argument with side effect"
 ;* V455 tmp445      [V455    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V456 tmp446      [V456    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V457 tmp447      [V457,T25] (  3,     2397.37)     ref  ->  rcx         "arr expr"
@@ -475,11 +475,11 @@
 ;  V462 tmp452      [V462,T59] (  3,      599.34)     ref  ->  rsi         "arr expr"
 ;  V463 tmp453      [V463,T05] (  3,    19178.99)     ref  ->  rdi         "arr expr"
 ;  V464 tmp454      [V464,T10] (  2,    12785.99)     ref  ->  rdi         "argument with side effect"
-;  V465 tmp455      [V465,T96] (  2,        0   )     ref  ->  rsi         "argument with side effect"
+;  V465 tmp455      [V465,T95] (  2,        0   )     ref  ->  rsi         "argument with side effect"
 ;* V466 tmp456      [V466    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V467 tmp457      [V467    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
-;  V468 tmp458      [V468,T97] (  2,        0   )     ref  ->  rsi         "argument with side effect"
-;  V469 tmp459      [V469,T98] (  2,        0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V468 tmp458      [V468,T96] (  2,        0   )     ref  ->  rsi         "argument with side effect"
+;  V469 tmp459      [V469,T97] (  2,        0   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V470 PSPSym      [V470,T85] (  1,        1   )    long  ->  [rbp-0x70]  do-not-enreg[V] "PSPSym"
 ;  V471 cse0        [V471,T20] (  5,     4794.75)     int  ->  [rbp-0x3C]  spill-single-def "CSE - moderate"
 ;  V472 cse1        [V472,T22] (  3,     3995.62)     int  ->  r15         "CSE - moderate"
@@ -487,7 +487,6 @@
 ;  V474 cse3        [V474,T45] (  3,     1198.69)     ref  ->  rdi         "CSE - conservative"
 ;  V475 cse4        [V475,T01] (  3,870568359.17)     int  ->  rdx         "CSE - aggressive"
 ;  V476 cse5        [V476,T12] (  9,    11986.87)     int  ->  [rbp-0x40]  spill-single-def "CSE - moderate"
-;  V477 cse6        [V477,T87] ( 18,        0   )     ref  ->  rsi         multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 72
 
@@ -1493,15 +1492,15 @@ G_M6180_IG68:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M6180_IG69:        ; bbWeight=0, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx r12-r13 r15]
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        jmp      G_M6180_IG42
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+                       ;; size=31 bbWeight=0 PerfScore 0.00
 G_M6180_IG70:        ; bbWeight=0, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r12 r15] +[r14]
        mov      rdi, 0xD1FFAB1E
@@ -1522,15 +1521,15 @@ G_M6180_IG71:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=11 bbWeight=0 PerfScore 0.00
 G_M6180_IG72:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx r15]
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        jmp      G_M6180_IG26
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+                       ;; size=31 bbWeight=0 PerfScore 0.00
 G_M6180_IG73:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx r15]
        xor      edi, edi
@@ -1754,7 +1753,7 @@ G_M6180_IG91:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 3011, prolog size 81, PerfScore 1306174534.94, instruction count 652, allocated bytes for code 3011 (MethodHash=ca43e7db) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
+Total bytes of code 3025, prolog size 81, PerfScore 1306174534.94, instruction count 652, allocated bytes for code 3025 (MethodHash=ca43e7db) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:

+21 (+1.24%) : 141386.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues1System.String

@@ -19,17 +19,17 @@
 ;  V07 loc2         [V07,T18] (  5,  3   )     ref  ->  rax         class-hnd <System.Buffers.SearchValues`1[System.String]>
 ;  V08 loc3         [V08,T19] (  3,  2.96)     int  ->  rdx        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T48] (  4,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-;  V11 tmp2         [V11,T49] (  4,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+;  V10 tmp1         [V10,T47] (  4,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+;  V11 tmp2         [V11,T48] (  4,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T63] (  2,  0   )     ref  ->  r15        
-;  V15 tmp6         [V15,T50] (  4,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+;  V14 tmp5         [V14,T62] (  2,  0   )     ref  ->  r15        
+;  V15 tmp6         [V15,T49] (  4,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
 ;  V16 tmp7         [V16,T28] (  6,  1.17)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V18 tmp9         [V18,T53] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V19 tmp10        [V19,T54] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V20 tmp11        [V20,T55] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V18 tmp9         [V18,T52] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V19 tmp10        [V19,T53] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V20 tmp11        [V20,T54] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V21 tmp12        [V21,T04] ( 10, 11.66)     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V23 tmp14        [V23,T08] ( 16,  6.51)     int  ->  [rbp-0x2C]  ld-addr-op "Inline ldloca(s) first use temp"
@@ -84,9 +84,9 @@
 ;* V72 tmp63        [V72    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V73 tmp64        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V74 tmp65        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V75 tmp66        [V75,T51] (  4,  0   )     int  ->  r13         "Inlining Arg"
-;  V76 tmp67        [V76,T56] (  3,  0   )   byref  ->  r12         single-def "Inlining Arg"
-;  V77 tmp68        [V77,T64] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V75 tmp66        [V75,T50] (  4,  0   )     int  ->  r13         "Inlining Arg"
+;  V76 tmp67        [V76,T55] (  3,  0   )   byref  ->  r12         single-def "Inlining Arg"
+;  V77 tmp68        [V77,T63] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
 ;  V78 tmp69        [V78    ] (  2,  0   )  ushort  ->  [rbp-0x34]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V79 tmp70        [V79    ] (  2,  0   )  ushort  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V80 tmp71        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -110,10 +110,10 @@
 ;* V98 tmp89        [V98    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V99 tmp90        [V99    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V100 tmp91       [V100    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V101 tmp92       [V101,T44] (  6,  0   )  ushort  ->  [rbp-0x3C]  spill-single-def "Inlining Arg"
-;  V102 tmp93       [V102,T46] (  5,  0   )  ushort  ->  [rbp-0x40]  spill-single-def "Inlining Arg"
+;  V101 tmp92       [V101,T43] (  6,  0   )  ushort  ->  [rbp-0x3C]  spill-single-def "Inlining Arg"
+;  V102 tmp93       [V102,T45] (  5,  0   )  ushort  ->  [rbp-0x40]  spill-single-def "Inlining Arg"
 ;* V103 tmp94       [V103    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V104 tmp95       [V104,T61] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V104 tmp95       [V104,T60] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
 ;* V105 tmp96       [V105    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V106 tmp97       [V106    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V107 tmp98       [V107    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inline stloc first use temp"
@@ -142,17 +142,17 @@
 ;* V130 tmp121      [V130    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V131 tmp122      [V131,T37] (  6,  0.75)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V132 tmp123      [V132    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V133 tmp124      [V133,T57] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V134 tmp125      [V134,T58] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V135 tmp126      [V135,T59] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V133 tmp124      [V133,T56] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V134 tmp125      [V134,T57] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V135 tmp126      [V135,T58] (  3,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V136 tmp127      [V136,T26] (  3,  2.26)     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V137 tmp128      [V137    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V138 tmp129      [V138    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V139 tmp130      [V139    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V140 tmp131      [V140    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V141 tmp132      [V141,T52] (  4,  0   )     int  ->  r13         "Inlining Arg"
-;  V142 tmp133      [V142,T60] (  3,  0   )   byref  ->  r12         single-def "Inlining Arg"
-;  V143 tmp134      [V143,T65] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V141 tmp132      [V141,T51] (  4,  0   )     int  ->  r13         "Inlining Arg"
+;  V142 tmp133      [V142,T59] (  3,  0   )   byref  ->  r12         single-def "Inlining Arg"
+;  V143 tmp134      [V143,T64] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
 ;  V144 tmp135      [V144    ] (  2,  0   )  ushort  ->  [rbp-0x44]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V145 tmp136      [V145    ] (  2,  0   )  ushort  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V146 tmp137      [V146    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -176,10 +176,10 @@
 ;* V164 tmp155      [V164    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V165 tmp156      [V165    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V166 tmp157      [V166    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V167 tmp158      [V167,T45] (  6,  0   )  ushort  ->  [rbp-0x4C]  spill-single-def "Inlining Arg"
-;  V168 tmp159      [V168,T47] (  5,  0   )  ushort  ->  [rbp-0x50]  spill-single-def "Inlining Arg"
+;  V167 tmp158      [V167,T44] (  6,  0   )  ushort  ->  [rbp-0x4C]  spill-single-def "Inlining Arg"
+;  V168 tmp159      [V168,T46] (  5,  0   )  ushort  ->  [rbp-0x50]  spill-single-def "Inlining Arg"
 ;* V169 tmp160      [V169    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V170 tmp161      [V170,T62] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V170 tmp161      [V170,T61] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
 ;* V171 tmp162      [V171    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V172 tmp163      [V172    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V173 tmp164      [V173    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inline stloc first use temp"
@@ -276,7 +276,6 @@
 ;* V264 tmp255      [V264    ] (  0,  0   )   byref  ->  zero-ref    "field V196._reference (fldOffset=0x0)" P-INDEP
 ;* V265 tmp256      [V265    ] (  0,  0   )     int  ->  zero-ref    "field V196._length (fldOffset=0x8)" P-INDEP
 ;  V266 cse0        [V266,T09] ( 13,  6.49)     int  ->  r13         "CSE - aggressive"
-;  V267 cse1        [V267,T43] (  9,  0   )     ref  ->  rsi         multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 56
 
@@ -515,16 +514,16 @@ G_M46798_IG34:        ; bbWeight=0.58, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
 G_M46798_IG35:        ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
        mov      dword ptr [rbp-0x30], eax
        mov      dword ptr [rbp-0x2C], edi
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        mov      eax, dword ptr [rbp-0x30]
        mov      edi, dword ptr [rbp-0x2C]
-                       ;; size=31 bbWeight=0 PerfScore 0.00
+                       ;; size=38 bbWeight=0 PerfScore 0.00
 G_M46798_IG36:        ; bbWeight=0.58, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz
        cmp      edi, eax
        jne      SHORT G_M46798_IG38
@@ -532,16 +531,16 @@ G_M46798_IG36:        ; bbWeight=0.58, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0
 G_M46798_IG37:        ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
        mov      dword ptr [rbp-0x30], eax
        mov      dword ptr [rbp-0x2C], edi
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        mov      eax, dword ptr [rbp-0x30]
        mov      edi, dword ptr [rbp-0x2C]
-                       ;; size=31 bbWeight=0 PerfScore 0.00
+                       ;; size=38 bbWeight=0 PerfScore 0.00
 G_M46798_IG38:        ; bbWeight=0.58, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref, isz
        test     eax, eax
        jle      SHORT G_M46798_IG41
@@ -890,15 +889,15 @@ G_M46798_IG60:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
                        ;; size=5 bbWeight=0 PerfScore 0.00
 G_M46798_IG61:        ; bbWeight=0, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx r12 r15]
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        jmp      G_M46798_IG44
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+                       ;; size=31 bbWeight=0 PerfScore 0.00
 G_M46798_IG62:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r12]
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]
@@ -1055,7 +1054,7 @@ RWD00     dd  7F7FFFFFh       ; 3.40282e+38
 RWD04      dd  3FC00000h       ;       1.5
 
 
-; Total bytes of code 1696, prolog size 31, PerfScore 169.18, instruction count 445, allocated bytes for code 1696 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
+Total bytes of code 1717, prolog size 31, PerfScore 169.18, instruction count 445, allocated bytes for code 1717 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
 ; ============================================================
 
 Unwind Info:

coreclr_tests.run.linux.x64.checked.mch

-12 (-2.20%) : 420678.dasm - System.Resources.ResourceFallbackManager+d__5:MoveNext():ubyte:this (Tier1)

@@ -23,20 +23,20 @@
 ;  V11 tmp8         [V11,T09] (  4,  3   )     ref  ->  r15        
 ;* V12 tmp9         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <System.String>
 ;* V13 tmp10        [V13    ] (  0,  0   )     ref  ->  zero-ref   
-;  V14 tmp11        [V14,T17] (  5,  0   )     ref  ->  r15        
+;  V14 tmp11        [V14,T16] (  6,  0   )     ref  ->  r15        
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.String>
 ;* V16 tmp13        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V17 tmp14        [V17,T22] (  2,  0   )     ref  ->  r15         class-hnd exact "dup spill" <System.String>
-;  V18 tmp15        [V18,T19] (  4,  0   )     ref  ->  r15        
+;  V17 tmp14        [V17,T21] (  2,  0   )     ref  ->  rsi         class-hnd exact "dup spill" <System.String>
+;  V18 tmp15        [V18,T18] (  5,  0   )     ref  ->  rsi        
 ;  V19 tmp16        [V19,T06] (  2,  4   )     ref  ->  rsi         class-hnd exact "dup spill" <System.String>
 ;  V20 tmp17        [V20,T10] (  4,  3   )     ref  ->  rsi        
 ;* V21 tmp18        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <System.String>
 ;* V22 tmp19        [V22    ] (  0,  0   )     ref  ->  zero-ref   
-;  V23 tmp20        [V23,T18] (  5,  0   )     ref  ->  r14        
+;  V23 tmp20        [V23,T17] (  6,  0   )     ref  ->  r14        
 ;* V24 tmp21        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.String>
 ;* V25 tmp22        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V26 tmp23        [V26,T23] (  2,  0   )     ref  ->  r14         class-hnd exact "dup spill" <System.String>
-;  V27 tmp24        [V27,T20] (  4,  0   )     ref  ->  r14        
+;  V26 tmp23        [V26,T22] (  2,  0   )     ref  ->  rsi         class-hnd exact "dup spill" <System.String>
+;  V27 tmp24        [V27,T19] (  5,  0   )     ref  ->  rsi        
 ;  V28 tmp25        [V28,T14] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V29 tmp26        [V29,T07] (  2,  4   )   byref  ->  rdi         "impAppendStmt"
 ;* V30 tmp27        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -44,11 +44,10 @@
 ;* V32 tmp29        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp30        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp31        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V35 tmp32        [V35,T21] (  3,  0   )     ref  ->  rdi         "argument with side effect"
+;  V35 tmp32        [V35,T20] (  3,  0   )     ref  ->  rdi         "argument with side effect"
 ;  V36 cse0         [V36,T11] (  3,  3   )     ref  ->  r14         "CSE - moderate"
 ;  V37 cse1         [V37,T15] (  3,  2.00)     int  ->  rdx         "CSE - moderate"
 ;  V38 cse2         [V38,T13] (  3,  3   )    long  ->  r13         "CSE - moderate"
-;  V39 cse3         [V39,T16] (  8,  0   )     ref  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 0
 
@@ -67,7 +66,7 @@ G_M61925_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      r15, gword ptr [rbx+0x10]
        ; gcrRegs +[r15]
        cmp      edi, 3
-       ja       G_M61925_IG27
+       ja       G_M61925_IG23
        lea      rsi, [reloc @RWD00]
        mov      esi, dword ptr [rsi+4*rdi]
        lea      rax, G_M61925_IG02
@@ -89,7 +88,7 @@ G_M61925_IG04:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        mov      r14, gword ptr [r15+0x10]
        ; gcrRegs +[r14]
        test     r14, r14
-       je       G_M61925_IG21
+       je       G_M61925_IG17
        mov      rdi, gword ptr [rbx+0x18]
        ; gcrRegs +[rdi]
        mov      r13, 0xD1FFAB1E      ; System.Globalization.CultureInfo
@@ -107,48 +106,43 @@ G_M61925_IG05:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000
        mov      rdi, gword ptr [r15+0x10]
        ; gcrRegs +[rdi]
        mov      r15, r14
-       jmp      SHORT G_M61925_IG11
+       jmp      SHORT G_M61925_IG09
                        ;; size=22 bbWeight=0 PerfScore 0.00
 G_M61925_IG06:        ; bbWeight=1, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax r15]
        mov      r15, gword ptr [rdi+0x48]
        ; gcrRegs +[r15]
        test     r15, r15
-       jne      SHORT G_M61925_IG10
+       jne      SHORT G_M61925_IG08
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M61925_IG07:        ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG07:        ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r15]
        mov      rsi, gword ptr [rdi+0x30]
        ; gcrRegs +[rsi]
-       mov      r15, gword ptr [rsi+0x18]
+       mov      rsi, gword ptr [rsi+0x18]
+       mov      rax, 0xD1FFAB1E
+       ; gcrRegs +[rax]
+       test     rsi, rsi
+       cmove    rsi, rax
+       mov      r15, rsi
        ; gcrRegs +[r15]
        test     r15, r15
-       jne      SHORT G_M61925_IG08
-       mov      r15, 0xD1FFAB1E
-                       ;; size=23 bbWeight=0 PerfScore 0.00
-G_M61925_IG08:        ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       test     r15, r15
-       jne      SHORT G_M61925_IG09
-       mov      r15, 0xD1FFAB1E
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M61925_IG09:        ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
+       cmove    r15, rax
        lea      rdi, bword ptr [rdi+0x48]
        ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
        mov      rsi, r15
-       ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M61925_IG10:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+                       ;; size=47 bbWeight=0 PerfScore 0.00
+G_M61925_IG08:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      rdi, r14
        ; gcrRegs +[rdi]
        cmp      qword ptr [rdi], r13
-       je       SHORT G_M61925_IG14
+       je       SHORT G_M61925_IG12
                        ;; size=8 bbWeight=1 PerfScore 4.25
-G_M61925_IG11:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
+G_M61925_IG09:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r14]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
@@ -157,60 +151,51 @@ G_M61925_IG11:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000
        mov      rsi, rax
        ; gcrRegs +[rsi]
                        ;; size=13 bbWeight=0 PerfScore 0.00
-G_M61925_IG12:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref
+G_M61925_IG10:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        cmp      r15, rsi
-       je       G_M61925_IG24
+       je       G_M61925_IG20
                        ;; size=9 bbWeight=1 PerfScore 1.25
-G_M61925_IG13:        ; bbWeight=0.50, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG11:        ; bbWeight=0.50, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
        test     r15, r15
-       je       SHORT G_M61925_IG21
-       jmp      SHORT G_M61925_IG20
+       je       SHORT G_M61925_IG17
+       jmp      SHORT G_M61925_IG16
                        ;; size=7 bbWeight=0.50 PerfScore 1.63
-G_M61925_IG14:        ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG12:        ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi] +[rdi]
        mov      rsi, gword ptr [rdi+0x48]
        ; gcrRegs +[rsi]
        test     rsi, rsi
-       jne      SHORT G_M61925_IG18
+       jne      SHORT G_M61925_IG14
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M61925_IG15:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG13:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      rsi, gword ptr [rdi+0x30]
        ; gcrRegs +[rsi]
-       mov      r14, gword ptr [rsi+0x18]
+       mov      rsi, gword ptr [rsi+0x18]
+       mov      rax, 0xD1FFAB1E
+       ; gcrRegs +[rax]
+       test     rsi, rsi
+       cmove    rsi, rax
+       mov      r14, rsi
        ; gcrRegs +[r14]
        test     r14, r14
-       jne      SHORT G_M61925_IG16
-       mov      rsi, 0xD1FFAB1E
-       mov      r14, rsi
-                       ;; size=26 bbWeight=0 PerfScore 0.00
-G_M61925_IG16:        ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       test     r14, r14
-       jne      SHORT G_M61925_IG17
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       mov      r14, rsi
-                       ;; size=18 bbWeight=0 PerfScore 0.00
-G_M61925_IG17:        ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi]
+       cmove    r14, rax
        lea      rdi, bword ptr [rdi+0x48]
        ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
        mov      rsi, r14
-       ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
        mov      rsi, r14
        ; gcrRegs +[rsi]
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M61925_IG18:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+                       ;; size=50 bbWeight=0 PerfScore 0.00
+G_M61925_IG14:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r14]
-       jmp      SHORT G_M61925_IG12
+       jmp      SHORT G_M61925_IG10
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M61925_IG19:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG15:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
        lea      rdi, bword ptr [r15+0x0C]
        ; byrRegs +[rdi]
        add      edx, edx
@@ -221,18 +206,18 @@ G_M61925_IG19:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000
        ; gcrRegs -[r15]
        ; byrRegs -[rsi rdi]
        test     eax, eax
-       je       SHORT G_M61925_IG21
-       jmp      SHORT G_M61925_IG24
+       je       SHORT G_M61925_IG17
+       jmp      SHORT G_M61925_IG20
                        ;; size=22 bbWeight=1 PerfScore 7.25
-G_M61925_IG20:        ; bbWeight=0.50, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG16:        ; bbWeight=0.50, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi r15]
        test     rsi, rsi
-       je       SHORT G_M61925_IG21
+       je       SHORT G_M61925_IG17
        mov      edx, dword ptr [r15+0x08]
        cmp      edx, dword ptr [rsi+0x08]
-       je       SHORT G_M61925_IG19
+       je       SHORT G_M61925_IG15
                        ;; size=14 bbWeight=0.50 PerfScore 3.64
-G_M61925_IG21:        ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M61925_IG17:        ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi r15]
        mov      rsi, gword ptr [rbx+0x18]
        ; gcrRegs +[rsi]
@@ -243,11 +228,11 @@ G_M61925_IG21:        ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; byrRegs -[rdi]
        mov      dword ptr [rbx+0x20], 2
                        ;; size=20 bbWeight=0.67 PerfScore 3.00
-G_M61925_IG22:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M61925_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      eax, 1
                        ;; size=5 bbWeight=1 PerfScore 0.25
-G_M61925_IG23:        ; bbWeight=1, epilog, nogc, extend
+G_M61925_IG19:        ; bbWeight=1, epilog, nogc, extend
        pop      rbx
        pop      r13
        pop      r14
@@ -255,7 +240,7 @@ G_M61925_IG23:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=9 bbWeight=1 PerfScore 3.50
-G_M61925_IG24:        ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M61925_IG20:        ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
        call     [System.Globalization.CultureInfo:get_InvariantCulture():System.Globalization.CultureInfo]
...

-12 (-2.20%) : 414212.dasm - System.Resources.ResourceFallbackManager+d__5:MoveNext():ubyte:this (Tier1)

@@ -23,20 +23,20 @@
 ;  V11 tmp8         [V11,T09] (  4,  3   )     ref  ->  r15        
 ;* V12 tmp9         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <System.String>
 ;* V13 tmp10        [V13    ] (  0,  0   )     ref  ->  zero-ref   
-;  V14 tmp11        [V14,T17] (  5,  0   )     ref  ->  r15        
+;  V14 tmp11        [V14,T16] (  6,  0   )     ref  ->  r15        
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.String>
 ;* V16 tmp13        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V17 tmp14        [V17,T22] (  2,  0   )     ref  ->  r15         class-hnd exact "dup spill" <System.String>
-;  V18 tmp15        [V18,T19] (  4,  0   )     ref  ->  r15        
+;  V17 tmp14        [V17,T21] (  2,  0   )     ref  ->  rsi         class-hnd exact "dup spill" <System.String>
+;  V18 tmp15        [V18,T18] (  5,  0   )     ref  ->  rsi        
 ;  V19 tmp16        [V19,T06] (  2,  4   )     ref  ->  rsi         class-hnd exact "dup spill" <System.String>
 ;  V20 tmp17        [V20,T10] (  4,  3   )     ref  ->  rsi        
 ;* V21 tmp18        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <System.String>
 ;* V22 tmp19        [V22    ] (  0,  0   )     ref  ->  zero-ref   
-;  V23 tmp20        [V23,T18] (  5,  0   )     ref  ->  r14        
+;  V23 tmp20        [V23,T17] (  6,  0   )     ref  ->  r14        
 ;* V24 tmp21        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.String>
 ;* V25 tmp22        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V26 tmp23        [V26,T23] (  2,  0   )     ref  ->  r14         class-hnd exact "dup spill" <System.String>
-;  V27 tmp24        [V27,T20] (  4,  0   )     ref  ->  r14        
+;  V26 tmp23        [V26,T22] (  2,  0   )     ref  ->  rsi         class-hnd exact "dup spill" <System.String>
+;  V27 tmp24        [V27,T19] (  5,  0   )     ref  ->  rsi        
 ;  V28 tmp25        [V28,T14] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V29 tmp26        [V29,T07] (  2,  4   )   byref  ->  rdi         "impAppendStmt"
 ;* V30 tmp27        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -44,11 +44,10 @@
 ;* V32 tmp29        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp30        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp31        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V35 tmp32        [V35,T21] (  3,  0   )     ref  ->  rdi         "argument with side effect"
+;  V35 tmp32        [V35,T20] (  3,  0   )     ref  ->  rdi         "argument with side effect"
 ;  V36 cse0         [V36,T11] (  3,  3   )     ref  ->  r14         "CSE - moderate"
 ;  V37 cse1         [V37,T15] (  3,  2.40)     int  ->  rdx         "CSE - moderate"
 ;  V38 cse2         [V38,T13] (  3,  3   )    long  ->  r13         "CSE - moderate"
-;  V39 cse3         [V39,T16] (  8,  0   )     ref  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 0
 
@@ -67,7 +66,7 @@ G_M61925_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      r15, gword ptr [rbx+0x10]
        ; gcrRegs +[r15]
        cmp      edi, 3
-       ja       G_M61925_IG28
+       ja       G_M61925_IG24
        lea      rsi, [reloc @RWD00]
        mov      esi, dword ptr [rsi+4*rdi]
        lea      rax, G_M61925_IG02
@@ -89,7 +88,7 @@ G_M61925_IG04:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        mov      r14, gword ptr [r15+0x10]
        ; gcrRegs +[r14]
        test     r14, r14
-       je       G_M61925_IG22
+       je       G_M61925_IG18
        mov      rdi, gword ptr [rbx+0x18]
        ; gcrRegs +[rdi]
        mov      r13, 0xD1FFAB1E      ; System.Globalization.CultureInfo
@@ -107,48 +106,43 @@ G_M61925_IG05:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000
        mov      rdi, gword ptr [r15+0x10]
        ; gcrRegs +[rdi]
        mov      r15, r14
-       jmp      SHORT G_M61925_IG11
+       jmp      SHORT G_M61925_IG09
                        ;; size=22 bbWeight=0 PerfScore 0.00
 G_M61925_IG06:        ; bbWeight=1, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax r15]
        mov      r15, gword ptr [rdi+0x48]
        ; gcrRegs +[r15]
        test     r15, r15
-       jne      SHORT G_M61925_IG10
+       jne      SHORT G_M61925_IG08
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M61925_IG07:        ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG07:        ; bbWeight=0, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r15]
        mov      rsi, gword ptr [rdi+0x30]
        ; gcrRegs +[rsi]
-       mov      r15, gword ptr [rsi+0x18]
+       mov      rsi, gword ptr [rsi+0x18]
+       mov      rax, 0xD1FFAB1E
+       ; gcrRegs +[rax]
+       test     rsi, rsi
+       cmove    rsi, rax
+       mov      r15, rsi
        ; gcrRegs +[r15]
        test     r15, r15
-       jne      SHORT G_M61925_IG08
-       mov      r15, 0xD1FFAB1E
-                       ;; size=23 bbWeight=0 PerfScore 0.00
-G_M61925_IG08:        ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       test     r15, r15
-       jne      SHORT G_M61925_IG09
-       mov      r15, 0xD1FFAB1E
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M61925_IG09:        ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
+       cmove    r15, rax
        lea      rdi, bword ptr [rdi+0x48]
        ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
        mov      rsi, r15
-       ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M61925_IG10:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+                       ;; size=47 bbWeight=0 PerfScore 0.00
+G_M61925_IG08:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
        mov      rdi, r14
        ; gcrRegs +[rdi]
        cmp      qword ptr [rdi], r13
-       je       SHORT G_M61925_IG15
+       je       SHORT G_M61925_IG13
                        ;; size=8 bbWeight=1 PerfScore 4.25
-G_M61925_IG11:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
+G_M61925_IG09:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r14]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
@@ -157,62 +151,53 @@ G_M61925_IG11:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000
        mov      rsi, rax
        ; gcrRegs +[rsi]
                        ;; size=13 bbWeight=0 PerfScore 0.00
-G_M61925_IG12:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref
+G_M61925_IG10:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        cmp      r15, rsi
-       je       G_M61925_IG25
+       je       G_M61925_IG21
                        ;; size=9 bbWeight=1 PerfScore 1.25
-G_M61925_IG13:        ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG11:        ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
        test     r15, r15
-       je       SHORT G_M61925_IG22
+       je       SHORT G_M61925_IG18
                        ;; size=5 bbWeight=0.70 PerfScore 0.87
-G_M61925_IG14:        ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
-       jmp      SHORT G_M61925_IG21
+G_M61925_IG12:        ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+       jmp      SHORT G_M61925_IG17
                        ;; size=2 bbWeight=0.70 PerfScore 1.40
-G_M61925_IG15:        ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG13:        ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi] +[rdi]
        mov      rsi, gword ptr [rdi+0x48]
        ; gcrRegs +[rsi]
        test     rsi, rsi
-       jne      SHORT G_M61925_IG19
+       jne      SHORT G_M61925_IG15
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M61925_IG16:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG14:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        mov      rsi, gword ptr [rdi+0x30]
        ; gcrRegs +[rsi]
-       mov      r14, gword ptr [rsi+0x18]
+       mov      rsi, gword ptr [rsi+0x18]
+       mov      rax, 0xD1FFAB1E
+       ; gcrRegs +[rax]
+       test     rsi, rsi
+       cmove    rsi, rax
+       mov      r14, rsi
        ; gcrRegs +[r14]
        test     r14, r14
-       jne      SHORT G_M61925_IG17
-       mov      rsi, 0xD1FFAB1E
-       mov      r14, rsi
-                       ;; size=26 bbWeight=0 PerfScore 0.00
-G_M61925_IG17:        ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       test     r14, r14
-       jne      SHORT G_M61925_IG18
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       mov      r14, rsi
-                       ;; size=18 bbWeight=0 PerfScore 0.00
-G_M61925_IG18:        ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi]
+       cmove    r14, rax
        lea      rdi, bword ptr [rdi+0x48]
        ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
        mov      rsi, r14
-       ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
        mov      rsi, r14
        ; gcrRegs +[rsi]
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M61925_IG19:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+                       ;; size=50 bbWeight=0 PerfScore 0.00
+G_M61925_IG15:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r14]
-       jmp      SHORT G_M61925_IG12
+       jmp      SHORT G_M61925_IG10
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M61925_IG20:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG16:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
        lea      rdi, bword ptr [r15+0x0C]
        ; byrRegs +[rdi]
        add      edx, edx
@@ -223,18 +208,18 @@ G_M61925_IG20:        ; bbWeight=1, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000
        ; gcrRegs -[r15]
        ; byrRegs -[rsi rdi]
        test     eax, eax
-       je       SHORT G_M61925_IG22
-       jmp      SHORT G_M61925_IG25
+       je       SHORT G_M61925_IG18
+       jmp      SHORT G_M61925_IG21
                        ;; size=22 bbWeight=1 PerfScore 7.25
-G_M61925_IG21:        ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG17:        ; bbWeight=0.70, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi r15]
        test     rsi, rsi
-       je       SHORT G_M61925_IG22
+       je       SHORT G_M61925_IG18
        mov      edx, dword ptr [r15+0x08]
        cmp      edx, dword ptr [rsi+0x08]
-       je       SHORT G_M61925_IG20
+       je       SHORT G_M61925_IG16
                        ;; size=14 bbWeight=0.70 PerfScore 5.06
-G_M61925_IG22:        ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M61925_IG18:        ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi r15]
        mov      rsi, gword ptr [rbx+0x18]
        ; gcrRegs +[rsi]
@@ -245,11 +230,11 @@ G_M61925_IG22:        ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; byrRegs -[rdi]
        mov      dword ptr [rbx+0x20], 2
                        ;; size=20 bbWeight=0.67 PerfScore 3.00
-G_M61925_IG23:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M61925_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      eax, 1
                        ;; size=5 bbWeight=1 PerfScore 0.25
-G_M61925_IG24:        ; bbWeight=1, epilog, nogc, extend
+G_M61925_IG20:        ; bbWeight=1, epilog, nogc, extend
        pop      rbx
        pop      r13
        pop      r14
@@ -257,7 +242,7 @@ G_M61925_IG24:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=9 bbWeight=1 PerfScore 3.50
-G_M61925_IG25:        ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
...

-6 (-1.09%) : 257569.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)

@@ -42,11 +42,11 @@
 ;  V30 tmp28        [V30,T13] (  4,  1.20)     ref  ->  rax        
 ;* V31 tmp29        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V32 tmp30        [V32    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V33 tmp31        [V33,T21] (  5,  0.39)     ref  ->  r14        
+;  V33 tmp31        [V33,T21] (  6,  0.59)     ref  ->  r14        
 ;* V34 tmp32        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V35 tmp33        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V36 tmp34        [V36,T22] (  2,  0.39)     ref  ->  r14         class-hnd exact single-def "dup spill" <System.String>
-;  V37 tmp35        [V37,T24] (  4,  0.29)     ref  ->  r14        
+;  V36 tmp34        [V36,T25] (  2,  0.39)     ref  ->  rsi         class-hnd exact single-def "dup spill" <System.String>
+;  V37 tmp35        [V37,T22] (  5,  0.49)     ref  ->  rsi        
 ;* V38 tmp36        [V38,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V39 tmp37        [V39,T08] (  3,  1.71)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.String>
 ;  V40 tmp38        [V40,T05] (  8,  4.39)     ref  ->  rdi         class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
@@ -57,18 +57,17 @@
 ;  V45 tmp43        [V45,T14] (  4,  1.20)     ref  ->  rax        
 ;* V46 tmp44        [V46    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V47 tmp45        [V47    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V48 tmp46        [V48,T25] (  4,  0.29)     ref  ->  r14        
+;  V48 tmp46        [V48,T23] (  5,  0.49)     ref  ->  rsi        
 ;  V49 tmp47        [V49,T27] (  3,  0.29)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V50 tmp48        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V51 tmp49        [V51,T23] (  2,  0.39)     ref  ->  r14         class-hnd exact single-def "dup spill" <System.String>
-;  V52 tmp50        [V52,T26] (  4,  0.29)     ref  ->  r14        
+;  V51 tmp49        [V51,T26] (  2,  0.39)     ref  ->  rsi         class-hnd exact single-def "dup spill" <System.String>
+;  V52 tmp50        [V52,T24] (  5,  0.49)     ref  ->  rsi        
 ;* V53 tmp51        [V53,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V54 tmp52        [V54    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V55 tmp53        [V55    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V56 tmp54        [V56,T30] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
-;  V57 tmp55        [V57,T31] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V58 cse0         [V58,T29] (  8,  0   )     ref  ->  r14         multi-def "CSE - moderate"
-;  V59 cse1         [V59,T10] (  3,  1.52)     int  ->  rdx         "CSE - moderate"
+;  V56 tmp54        [V56,T29] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
+;  V57 tmp55        [V57,T30] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V58 cse0         [V58,T10] (  3,  1.52)     int  ->  rdx         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -140,10 +139,10 @@ G_M25213_IG09:        ; bbWeight=0.68, gcVars=0000000000000000 {}, gcrefRegs=800
                        ;; size=13 bbWeight=0.68 PerfScore 3.59
 G_M25213_IG10:        ; bbWeight=0.43, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
        test     rdi, rdi
-       je       G_M25213_IG51
+       je       G_M25213_IG43
                        ;; size=9 bbWeight=0.43 PerfScore 0.54
 G_M25213_IG11:        ; bbWeight=0.42, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
-       jmp      G_M25213_IG42
+       jmp      G_M25213_IG38
                        ;; size=5 bbWeight=0.42 PerfScore 0.85
 G_M25213_IG12:        ; bbWeight=0.68, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
        add      rdi, 12
@@ -157,7 +156,7 @@ G_M25213_IG12:        ; bbWeight=0.68, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
        ; byrRegs -[rsi rdi]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M25213_IG51
+       je       G_M25213_IG43
                        ;; size=24 bbWeight=0.68 PerfScore 3.42
 G_M25213_IG13:        ; bbWeight=0.68, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        cmp      gword ptr [rbx+0x30], 0
@@ -183,19 +182,19 @@ G_M25213_IG16:        ; bbWeight=0.01, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRe
 G_M25213_IG17:        ; bbWeight=0.15, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
        test     rsi, rsi
-       jne      G_M25213_IG51
+       jne      G_M25213_IG43
        jmp      SHORT G_M25213_IG19
                        ;; size=11 bbWeight=0.15 PerfScore 0.47
 G_M25213_IG18:        ; bbWeight=0.16, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rsi]
        test     eax, eax
-       je       G_M25213_IG51
+       je       G_M25213_IG43
                        ;; size=8 bbWeight=0.16 PerfScore 0.20
 G_M25213_IG19:        ; bbWeight=0.63, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        mov      rdi, gword ptr [rbx+0x20]
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       je       G_M25213_IG37
+       je       G_M25213_IG33
                        ;; size=13 bbWeight=0.63 PerfScore 2.05
 G_M25213_IG20:        ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
        mov      rsi, 0xD1FFAB1E      ; System.Globalization.CultureInfo
@@ -227,11 +226,11 @@ G_M25213_IG24:        ; bbWeight=0.95, epilog, nogc, extend
 G_M25213_IG25:        ; bbWeight=0.63, gcVars=0000000000000000 {}, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rax rbx r15]
        test     rax, rax
-       je       G_M25213_IG37
+       je       G_M25213_IG33
                        ;; size=9 bbWeight=0.63 PerfScore 0.79
 G_M25213_IG26:        ; bbWeight=0.45, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rax+0x08], 0
-       je       SHORT G_M25213_IG37
+       je       SHORT G_M25213_IG33
                        ;; size=6 bbWeight=0.45 PerfScore 1.80
 G_M25213_IG27:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
@@ -275,137 +274,113 @@ G_M25213_IG30:        ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0
        mov      rax, gword ptr [rdi+0x48]
        ; gcrRegs +[rax]
        test     rax, rax
-       jne      SHORT G_M25213_IG36
+       jne      SHORT G_M25213_IG32
                        ;; size=9 bbWeight=0.37 PerfScore 1.20
-G_M25213_IG31:        ; bbWeight=0.10, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG31:        ; bbWeight=0.10, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rsi, gword ptr [rdi+0x30]
        ; gcrRegs +[rsi]
-       mov      r14, gword ptr [rsi+0x18]
+       mov      rsi, gword ptr [rsi+0x18]
+       mov      rax, 0xD1FFAB1E
+       ; gcrRegs +[rax]
+       test     rsi, rsi
+       cmove    rsi, rax
+       mov      r14, rsi
        ; gcrRegs +[r14]
        test     r14, r14
-       jne      SHORT G_M25213_IG33
-                       ;; size=13 bbWeight=0.10 PerfScore 0.52
-G_M25213_IG32:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi r14]
-       mov      r14, 0xD1FFAB1E
-       ; gcrRegs +[r14]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG33:        ; bbWeight=0.10, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
-       test     r14, r14
-       jne      SHORT G_M25213_IG35
-                       ;; size=5 bbWeight=0.10 PerfScore 0.12
-G_M25213_IG34:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r14]
-       mov      r14, 0xD1FFAB1E
-       ; gcrRegs +[r14]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG35:        ; bbWeight=0.10, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
+       cmove    r14, rax
        lea      rdi, bword ptr [rdi+0x48]
        ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
        mov      rsi, r14
-       ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
        mov      rax, r14
        ; gcrRegs +[rax]
-                       ;; size=15 bbWeight=0.10 PerfScore 0.20
-G_M25213_IG36:        ; bbWeight=0.37, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+                       ;; size=50 bbWeight=0.10 PerfScore 0.74
+G_M25213_IG32:        ; bbWeight=0.37, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r14]
        jmp      G_M25213_IG25
                        ;; size=5 bbWeight=0.37 PerfScore 0.74
-G_M25213_IG37:        ; bbWeight=0.63, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M25213_IG33:        ; bbWeight=0.63, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rdi, gword ptr [r15+0x20]
        ; gcrRegs +[rdi]
        test     rdi, rdi
        je       G_M25213_IG23
                        ;; size=13 bbWeight=0.63 PerfScore 2.05
-G_M25213_IG38:        ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG34:        ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
        mov      rsi, 0xD1FFAB1E      ; System.Globalization.CultureInfo
        cmp      qword ptr [rdi], rsi
-       je       SHORT G_M25213_IG44
+       je       SHORT G_M25213_IG40
                        ;; size=15 bbWeight=0.37 PerfScore 1.57
-G_M25213_IG39:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
+G_M25213_IG35:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]System.Globalization.CultureInfo:get_Name():System.String:this
        ; gcrRegs -[rdi] +[rax]
        ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG40:        ; bbWeight=0.63, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+G_M25213_IG36:        ; bbWeight=0.63, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
        test     rax, rax
        je       G_M25213_IG23
                        ;; size=9 bbWeight=0.63 PerfScore 0.79
-G_M25213_IG41:        ; bbWeight=0.45, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
+G_M25213_IG37:        ; bbWeight=0.45, gcrefRegs=8009 {rax rbx r15}, byrefRegs=0000 {}, byref
        cmp      dword ptr [rax+0x08], 0
        je       G_M25213_IG23
        jmp      G_M25213_IG27
                        ;; size=15 bbWeight=0.45 PerfScore 2.71
-G_M25213_IG42:        ; bbWeight=0.42, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG38:        ; bbWeight=0.42, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax] +[rsi rdi]
        test     rsi, rsi
-       je       SHORT G_M25213_IG51
+       je       SHORT G_M25213_IG43
                        ;; size=5 bbWeight=0.42 PerfScore 0.53
-G_M25213_IG43:        ; bbWeight=0.42, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG39:        ; bbWeight=0.42, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
        mov      edx, dword ptr [rdi+0x08]
        cmp      edx, dword ptr [rsi+0x08]
        je       G_M25213_IG12
-       jmp      SHORT G_M25213_IG51
+       jmp      SHORT G_M25213_IG43
                        ;; size=14 bbWeight=0.42 PerfScore 3.36
-G_M25213_IG44:        ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG40:        ; bbWeight=0.37, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi]
        mov      rax, gword ptr [rdi+0x48]
        ; gcrRegs +[rax]
        test     rax, rax
-       jne      SHORT G_M25213_IG50
+       jne      SHORT G_M25213_IG42
                        ;; size=9 bbWeight=0.37 PerfScore 1.20
-G_M25213_IG45:        ; bbWeight=0.10, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG41:        ; bbWeight=0.10, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rsi, gword ptr [rdi+0x30]
        ; gcrRegs +[rsi]
-       mov      r14, gword ptr [rsi+0x18]
+       mov      rsi, gword ptr [rsi+0x18]
+       mov      rax, 0xD1FFAB1E
+       ; gcrRegs +[rax]
+       test     rsi, rsi
+       cmove    rsi, rax
+       test     rsi, rsi
+       cmove    rsi, rax
+       mov      r14, rsi
        ; gcrRegs +[r14]
-       test     r14, r14
-       jne      SHORT G_M25213_IG47
-                       ;; size=13 bbWeight=0.10 PerfScore 0.52
-G_M25213_IG46:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi r14]
-       mov      r14, 0xD1FFAB1E
-       ; gcrRegs +[r14]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG47:        ; bbWeight=0.10, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref, isz
-       test     r14, r14
-       jne      SHORT G_M25213_IG49
-                       ;; size=5 bbWeight=0.10 PerfScore 0.12
-G_M25213_IG48:        ; bbWeight=0, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r14]
-       mov      r14, 0xD1FFAB1E
-       ; gcrRegs +[r14]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG49:        ; bbWeight=0.10, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
        lea      rdi, bword ptr [rdi+0x48]
        ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
...

+11 (+2.27%) : 417893.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)

@@ -9,11 +9,11 @@
 ; 11 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 19, 10.45)     ref  ->  rbx         class-hnd single-def <Internal.TypeSystem.FieldDesc>
+;  V00 arg0         [V00,T00] ( 18, 10.45)     ref  ->  rbx         class-hnd single-def <Internal.TypeSystem.FieldDesc>
 ;  V01 arg1         [V01,T04] (  4,  4   )    long  ->  r13         single-def
 ;  V02 arg2         [V02,T01] (  9,  9   )     int  ->  r15         single-def
 ;  V03 arg3         [V03,T02] (  6,  6   )     int  ->  r14         single-def
-;  V04 loc0         [V04,T13] (  2,  2   )     ref  ->  rdi         class-hnd exact <Internal.TypeSystem.Ecma.EcmaField>
+;  V04 loc0         [V04,T14] (  2,  2   )     ref  ->  rdi         class-hnd exact <Internal.TypeSystem.Ecma.EcmaField>
 ;* V05 loc1         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;* V06 loc2         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,29 +23,29 @@
 ;* V11 tmp4         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
 ;* V12 tmp5         [V12    ] (  0,  0   )     int  ->  zero-ref    "guarded devirt return temp"
 ;* V13 tmp6         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
-;  V14 tmp7         [V14,T21] (  2,  0   )     int  ->  rax         "guarded devirt return temp"
+;  V14 tmp7         [V14,T22] (  2,  0   )     int  ->  rax         "guarded devirt return temp"
 ;* V15 tmp8         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
 ;* V16 tmp9         [V16,T23] (  0,  0   )     int  ->  zero-ref    "guarded devirt return temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
-;  V18 tmp11        [V18,T15] (  3,  2.00)     int  ->  rax         "Inline return value spill temp"
+;  V18 tmp11        [V18,T16] (  3,  2.00)     int  ->  rax         "Inline return value spill temp"
 ;  V19 tmp12        [V19,T08] (  3,  2.71)     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V20 tmp13        [V20    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V21 tmp14        [V21,T16] (  3,  2.00)     int  ->  rax         "Inline return value spill temp"
+;  V21 tmp14        [V21,T17] (  3,  2.00)     int  ->  rax         "Inline return value spill temp"
 ;  V22 tmp15        [V22,T09] (  3,  2.71)     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V23 tmp16        [V23    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V24 tmp17        [V24,T17] (  3,  2.00)     int  ->  rax         "Inline return value spill temp"
+;  V24 tmp17        [V24,T18] (  3,  2.00)     int  ->  rax         "Inline return value spill temp"
 ;  V25 tmp18        [V25,T10] (  3,  2.71)     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V26 tmp19        [V26    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V27 tmp20        [V27,T18] (  3,  2.00)     int  ->  rax         "Inline return value spill temp"
+;  V27 tmp20        [V27,T19] (  3,  2.00)     int  ->  rax         "Inline return value spill temp"
 ;  V28 tmp21        [V28,T11] (  3,  2.71)     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T19] (  3,  2.00)     int  ->  rax         "Inline return value spill temp"
+;  V30 tmp23        [V30,T20] (  3,  2.00)     int  ->  rax         "Inline return value spill temp"
 ;  V31 tmp24        [V31,T12] (  3,  2.71)     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V32 tmp25        [V32    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V33 tmp26        [V33,T03] (  4,  8   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V34 tmp27        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V35 tmp28        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V36 tmp29        [V36,T06] (  2,  4   )   byref  ->  r12         single-def "Inlining Arg"
+;  V36 tmp29        [V36,T06] (  2,  4   )   byref  ->  rbx         single-def "Inlining Arg"
 ;* V37 tmp30        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V38 tmp31        [V38    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V39 tmp32        [V39    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
@@ -54,15 +54,15 @@
 ;* V42 tmp35        [V42    ] (  0,  0   )     int  ->  zero-ref    single-def "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V43 tmp36        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp37        [V44    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp38        [V45,T20] (  2,  2   )   byref  ->  rdi         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V45 tmp38        [V45,T21] (  2,  2   )   byref  ->  rdi         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V46 tmp39        [V46    ] (  0,  0   )     int  ->  zero-ref    single-def "field V09._length (fldOffset=0x8)" P-INDEP
-;  V47 tmp40        [V47,T14] (  3,  2   )   byref  ->  r12         "field V34._reference (fldOffset=0x0)" P-INDEP
+;  V47 tmp40        [V47,T15] (  3,  2   )   byref  ->  rbx         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp41        [V48,T05] (  5,  4   )     int  ->  rax         "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V35._reference (fldOffset=0x0)" P-INDEP
 ;* V50 tmp43        [V50    ] (  0,  0   )     int  ->  zero-ref    single-def "field V35._length (fldOffset=0x8)" P-INDEP
 ;* V51 tmp44        [V51    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V52 tmp45        [V52    ] (  0,  0   )     int  ->  zero-ref    single-def "field V37._length (fldOffset=0x8)" P-INDEP
-;  V53 cse0         [V53,T22] (  5,  0   )    long  ->  r15         "CSE - moderate"
+;  V53 cse0         [V53,T13] (  6,  2   )    long  ->  r12         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
@@ -94,21 +94,21 @@ G_M56569_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        not      edi
        shr      edi, 31
        call     [<unknown method>]
+       mov      r12, qword ptr [rbx]
        mov      rdi, 0xD1FFAB1E      ; Internal.TypeSystem.Ecma.EcmaField
-       cmp      qword ptr [rbx], rdi
+       cmp      r12, rdi
        je       SHORT G_M56569_IG04
-                       ;; size=59 bbWeight=1 PerfScore 17.25
+                       ;; size=62 bbWeight=1 PerfScore 16.50
 G_M56569_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rdi, rbx
        ; gcrRegs +[rdi]
-       mov      rax, qword ptr [rbx]
-       mov      r15, qword ptr [rax+0x50]
-       call     [r15+0x18]<unknown method>
+       mov      rax, qword ptr [r12+0x50]
+       call     [rax+0x18]<unknown method>
        ; gcrRegs -[rdi]
        mov      edi, eax
        call     [<unknown method>]
        jmp      G_M56569_IG24
-                       ;; size=27 bbWeight=0 PerfScore 0.00
+                       ;; size=24 bbWeight=0 PerfScore 0.00
 G_M56569_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      eax, dword ptr [rbx+0x2C]
        and      eax, 3
@@ -183,14 +183,14 @@ G_M56569_IG13:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
                        ;; size=18 bbWeight=1 PerfScore 5.75
 G_M56569_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       xor      r12, r12
-       ; byrRegs +[r12]
+       xor      rbx, rbx
+       ; byrRegs +[rbx]
        xor      eax, eax
        jmp      SHORT G_M56569_IG17
-                       ;; size=7 bbWeight=0 PerfScore 0.00
+                       ;; size=6 bbWeight=0 PerfScore 0.00
 G_M56569_IG15:        ; bbWeight=0.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx]
-       ; byrRegs -[r12]
+       ; byrRegs -[rbx]
        mov      rdi, rbx
        ; gcrRegs +[rdi]
        mov      esi, 5
@@ -200,12 +200,12 @@ G_M56569_IG15:        ; bbWeight=0.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
                        ;; size=16 bbWeight=0.29 PerfScore 1.59
 G_M56569_IG16:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx] +[rax]
-       lea      r12, bword ptr [rax+0x10]
-       ; byrRegs +[r12]
+       lea      rbx, bword ptr [rax+0x10]
+       ; byrRegs +[rbx]
        mov      eax, dword ptr [rax+0x08]
        ; gcrRegs -[rax]
                        ;; size=7 bbWeight=1 PerfScore 2.50
-G_M56569_IG17:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1000 {r12}, byref, isz
+G_M56569_IG17:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      eax, r15d
        jl       SHORT G_M56569_IG09
        mov      edi, eax
@@ -220,14 +220,14 @@ G_M56569_IG17:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1000 {r12}, byr
        jbe      SHORT G_M56569_IG19
                        ;; size=31 bbWeight=1 PerfScore 5.25
 G_M56569_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[r12]
+       ; byrRegs -[rbx]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M56569_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1000 {r12}, byref, isz
-       ; byrRegs +[r12]
-       mov      ebx, r14d
-       add      r12, rbx
+G_M56569_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       ; byrRegs +[rbx]
+       mov      r12d, r14d
+       add      rbx, r12
        mov      edi, r15d
        not      edi
        shr      edi, 31
@@ -237,10 +237,10 @@ G_M56569_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=1000 {r12}, byr
        mov      rdi, r13
        ; byrRegs +[rdi]
        mov      edx, r15d
-       mov      rsi, r12
+       mov      rsi, rbx
        ; byrRegs +[rsi]
        call     [<unknown method>]
-       ; byrRegs -[rsi rdi r12]
+       ; byrRegs -[rbx rsi rdi]
        mov      eax, 1
                        ;; size=45 bbWeight=1 PerfScore 9.75
 G_M56569_IG20:        ; bbWeight=1, epilog, nogc, extend
@@ -281,24 +281,27 @@ G_M56569_IG23:        ; bbWeight=0.29, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
 G_M56569_IG24:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rdi, rbx
        ; gcrRegs +[rdi]
-       call     [r15+0x30]<unknown method>
+       mov      rax, qword ptr [r12+0x50]
+       call     [rax+0x30]<unknown method>
        ; gcrRegs -[rdi]
        mov      edi, eax
        call     [<unknown method>]
        mov      rdi, rbx
        ; gcrRegs +[rdi]
-       call     [r15+0x28]<unknown method>
+       mov      rax, qword ptr [r12+0x50]
+       call     [rax+0x28]<unknown method>
        ; gcrRegs -[rdi]
        test     eax, eax
        jne      G_M56569_IG09
        mov      rdi, rbx
        ; gcrRegs +[rdi]
-       call     [r15+0x20]<unknown method>
+       mov      rax, qword ptr [r12+0x50]
+       call     [rax+0x20]<unknown method>
        ; gcrRegs -[rbx rdi]
        jmp      G_M56569_IG09
-                       ;; size=42 bbWeight=0 PerfScore 0.00
+                       ;; size=54 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 485, prolog size 16, PerfScore 88.95, instruction count 147, allocated bytes for code 485 (MethodHash=736c2306) for method Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
+Total bytes of code 496, prolog size 16, PerfScore 88.20, instruction count 150, allocated bytes for code 496 (MethodHash=736c2306) for method Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:

+28 (+2.56%) : 590387.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  r12        
 ;  V10 loc7         [V10,T08] (  3, 12   )     ref  ->  rdx         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T23] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T24] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V17 tmp6         [V17,T19] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V19 tmp8         [V19,T25] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V20 tmp9         [V20,T29] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T39] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V26 tmp15        [V26,T30] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V28 tmp17        [V28,T20] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  r12         "Inlining Arg"
-;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  r13         "Inlining Arg"
+;  V30 tmp19        [V30,T26] (  3,  0   )     int  ->  r12         "Inlining Arg"
+;  V31 tmp20        [V31,T31] (  2,  0   )   byref  ->  r13         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V37 tmp26        [V37,T32] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp30        [V41,T21] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V43 tmp32        [V43,T27] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V44 tmp33        [V44,T33] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V50 tmp39        [V50,T34] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  rbx         "Inlining Arg"
+;  V52 tmp41        [V52,T22] (  4,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  r14         "Inlining Arg"
-;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  r15         "Inlining Arg"
+;  V54 tmp43        [V54,T28] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V55 tmp44        [V55,T35] (  2,  0   )   byref  ->  r15         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V61 tmp50        [V61,T36] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T06] (  4, 12   )     int  ->  [rbp-0x54]  spill-single-def "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.46)     ref  ->  r14         class-hnd exact "Inlining Arg" <System.String>
@@ -106,11 +106,10 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T09] (  3, 12   )     ref  ->  rdx         "arr expr"
-;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V98 tmp87        [V98,T37] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V99 tmp88        [V99,T38] (  2,  0   )     ref  ->  rsi         "argument with side effect"
 ;  V100 cse0        [V100,T17] (  3,  3   )     ref  ->  rdi         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  6, 10   )     int  ->  r13         multi-def "CSE - moderate"
-;  V102 cse2        [V102,T19] ( 12,  0   )     ref  ->  rsi         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -380,15 +379,15 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r15d, dword ptr [rbp-0x30]
        sub      r15d, edi
        jns      SHORT G_M45430_IG30
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=70 bbWeight=0 PerfScore 0.00
+                       ;; size=77 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      r15d, 11
        jb       SHORT G_M45430_IG31
@@ -429,15 +428,15 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r12d, dword ptr [rbp-0x30]
        sub      r12d, edi
        jns      SHORT G_M45430_IG33
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=63 bbWeight=0 PerfScore 0.00
+                       ;; size=70 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
        test     r12d, r12d
        je       SHORT G_M45430_IG34
@@ -510,15 +509,15 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r15d, dword ptr [rbp-0x30]
        sub      r15d, edi
        jns      SHORT G_M45430_IG38
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=70 bbWeight=0 PerfScore 0.00
+                       ;; size=77 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      r15d, 11
        jb       SHORT G_M45430_IG39
@@ -566,15 +565,15 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r14d, dword ptr [rbp-0x30]
        sub      r14d, ebx
        jns      SHORT G_M45430_IG43
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       mov      rdi, rsi
+       mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        ; byrRegs -[rdi]
+       mov      rsi, 0xD1FFAB1E
+       ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
        test     r14d, r14d
        je       SHORT G_M45430_IG44
@@ -622,7 +621,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=49 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1092, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1092 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1120, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1120 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+14 (+4.88%) : 302928.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)

@@ -29,17 +29,17 @@
 ;* V18 tmp16        [V18    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp17        [V19    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp18        [V20    ] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V21 tmp19        [V21,T11] (  3,   0   )   ubyte  ->  rsi         "Inline return value spill temp"
+;  V21 tmp19        [V21,T10] (  3,   0   )   ubyte  ->  rsi         "Inline return value spill temp"
 ;  V22 tmp20        [V22,T05] ( 10,   4.50)     int  ->  r15         "Inline stloc first use temp"
 ;  V23 tmp21        [V23    ] (  2,   9   )  struct ( 8) [rbp-0x48]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
 ;  V24 tmp22        [V24    ] (  2,   9   )  struct ( 8) [rbp-0x50]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-;  V25 tmp23        [V25,T14] (  2,   0   )   float  ->  [rbp-0x54]  spill-single-def "impAppendStmt"
-;  V26 tmp24        [V26,T12] (  3,   0   )     int  ->  rdi        
+;  V25 tmp23        [V25,T13] (  2,   0   )   float  ->  [rbp-0x54]  spill-single-def "impAppendStmt"
+;  V26 tmp24        [V26,T11] (  3,   0   )     int  ->  rdi        
 ;* V27 tmp25        [V27    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp26        [V28    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp27        [V29    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp28        [V30    ] (  0,   0   )   float  ->  zero-ref    "Inline return value spill temp"
-;  V31 tmp29        [V31,T13] (  3,   0   )     int  ->  rdi        
+;  V31 tmp29        [V31,T12] (  3,   0   )     int  ->  rdi        
 ;* V32 tmp30        [V32    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V33 tmp31        [V33    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp32        [V34    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -48,7 +48,6 @@
 ;  V37 tmp35        [V37    ] (  3,1620   )    long  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
 ;  V38 tmp36        [V38    ] (  2,   4.50)    long  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V23._00 (fldOffset=0x0)" P-DEP
 ;  V39 tmp37        [V39    ] (  2,   4.50)    long  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V24._00 (fldOffset=0x0)" P-DEP
-;  V40 cse0         [V40,T10] (  6,   0   )     ref  ->  rsi         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 80
 
@@ -130,14 +129,14 @@ G_M21877_IG08:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
 G_M21877_IG09:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     dil, dil
        jne      SHORT G_M21877_IG10
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+                       ;; size=31 bbWeight=0 PerfScore 0.00
 G_M21877_IG10:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        lea      rdi, bword ptr [rbp-0x48]
        ; byrRegs +[rdi]
@@ -158,14 +157,14 @@ G_M21877_IG11:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
 G_M21877_IG12:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     dil, dil
        jne      SHORT G_M21877_IG13
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+                       ;; size=31 bbWeight=0 PerfScore 0.00
 G_M21877_IG13:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        lea      rdi, bword ptr [rbp-0x50]
        ; byrRegs +[rdi]
@@ -187,7 +186,7 @@ G_M21877_IG15:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        jmp      G_M21877_IG05
                        ;; size=5 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 287, prolog size 16, PerfScore 13799.25, instruction count 81, allocated bytes for code 287 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 301, prolog size 16, PerfScore 13799.25, instruction count 81, allocated bytes for code 301 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.pmi.linux.x64.checked.mch

-12 (-0.98%) : 251299.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)

@@ -14,24 +14,24 @@
 ;  V03 arg3         [V03,T05] ( 12,  2   )     ref  ->  [rbp-0x38]  class-hnd EH-live single-def <System.Xml.XmlTextReaderImpl+NodeData>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T31] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V06 tmp1         [V06,T30] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;  V08 tmp3         [V08,T04] (  2,  4   )     int  ->  rdx         "spilling unroll qmark"
 ;* V09 tmp4         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V10 tmp5         [V10,T19] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V11 tmp6         [V11,T23] (  3,  0   )     int  ->  rbx         "Inlining Arg"
-;  V12 tmp7         [V12,T24] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V10 tmp5         [V10,T18] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V11 tmp6         [V11,T22] (  3,  0   )     int  ->  rbx         "Inlining Arg"
+;  V12 tmp7         [V12,T23] (  3,  0   )     int  ->  r14         "Inlining Arg"
 ;  V13 tmp8         [V13,T10] ( 11,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V14 tmp9         [V14,T14] (  4,  0   )     ref  ->  [rbp-0x40]  class-hnd exact spill-single-def "dup spill" <System.String[]>
-;  V15 tmp10        [V15,T32] (  2,  0   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V16 tmp11        [V16,T33] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V17 tmp12        [V17,T20] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp13        [V18,T25] (  3,  0   )     int  ->  r14         "Inlining Arg"
-;  V19 tmp14        [V19,T26] (  3,  0   )     int  ->  r13         "Inlining Arg"
+;  V15 tmp10        [V15,T31] (  2,  0   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V16 tmp11        [V16,T32] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V17 tmp12        [V17,T19] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V18 tmp13        [V18,T24] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V19 tmp14        [V19,T25] (  3,  0   )     int  ->  r13         "Inlining Arg"
 ;  V20 tmp15        [V20,T11] ( 11,  0   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V21 tmp16        [V21,T15] (  4,  0   )     ref  ->  [rbp-0x48]  class-hnd exact spill-single-def "dup spill" <System.String[]>
-;  V22 tmp17        [V22,T34] (  2,  0   )     ref  ->  [rbp-0x50]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
-;  V23 tmp18        [V23,T35] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V22 tmp17        [V22,T33] (  2,  0   )     ref  ->  [rbp-0x50]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
+;  V23 tmp18        [V23,T34] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp19        [V24    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V25 tmp20        [V25,T07] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
@@ -39,25 +39,24 @@
 ;* V28 tmp23        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp24        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp25        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V31 tmp26        [V31,T21] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V32 tmp27        [V32,T27] (  3,  0   )     int  ->  r14         "Inlining Arg"
-;  V33 tmp28        [V33,T28] (  3,  0   )     int  ->  r13         "Inlining Arg"
+;  V31 tmp26        [V31,T20] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V32 tmp27        [V32,T26] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V33 tmp28        [V33,T27] (  3,  0   )     int  ->  r13         "Inlining Arg"
 ;  V34 tmp29        [V34,T12] ( 11,  0   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V35 tmp30        [V35,T16] (  4,  0   )     ref  ->  [rbp-0x58]  class-hnd exact spill-single-def "dup spill" <System.String[]>
-;  V36 tmp31        [V36,T36] (  2,  0   )     ref  ->  [rbp-0x60]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
-;  V37 tmp32        [V37,T37] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V38 tmp33        [V38,T22] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V39 tmp34        [V39,T29] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V40 tmp35        [V40,T30] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V36 tmp31        [V36,T35] (  2,  0   )     ref  ->  [rbp-0x60]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
+;  V37 tmp32        [V37,T36] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V38 tmp33        [V38,T21] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V39 tmp34        [V39,T28] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V40 tmp35        [V40,T29] (  3,  0   )     int  ->  r14         "Inlining Arg"
 ;  V41 tmp36        [V41,T13] ( 11,  0   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V42 tmp37        [V42,T17] (  4,  0   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "dup spill" <System.String[]>
-;  V43 tmp38        [V43,T38] (  2,  0   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V44 tmp39        [V44,T39] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V43 tmp38        [V43,T37] (  2,  0   )     ref  ->  r12         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V44 tmp39        [V44,T38] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V45 tmp40        [V45,T03] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
 ;  V46 PSPSym       [V46,T08] (  1,  1   )    long  ->  [rbp-0x70]  do-not-enreg[V] "PSPSym"
-;  V47 cse0         [V47,T18] (  4,  0   )     ref  ->  rsi         multi-def "CSE - moderate"
-;  V48 cse1         [V48,T06] (  3,  3   )     ref  ->  rsi         "CSE - aggressive"
-;  V49 rat0         [V49,T09] (  3,  6   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V47 cse0         [V47,T06] (  3,  3   )     ref  ->  rsi         "CSE - aggressive"
+;  V48 rat0         [V48,T09] (  3,  6   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 72
 
@@ -207,21 +206,16 @@ G_M20580_IG13:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        ; gcr arg pop 0
        mov      gword ptr [rbp-0x40], rax
        ; GC ptr vars +{V14}
-       lea      rdi, bword ptr [rax+0x10]
-       ; byrRegs +[rdi]
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rsi]
-       ; byrRegs -[rdi]
-       mov      rdi, r15
+       mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
-       mov      rsi, gword ptr [rbp-0x40]
+       mov      gword ptr [rax+0x10], rdi
+       mov      rdi, r15
+       mov      rsi, rax
        ; gcrRegs +[rsi]
        mov      edx, ebx
        mov      ecx, r14d
        call     [<unknown method>]
-       ; gcrRegs -[rsi rdi] +[rax]
+       ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        mov      rdi, 0xD1FFAB1E
        mov      qword ptr [r13+0x70], rdi
@@ -261,8 +255,6 @@ G_M20580_IG13:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        ; byrRegs -[rdi]
        mov      dword ptr [r13+0x98], ebx
        mov      dword ptr [r13+0x9C], r14d
-                       ;; size=224 bbWeight=0 PerfScore 0.00
-G_M20580_IG14:        ; bbWeight=0, extend
        mov      rdi, gword ptr [rbp-0x30]
        ; gcrRegs +[rdi]
        mov      rsi, r13
@@ -271,8 +263,10 @@ G_M20580_IG14:        ; bbWeight=0, extend
        call     [System.Xml.XmlTextReaderImpl:Throw(System.Exception):this]
        ; gcrRegs -[rsi rdi r13]
        ; gcr arg pop 0
+                       ;; size=231 bbWeight=0 PerfScore 0.00
+G_M20580_IG14:        ; bbWeight=0, extend
        int3     
-                       ;; size=14 bbWeight=0 PerfScore 0.00
+                       ;; size=1 bbWeight=0 PerfScore 0.00
 G_M20580_IG15:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[r15]
        ; GC ptr vars +{V00 V01 V03}
@@ -494,21 +488,16 @@ G_M20580_IG17:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        ; gcr arg pop 0
        mov      gword ptr [rbp-0x68], rax
        ; GC ptr vars +{V42}
-       lea      rdi, bword ptr [rax+0x10]
-       ; byrRegs +[rdi]
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rsi]
-       ; byrRegs -[rdi]
-       mov      rdi, rbx
+       mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
-       mov      rsi, gword ptr [rbp-0x68]
+       mov      gword ptr [rax+0x10], rdi
+       mov      rdi, rbx
+       mov      rsi, rax
        ; gcrRegs +[rsi]
        mov      edx, r15d
        mov      ecx, r14d
        call     [<unknown method>]
-       ; gcrRegs -[rsi rdi] +[rax]
+       ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        mov      rdi, 0xD1FFAB1E
        mov      qword ptr [r13+0x70], rdi
@@ -557,7 +546,7 @@ G_M20580_IG17:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        ; gcrRegs -[rsi rdi r13]
        ; gcr arg pop 0
        int3     
-                       ;; size=223 bbWeight=0 PerfScore 0.00
+                       ;; size=217 bbWeight=0 PerfScore 0.00
 G_M20580_IG18:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
        ; gcrRegs +[rsi]
        ; GC ptr vars +{V00 V01 V03}
@@ -602,7 +591,7 @@ RWD00   dq  0070007400740068h, 0077002F002F003Ah, 0077002E00770077h, 0072006F002E
 RWD32      dq  00670072006F002Eh, 003000300032002Fh, 006D0078002F0030h, 002F0073006E006Ch
 
 
-; Total bytes of code 1227, prolog size 40, PerfScore 82.60, instruction count 279, allocated bytes for code 1227 (MethodHash=02a7af9b) for method System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
+Total bytes of code 1215, prolog size 40, PerfScore 82.60, instruction count 277, allocated bytes for code 1215 (MethodHash=02a7af9b) for method System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-5 (-0.44%) : 251226.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)

@@ -56,11 +56,10 @@
 ;  V45 tmp40        [V45,T08] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
 ;  V46 tmp41        [V46,T15] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V47 PSPSym       [V47,T24] (  1,  1   )    long  ->  [rbp-0x40]  do-not-enreg[V] "PSPSym"
-;  V48 cse0         [V48,T36] (  2,  0   )     ref  ->  rsi         "CSE - moderate"
-;  V49 cse1         [V49,T10] (  8,  5   )     int  ->  rbx         multi-def "CSE - moderate"
-;  V50 cse2         [V50,T21] (  3,  2.75)     int  ->  rdx         "CSE - moderate"
-;  V51 rat0         [V51,T25] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V52 rat1         [V52,T26] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V48 cse0         [V48,T10] (  8,  5   )     int  ->  rbx         multi-def "CSE - moderate"
+;  V49 cse1         [V49,T21] (  3,  2.75)     int  ->  rdx         "CSE - moderate"
+;  V50 rat0         [V50,T25] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V51 rat1         [V51,T26] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 32
 
@@ -427,21 +426,16 @@ G_M23682_IG36:        ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
        ; gcr arg pop 0
        mov      r13, rax
        ; gcrRegs +[r13]
-       lea      rdi, bword ptr [r13+0x10]
-       ; byrRegs +[rdi]
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rsi]
-       ; byrRegs -[rdi]
-       mov      rdi, rbx
+       mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
+       mov      gword ptr [r13+0x10], rdi
+       mov      rdi, rbx
        mov      rsi, r13
        ; gcrRegs +[rsi]
        xor      edx, edx
        xor      ecx, ecx
        call     [<unknown method>]
-       ; gcrRegs -[rsi rdi] +[rax]
+       ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        mov      rdi, 0xD1FFAB1E
        mov      qword ptr [r15+0x70], rdi
@@ -489,7 +483,7 @@ G_M23682_IG36:        ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
        ; gcrRegs -[rsi rdi r15]
        ; gcr arg pop 0
        int3     
-                       ;; size=211 bbWeight=0 PerfScore 0.00
+                       ;; size=206 bbWeight=0 PerfScore 0.00
 G_M23682_IG37:        ; bbWeight=0, gcVars=0000000000000013 {V00 V01 V02}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
        ; gcrRegs +[rsi]
        ; GC ptr vars +{V00 V01 V02}
@@ -580,7 +574,7 @@ RWD48   dq  0075002D00360034h, 0032002D00730063h
 RWD64      dq  002D006600740075h, 0045004200360031h
 
 
-; Total bytes of code 1142, prolog size 35, PerfScore 181.19, instruction count 282, allocated bytes for code 1142 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
+Total bytes of code 1137, prolog size 35, PerfScore 181.19, instruction count 281, allocated bytes for code 1137 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-5 (-0.26%) : 189815.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)

@@ -154,7 +154,6 @@
 ;  V143 PSPSym      [V143,T76] (  1,  1   )    long  ->  [rbp-0xC0]  do-not-enreg[V] "PSPSym"
 ;  V144 cse0        [V144,T15] (  5,  5   )     ref  ->  r14         "CSE - moderate"
 ;  V145 cse1        [V145,T40] (  3,  3   )     ref  ->  rsi         "CSE - conservative"
-;  V146 cse2        [V146,T77] (  2,  0   )     ref  ->  rsi         "CSE - conservative"
 ;
 ; Lcl frame size = 152
 
@@ -1081,17 +1080,14 @@ G_M23212_IG69:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        lea      rbp, [rbp+0xC0]
                        ;; size=25 bbWeight=0 PerfScore 0.00
 G_M23212_IG70:        ; bbWeight=0, gcVars=00000000000000000000000100000011 {V00 V01 V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       mov      rax, 0xD1FFAB1E
+       ; gcrRegs +[rax]
        mov      r15, gword ptr [rbp-0x58]
        ; gcrRegs +[r15]
-       lea      rdi, bword ptr [r15+0x10]
-       ; byrRegs +[rdi]
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi]
-       ; byrRegs -[rdi]
+       mov      gword ptr [r15+0x10], rax
        lea      rax, G_M23212_IG04
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+       ; gcrRegs -[rax]
+                       ;; size=25 bbWeight=0 PerfScore 0.00
 G_M23212_IG71:        ; bbWeight=0, funclet epilog, nogc, extend
        add      rsp, 8
        pop      rbx
@@ -1104,7 +1100,7 @@ G_M23212_IG71:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1951, prolog size 56, PerfScore 457.72, instruction count 476, allocated bytes for code 1951 (MethodHash=a317a553) for method System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
+Total bytes of code 1946, prolog size 56, PerfScore 457.72, instruction count 475, allocated bytes for code 1946 (MethodHash=a317a553) for method System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+28 (+2.56%) : 152610.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  r12        
 ;  V10 loc7         [V10,T08] (  3, 12   )     ref  ->  rdx         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T23] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T24] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V17 tmp6         [V17,T19] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V19 tmp8         [V19,T25] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V20 tmp9         [V20,T29] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T39] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V26 tmp15        [V26,T30] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V28 tmp17        [V28,T20] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  r12         "Inlining Arg"
-;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  r13         "Inlining Arg"
+;  V30 tmp19        [V30,T26] (  3,  0   )     int  ->  r12         "Inlining Arg"
+;  V31 tmp20        [V31,T31] (  2,  0   )   byref  ->  r13         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V37 tmp26        [V37,T32] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp30        [V41,T21] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V43 tmp32        [V43,T27] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V44 tmp33        [V44,T33] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V50 tmp39        [V50,T34] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  rbx         "Inlining Arg"
+;  V52 tmp41        [V52,T22] (  4,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  r14         "Inlining Arg"
-;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  r15         "Inlining Arg"
+;  V54 tmp43        [V54,T28] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V55 tmp44        [V55,T35] (  2,  0   )   byref  ->  r15         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V61 tmp50        [V61,T36] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T06] (  4, 12   )     int  ->  [rbp-0x54]  spill-single-def "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.46)     ref  ->  r14         class-hnd exact "Inlining Arg" <System.String>
@@ -106,11 +106,10 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T09] (  3, 12   )     ref  ->  rdx         "arr expr"
-;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V98 tmp87        [V98,T37] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V99 tmp88        [V99,T38] (  2,  0   )     ref  ->  rsi         "argument with side effect"
 ;  V100 cse0        [V100,T17] (  3,  3   )     ref  ->  rdi         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  6, 10   )     int  ->  r13         multi-def "CSE - moderate"
-;  V102 cse2        [V102,T19] ( 12,  0   )     ref  ->  rsi         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -380,15 +379,15 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r15d, dword ptr [rbp-0x30]
        sub      r15d, edi
        jns      SHORT G_M45430_IG30
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=70 bbWeight=0 PerfScore 0.00
+                       ;; size=77 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      r15d, 11
        jb       SHORT G_M45430_IG31
@@ -429,15 +428,15 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r12d, dword ptr [rbp-0x30]
        sub      r12d, edi
        jns      SHORT G_M45430_IG33
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=63 bbWeight=0 PerfScore 0.00
+                       ;; size=70 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
        test     r12d, r12d
        je       SHORT G_M45430_IG34
@@ -510,15 +509,15 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r15d, dword ptr [rbp-0x30]
        sub      r15d, edi
        jns      SHORT G_M45430_IG38
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=70 bbWeight=0 PerfScore 0.00
+                       ;; size=77 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      r15d, 11
        jb       SHORT G_M45430_IG39
@@ -566,15 +565,15 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r14d, dword ptr [rbp-0x30]
        sub      r14d, ebx
        jns      SHORT G_M45430_IG43
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       mov      rdi, rsi
+       mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        ; byrRegs -[rdi]
+       mov      rsi, 0xD1FFAB1E
+       ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
        test     r14d, r14d
        je       SHORT G_M45430_IG44
@@ -622,7 +621,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=49 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1092, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1092 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1120, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1120 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+14 (+2.71%) : 153327.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)

@@ -16,29 +16,29 @@
 ;  V05 loc2         [V05,T02] (  4, 12.50)     ref  ->  [rbp-0x58]  class-hnd spill-single-def <System.Xml.XmlDictionaryString>
 ;  V06 loc3         [V06    ] ( 17,  0   )  struct (40) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T14] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V08 tmp1         [V08,T13] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V10 tmp3         [V10,T12] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V10 tmp3         [V10,T11] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V12 tmp5         [V12,T15] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V13 tmp6         [V13,T17] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V12 tmp5         [V12,T14] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V13 tmp6         [V13,T16] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp9         [V16,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp9         [V16,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T18] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V19 tmp12        [V19,T17] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V21 tmp14        [V21,T13] (  4,  0   )     int  ->  rbx         "Inlining Arg"
+;  V21 tmp14        [V21,T12] (  4,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V23 tmp16        [V23,T16] (  3,  0   )     int  ->  r14         "Inlining Arg"
-;  V24 tmp17        [V24,T19] (  2,  0   )   byref  ->  r15         "Inlining Arg"
+;  V23 tmp16        [V23,T15] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V24 tmp17        [V24,T18] (  2,  0   )   byref  ->  r15         "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V27 tmp20        [V27,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V27 tmp20        [V27,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T20] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V30 tmp23        [V30,T19] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;  V31 tmp24        [V31,T00] (  5, 27.00)     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.String>
 ;  V32 tmp25        [V32,T10] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V33 tmp26        [V33,T05] (  2,  8   )   byref  ->  rdi         "impAppendStmt"
@@ -59,10 +59,9 @@
 ;* V48 tmp41        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V50 tmp43        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V51 tmp44        [V51,T21] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V52 cse0         [V52,T11] (  6,  0   )     ref  ->  rsi         multi-def "CSE - moderate"
-;  V53 cse1         [V53,T07] (  3,  6   )     int  ->  r12         "CSE - moderate"
-;  V54 cse2         [V54,T08] (  3,  5.50)     int  ->  rdx         "CSE - moderate"
+;  V51 tmp44        [V51,T20] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V52 cse0         [V52,T07] (  3,  6   )     int  ->  r12         "CSE - moderate"
+;  V53 cse1         [V53,T08] (  3,  5.50)     int  ->  rdx         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -223,15 +222,15 @@ G_M28309_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      r15d, dword ptr [rbp-0x30]
        sub      r15d, edi
        jns      SHORT G_M28309_IG16
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=66 bbWeight=0 PerfScore 0.00
+                       ;; size=73 bbWeight=0 PerfScore 0.00
 G_M28309_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      r15d, 8
        jb       SHORT G_M28309_IG17
@@ -277,15 +276,15 @@ G_M28309_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r14d, dword ptr [rbp-0x30]
        sub      r14d, ebx
        jns      SHORT G_M28309_IG21
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       mov      rdi, rsi
+       mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        ; byrRegs -[rdi]
+       mov      rsi, 0xD1FFAB1E
+       ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M28309_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
        test     r14d, r14d
        je       SHORT G_M28309_IG22
@@ -333,7 +332,7 @@ G_M28309_IG23:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=49 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 516, prolog size 44, PerfScore 93.59, instruction count 144, allocated bytes for code 516 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
+Total bytes of code 530, prolog size 44, PerfScore 93.59, instruction count 144, allocated bytes for code 530 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+14 (+2.78%) : 153326.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)

@@ -16,29 +16,29 @@
 ;  V05 loc2         [V05,T01] (  6, 16.25)     ref  ->  [rbp-0x58]  class-hnd exact spill-single-def <System.String>
 ;  V06 loc3         [V06    ] ( 17,  0   )  struct (40) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T13] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V08 tmp1         [V08,T12] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V10 tmp3         [V10,T11] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V10 tmp3         [V10,T10] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V12 tmp5         [V12,T14] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V13 tmp6         [V13,T16] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V12 tmp5         [V12,T13] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V13 tmp6         [V13,T15] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp9         [V16,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp9         [V16,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T17] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V19 tmp12        [V19,T16] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V21 tmp14        [V21,T12] (  4,  0   )     int  ->  rbx         "Inlining Arg"
+;  V21 tmp14        [V21,T11] (  4,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V23 tmp16        [V23,T15] (  3,  0   )     int  ->  r14         "Inlining Arg"
-;  V24 tmp17        [V24,T18] (  2,  0   )   byref  ->  r15         "Inlining Arg"
+;  V23 tmp16        [V23,T14] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V24 tmp17        [V24,T17] (  2,  0   )   byref  ->  r15         "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V27 tmp20        [V27,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V27 tmp20        [V27,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T19] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V30 tmp23        [V30,T18] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;  V31 tmp24        [V31,T09] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V32 tmp25        [V32,T04] (  2,  8   )   byref  ->  rdi         "impAppendStmt"
 ;* V33 tmp26        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -58,10 +58,9 @@
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp41        [V48    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V50 tmp43        [V50,T20] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V51 cse0         [V51,T10] (  6,  0   )     ref  ->  rsi         multi-def "CSE - aggressive"
-;  V52 cse1         [V52,T06] (  3,  6   )     int  ->  r12         "CSE - aggressive"
-;  V53 cse2         [V53,T07] (  3,  5.50)     int  ->  rdx         "CSE - aggressive"
+;  V50 tmp43        [V50,T19] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V51 cse0         [V51,T06] (  3,  6   )     int  ->  r12         "CSE - aggressive"
+;  V52 cse1         [V52,T07] (  3,  5.50)     int  ->  rdx         "CSE - aggressive"
 ;
 ; Lcl frame size = 56
 
@@ -215,15 +214,15 @@ G_M58179_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      r15d, dword ptr [rbp-0x30]
        sub      r15d, edi
        jns      SHORT G_M58179_IG15
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=66 bbWeight=0 PerfScore 0.00
+                       ;; size=73 bbWeight=0 PerfScore 0.00
 G_M58179_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      r15d, 8
        jb       SHORT G_M58179_IG16
@@ -269,15 +268,15 @@ G_M58179_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r14d, dword ptr [rbp-0x30]
        sub      r14d, ebx
        jns      SHORT G_M58179_IG20
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       mov      rdi, rsi
+       mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        ; byrRegs -[rdi]
+       mov      rsi, 0xD1FFAB1E
+       ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M58179_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
        test     r14d, r14d
        je       SHORT G_M58179_IG21
@@ -325,7 +324,7 @@ G_M58179_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=49 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 503, prolog size 44, PerfScore 84.40, instruction count 140, allocated bytes for code 503 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
+Total bytes of code 517, prolog size 44, PerfScore 84.40, instruction count 140, allocated bytes for code 517 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries_tests.run.linux.x64.Release.mch

-45 (-5.33%) : 730204.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)

@@ -12,8 +12,8 @@
 ;  V00 this         [V00,T02] (  4,  2   )   byref  ->  r15         this single-def
 ;  V01 arg1         [V01,T00] (  8,  5   )     ref  ->  rbx         class-hnd single-def <System.String>
 ;* V02 arg2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.IFormatProvider>
-;  V03 loc0         [V03,T09] (  5,  0   )     int  ->  rdi        
-;  V04 loc1         [V04,T11] (  4,  0   )     ref  ->  r13         class-hnd exact single-def <System.String>
+;  V03 loc0         [V03,T10] (  5,  0   )     int  ->  rdi        
+;  V04 loc1         [V04,T09] (  5,  0   )     ref  ->  r13         class-hnd exact single-def <System.String>
 ;* V05 loc2         [V05    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V06 loc3         [V06    ] (  5,  0   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V07 loc4         [V07,T01] (  7,  4   )     int  ->  rax        
@@ -23,23 +23,23 @@
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;  V12 tmp4         [V12,T21] (  2,  0   )     int  ->  rdi        
 ;* V13 tmp5         [V13,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp6         [V14,T22] (  3,  0   )     int  ->  [rbp-0x34]  "Inlining Arg"
+;  V14 tmp6         [V14,T22] (  3,  0   )     int  ->  r14         "Inlining Arg"
 ;  V15 tmp7         [V15,T12] (  4,  0   )   byref  ->  r12         single-def "Inlining Arg"
 ;* V16 tmp8         [V16    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V17 tmp9         [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V18 tmp10        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V19 tmp11        [V19,T33] (  2,  0   )     int  ->  [rbp-0x38]  spill-single-def "Inlining Arg"
-;  V20 tmp12        [V20,T30] (  2,  0   )   byref  ->  [rbp-0x68]  spill-single-def "Inlining Arg"
+;  V19 tmp11        [V19,T32] (  2,  0   )     int  ->  [rbp-0x34]  spill-single-def "Inlining Arg"
+;  V20 tmp12        [V20,T29] (  2,  0   )   byref  ->  [rbp-0x68]  spill-single-def "Inlining Arg"
 ;  V21 tmp13        [V21,T23] (  3,  0   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V22 tmp14        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V23 tmp15        [V23,T07] (  7,  0   )     int  ->  rsi         "Inline stloc first use temp"
-;  V24 tmp16        [V24,T08] (  7,  0   )     int  ->  registers   "Inline stloc first use temp"
+;  V24 tmp16        [V24,T08] (  7,  0   )     int  ->  rbx         "Inline stloc first use temp"
 ;  V25 tmp17        [V25,T24] (  3,  0   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V26 tmp18        [V26,T06] ( 10,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V27 tmp19        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V28 tmp20        [V28    ] (  3,  0   )   byref  ->  [rbp-0x40]  must-init pinned "Inline stloc first use temp"
 ;* V29 tmp21        [V29    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V30 tmp22        [V30,T05] ( 17,  0   )    long  ->  [rbp-0x48]  "Inline stloc first use temp"
+;  V30 tmp22        [V30,T05] ( 17,  0   )    long  ->  r14         "Inline stloc first use temp"
 ;* V31 tmp23        [V31    ] (  0,  0   )  struct (48) zero-ref    "dup spill" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
 ;* V32 tmp24        [V32    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V33 tmp25        [V33    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
@@ -59,7 +59,7 @@
 ;* V47 tmp39        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V48 tmp40        [V48    ] (  0,  0   )  struct (48) zero-ref    "Inline return value spill temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
 ;* V49 tmp41        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;* V50 tmp42        [V50,T50] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;* V50 tmp42        [V50,T49] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V51 tmp43        [V51    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Guid>
 ;* V52 tmp44        [V52    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V53 tmp45        [V53    ] (  0,  0   )  struct (32) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
@@ -68,18 +68,18 @@
 ;* V56 tmp48        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp49        [V57    ] (  0,  0   )  simd16  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V58 tmp50        [V58    ] (  0,  0   )  struct (48) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
-;  V59 tmp51        [V59,T34] (  2,  0   )  simd16  ->  mm2         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V60 tmp52        [V60,T35] (  2,  0   )  simd16  ->  mm3         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V59 tmp51        [V59,T33] (  2,  0   )  simd16  ->  mm2         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V60 tmp52        [V60,T34] (  2,  0   )  simd16  ->  mm3         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V61 tmp53        [V61    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V62 tmp54        [V62    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V63 tmp55        [V63    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V64 tmp56        [V64,T36] (  2,  0   )  simd16  ->  mm1         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V64 tmp56        [V64,T35] (  2,  0   )  simd16  ->  mm1         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V65 tmp57        [V65    ] (  0,  0   )  struct (48) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
 ;* V66 tmp58        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;  V67 tmp59        [V67,T25] (  3,  0   )  simd16  ->  mm1         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V68 tmp60        [V68,T37] (  2,  0   )  simd16  ->  mm2         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V69 tmp61        [V69,T38] (  2,  0   )  simd16  ->  mm0         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V70 tmp62        [V70,T39] (  2,  0   )  simd16  ->  mm1         "impAppendStmt"
+;  V68 tmp60        [V68,T36] (  2,  0   )  simd16  ->  mm2         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V69 tmp61        [V69,T37] (  2,  0   )  simd16  ->  mm0         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V70 tmp62        [V70,T38] (  2,  0   )  simd16  ->  mm1         "impAppendStmt"
 ;* V71 tmp63        [V71    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
 ;  V72 tmp64        [V72,T14] (  4,  0   )  simd16  ->  mm0         "spilled call-like call argument"
 ;* V73 tmp65        [V73    ] (  0,  0   )  simd16  ->  zero-ref    "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
@@ -87,29 +87,29 @@
 ;* V75 tmp67        [V75    ] (  0,  0   )  simd16  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V76 tmp68        [V76    ] (  0,  0   )  simd16  ->  zero-ref    "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V77 tmp69        [V77    ] (  0,  0   )  simd16  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;* V78 tmp70        [V78,T51] (  0,  0   )  simd16  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;* V78 tmp70        [V78,T50] (  0,  0   )  simd16  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V79 tmp71        [V79    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
 ;  V80 tmp72        [V80,T26] (  3,  0   )  simd16  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
-;  V81 tmp73        [V81,T40] (  2,  0   )  simd16  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+;  V81 tmp73        [V81,T39] (  2,  0   )  simd16  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
 ;* V82 tmp74        [V82    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
 ;  V83 tmp75        [V83,T27] (  3,  0   )  simd16  ->  mm4         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
 ;  V84 tmp76        [V84,T28] (  3,  0   )  simd16  ->  mm3         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
 ;* V85 tmp77        [V85    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
-;  V86 tmp78        [V86,T41] (  2,  0   )  simd16  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
-;  V87 tmp79        [V87,T42] (  2,  0   )  simd16  ->  mm1         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+;  V86 tmp78        [V86,T40] (  2,  0   )  simd16  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+;  V87 tmp79        [V87,T41] (  2,  0   )  simd16  ->  mm1         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
 ;* V88 tmp80        [V88    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V89 tmp81        [V89    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V90 tmp82        [V90    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V91 tmp83        [V91,T31] (  2,  0   )   byref  ->  [rbp-0x70]  single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-;  V92 tmp84        [V92,T43] (  2,  0   )     int  ->  [rbp-0x4C]  "field V09._length (fldOffset=0x8)" P-INDEP
+;  V91 tmp83        [V91,T30] (  2,  0   )   byref  ->  [rbp-0x70]  single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V92 tmp84        [V92,T42] (  2,  0   )     int  ->  [rbp-0x44]  "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V93 tmp85        [V93    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V94 tmp86        [V94    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V95 tmp87        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp88        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
-;  V97 tmp89        [V97,T20] (  3,  0   )   byref  ->  rsi         "field V16._reference (fldOffset=0x0)" P-INDEP
-;  V98 tmp90        [V98,T15] (  4,  0   )     int  ->   r8         "field V16._length (fldOffset=0x8)" P-INDEP
-;  V99 tmp91        [V99,T32] (  2,  0   )   byref  ->  rsi         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;  V100 tmp92       [V100,T44] (  2,  0   )     int  ->   r8         "field V17._length (fldOffset=0x8)" P-INDEP
+;  V97 tmp89        [V97,T20] (  3,  0   )   byref  ->  rdx         "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V98 tmp90        [V98,T15] (  4,  0   )     int  ->  rsi         "field V16._length (fldOffset=0x8)" P-INDEP
+;  V99 tmp91        [V99,T31] (  2,  0   )   byref  ->  rdx         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;  V100 tmp92       [V100,T43] (  2,  0   )     int  ->  rsi         "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V101 tmp93       [V101    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V102 tmp94       [V102    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
 ;* V103 tmp95       [V103    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
@@ -132,12 +132,12 @@
 ;  V120 tmp112      [V120,T18] (  4,  0   )  simd16  ->  mm1         "field V48.Item3 (fldOffset=0x20)" P-INDEP
 ;* V121 tmp113      [V121    ] (  0,  0   )  simd16  ->  zero-ref    "field V53.Item1 (fldOffset=0x0)" P-INDEP
 ;* V122 tmp114      [V122    ] (  0,  0   )  simd16  ->  zero-ref    "field V53.Item2 (fldOffset=0x10)" P-INDEP
-;  V123 tmp115      [V123,T45] (  2,  0   )  simd16  ->  mm1         "field V58.Item1 (fldOffset=0x0)" P-INDEP
-;  V124 tmp116      [V124,T46] (  2,  0   )  simd16  ->  mm0         "field V58.Item2 (fldOffset=0x10)" P-INDEP
-;* V125 tmp117      [V125,T52] (  0,  0   )  simd16  ->  zero-ref    "field V58.Item3 (fldOffset=0x20)" P-INDEP
-;  V126 tmp118      [V126,T47] (  2,  0   )  simd16  ->  mm2         "field V65.Item1 (fldOffset=0x0)" P-INDEP
-;  V127 tmp119      [V127,T48] (  2,  0   )  simd16  ->  mm3         "field V65.Item2 (fldOffset=0x10)" P-INDEP
-;  V128 tmp120      [V128,T49] (  2,  0   )  simd16  ->  mm1         "field V65.Item3 (fldOffset=0x20)" P-INDEP
+;  V123 tmp115      [V123,T44] (  2,  0   )  simd16  ->  mm1         "field V58.Item1 (fldOffset=0x0)" P-INDEP
+;  V124 tmp116      [V124,T45] (  2,  0   )  simd16  ->  mm0         "field V58.Item2 (fldOffset=0x10)" P-INDEP
+;* V125 tmp117      [V125,T51] (  0,  0   )  simd16  ->  zero-ref    "field V58.Item3 (fldOffset=0x20)" P-INDEP
+;  V126 tmp118      [V126,T46] (  2,  0   )  simd16  ->  mm2         "field V65.Item1 (fldOffset=0x0)" P-INDEP
+;  V127 tmp119      [V127,T47] (  2,  0   )  simd16  ->  mm3         "field V65.Item2 (fldOffset=0x10)" P-INDEP
+;  V128 tmp120      [V128,T48] (  2,  0   )  simd16  ->  mm1         "field V65.Item3 (fldOffset=0x20)" P-INDEP
 ;* V129 tmp121      [V129    ] (  0,  0   )  simd16  ->  zero-ref    "field V71.Item1 (fldOffset=0x0)" P-INDEP
 ;* V130 tmp122      [V130    ] (  0,  0   )  simd16  ->  zero-ref    "field V71.Item2 (fldOffset=0x10)" P-INDEP
 ;* V131 tmp123      [V131    ] (  0,  0   )  simd16  ->  zero-ref    "field V79.Item1 (fldOffset=0x0)" P-INDEP
@@ -147,9 +147,8 @@
 ;* V135 tmp127      [V135    ] (  0,  0   )  simd16  ->  zero-ref    "field V85.Item1 (fldOffset=0x0)" P-INDEP
 ;* V136 tmp128      [V136    ] (  0,  0   )  simd16  ->  zero-ref    "field V85.Item2 (fldOffset=0x10)" P-INDEP
 ;  V137 tmp129      [V137,T19] (  4,  0   )  simd16  ->  [rbp-0x60]  spill-single-def "V51.[000..016)"
-;  V138 tmp130      [V138,T10] (  5,  0   )    long  ->  r12         "Cast away GC"
-;  V139 cse0        [V139,T29] (  3,  0   )     int  ->  r14         "CSE - conservative"
-;  V140 cse1        [V140,T03] (  5,  3   )     int  ->  registers   multi-def "CSE - conservative"
+;  V138 tmp130      [V138,T11] (  5,  0   )    long  ->  r12         "Cast away GC"
+;  V139 cse0        [V139,T03] (  5,  3   )     int  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 72
 
@@ -241,122 +240,111 @@ G_M46385_IG13:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15},
        lea      r12, bword ptr [r13+0x0C]
        ; byrRegs +[r12]
        mov      r14d, dword ptr [r13+0x08]
-       mov      dword ptr [rbp-0x34], r14d
        mov      edi, 1
        call     [<unknown method>]
        ; gcrRegs -[rax]
        mov      bword ptr [rbp-0x70], r12
        ; GC ptr vars +{V91}
-       mov      ecx, dword ptr [rbp-0x34]
-       mov      dword ptr [rbp-0x4C], ecx
+       mov      dword ptr [rbp-0x44], r14d
        test     rbx, rbx
        jne      SHORT G_M46385_IG14
-       xor      rsi, rsi
-       ; byrRegs +[rsi]
-       xor      r8d, r8d
+       xor      rdx, rdx
+       ; byrRegs +[rdx]
+       xor      esi, esi
        jmp      SHORT G_M46385_IG15
-                       ;; size=53 bbWeight=0 PerfScore 0.00
-G_M46385_IG14:        ; bbWeight=0, gcVars=0000000080000000 {V91}, gcrefRegs=2008 {rbx r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
-       ; byrRegs -[rsi]
-       lea      rsi, bword ptr [rbx+0x0C]
-       ; byrRegs +[rsi]
-       mov      bword ptr [rbp-0x68], rsi
+                       ;; size=46 bbWeight=0 PerfScore 0.00
+G_M46385_IG14:        ; bbWeight=0, gcVars=0000000040000000 {V91}, gcrefRegs=2008 {rbx r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
+       ; byrRegs -[rdx]
+       lea      rdx, bword ptr [rbx+0x0C]
+       ; byrRegs +[rdx]
+       mov      bword ptr [rbp-0x68], rdx
        ; GC ptr vars +{V20}
        mov      edi, dword ptr [rbx+0x08]
-       mov      dword ptr [rbp-0x38], edi
+       mov      dword ptr [rbp-0x34], edi
        mov      edi, 1
        call     [<unknown method>]
        ; gcrRegs -[rbx]
-       ; byrRegs -[rsi]
+       ; byrRegs -[rdx]
        mov      rbx, bword ptr [rbp-0x68]
        ; byrRegs +[rbx]
-       mov      rsi, rbx
-       ; byrRegs +[rsi]
-       mov      r8d, dword ptr [rbp-0x38]
-                       ;; size=36 bbWeight=0 PerfScore 0.00
-G_M46385_IG15:        ; bbWeight=0, gcVars=0000000080000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
+       mov      rdx, rbx
+       ; byrRegs +[rdx]
+       mov      esi, dword ptr [rbp-0x34]
+                       ;; size=35 bbWeight=0 PerfScore 0.00
+G_M46385_IG15:        ; bbWeight=0, gcVars=0000000040000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
        ; byrRegs -[rbx]
        ; GC ptr vars -{V20}
-       test     r8d, r8d
+       test     esi, esi
        jne      SHORT G_M46385_IG17
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M46385_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
-       ; byrRegs -[rsi]
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M46385_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz
+       ; byrRegs -[rdx]
        ; GC ptr vars -{V91}
        mov      ebx, 0xD1FFAB1E
-       jmp      G_M46385_IG25
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M46385_IG17:        ; bbWeight=0, gcVars=0000000080000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
-       ; byrRegs +[rsi]
-       ; GC ptr vars +{V91}
-       cmp      r8d, 1
+       jmp      SHORT G_M46385_IG25
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M46385_IG17:        ; bbWeight=0, gcVars=0000000040000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
+       ; byrRegs +[rdx]
+       ; GC ptr vars +{V30 V91}
+       cmp      esi, 1
        je       SHORT G_M46385_IG19
-                       ;; size=6 bbWeight=0 PerfScore 0.00
+                       ;; size=5 bbWeight=0 PerfScore 0.00
 G_M46385_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[r13]
-       ; byrRegs -[rsi r12 r15]
-       ; GC ptr vars -{V91}
+       ; byrRegs -[rdx r12 r15]
+       ; GC ptr vars -{V30 V91}
        call     [System.Guid:ThrowBadGuidFormatSpecification()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M46385_IG19:        ; bbWeight=0, gcVars=0000000080000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
+G_M46385_IG19:        ; bbWeight=0, gcVars=0000000040000000 {V91}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
        ; gcrRegs +[r13]
-       ; byrRegs +[rsi r12 r15]
-       ; GC ptr vars +{V91}
-       mov      ecx, dword ptr [rbp-0x4C]
-       mov      rdx, bword ptr [rbp-0x70]
-       ; byrRegs +[rdx]
-       mov      ebx, dword ptr [rbp-0x34]
-       movzx    rsi, word  ptr [rsi]
-       ; byrRegs -[rsi]
+       ; byrRegs +[rdx r12 r15]
+       ; GC ptr vars +{V30 V91}
...

-45 (-4.90%) : 646101.dasm - System.Guid:ToString(System.String,System.IFormatProvider):System.String:this (Tier1)

@@ -12,8 +12,8 @@
 ;  V00 this         [V00,T02] (  4,  2   )   byref  ->  r15         this single-def
 ;  V01 arg1         [V01,T00] (  8,  5   )     ref  ->  rbx         class-hnd single-def <System.String>
 ;* V02 arg2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.IFormatProvider>
-;  V03 loc0         [V03,T09] (  5,  0   )     int  ->  rdi        
-;  V04 loc1         [V04,T11] (  4,  0   )     ref  ->  r13         class-hnd exact single-def <System.String>
+;  V03 loc0         [V03,T10] (  5,  0   )     int  ->  rdi        
+;  V04 loc1         [V04,T09] (  5,  0   )     ref  ->  r13         class-hnd exact single-def <System.String>
 ;* V05 loc2         [V05    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V06 loc3         [V06    ] (  5,  0   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V07 loc4         [V07,T01] (  7,  4   )     int  ->  rax        
@@ -23,23 +23,23 @@
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;  V12 tmp4         [V12,T21] (  2,  0   )     int  ->  rdi        
 ;* V13 tmp5         [V13,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp6         [V14,T22] (  3,  0   )     int  ->  [rbp-0x34]  "Inlining Arg"
+;  V14 tmp6         [V14,T22] (  3,  0   )     int  ->  r14         "Inlining Arg"
 ;  V15 tmp7         [V15,T12] (  4,  0   )   byref  ->  r12         single-def "Inlining Arg"
 ;* V16 tmp8         [V16    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V17 tmp9         [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V18 tmp10        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V19 tmp11        [V19,T33] (  2,  0   )     int  ->  [rbp-0x38]  spill-single-def "Inlining Arg"
-;  V20 tmp12        [V20,T30] (  2,  0   )   byref  ->  [rbp-0x98]  spill-single-def "Inlining Arg"
+;  V19 tmp11        [V19,T32] (  2,  0   )     int  ->  [rbp-0x34]  spill-single-def "Inlining Arg"
+;  V20 tmp12        [V20,T29] (  2,  0   )   byref  ->  [rbp-0x98]  spill-single-def "Inlining Arg"
 ;  V21 tmp13        [V21,T23] (  3,  0   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V22 tmp14        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V23 tmp15        [V23,T07] (  7,  0   )     int  ->  rsi         "Inline stloc first use temp"
-;  V24 tmp16        [V24,T08] (  7,  0   )     int  ->  registers   "Inline stloc first use temp"
+;  V24 tmp16        [V24,T08] (  7,  0   )     int  ->  rbx         "Inline stloc first use temp"
 ;  V25 tmp17        [V25,T24] (  3,  0   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V26 tmp18        [V26,T06] ( 10,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V27 tmp19        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V28 tmp20        [V28    ] (  3,  0   )   byref  ->  [rbp-0x40]  must-init pinned "Inline stloc first use temp"
 ;* V29 tmp21        [V29    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V30 tmp22        [V30,T05] ( 17,  0   )    long  ->  [rbp-0x48]  "Inline stloc first use temp"
+;  V30 tmp22        [V30,T05] ( 17,  0   )    long  ->  r14         "Inline stloc first use temp"
 ;* V31 tmp23        [V31    ] (  0,  0   )  struct (48) zero-ref    "dup spill" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
 ;* V32 tmp24        [V32    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V33 tmp25        [V33    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
@@ -59,27 +59,27 @@
 ;* V47 tmp39        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V48 tmp40        [V48    ] (  0,  0   )  struct (48) zero-ref    "Inline return value spill temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
 ;* V49 tmp41        [V49    ] (  0,  0   )     int  ->  zero-ref   
-;* V50 tmp42        [V50,T48] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;* V50 tmp42        [V50,T47] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V51 tmp43        [V51    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Guid>
 ;* V52 tmp44        [V52    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V53 tmp45        [V53    ] (  0,  0   )  struct (32) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
 ;  V54 tmp46        [V54,T13] (  4,  0   )  simd16  ->  mm1         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V55 tmp47        [V55    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V56 tmp48        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V57 tmp49        [V57,T49] (  0,  0   )  simd16  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V58 tmp50        [V58    ] (  5,  0   )  struct (48) [rbp-0x78]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
-;  V59 tmp51        [V59,T34] (  2,  0   )  simd16  ->  mm2         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V60 tmp52        [V60,T35] (  2,  0   )  simd16  ->  mm3         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;* V57 tmp49        [V57,T48] (  0,  0   )  simd16  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V58 tmp50        [V58    ] (  5,  0   )  struct (48) [rbp-0x70]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
+;  V59 tmp51        [V59,T33] (  2,  0   )  simd16  ->  mm2         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V60 tmp52        [V60,T34] (  2,  0   )  simd16  ->  mm3         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V61 tmp53        [V61    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V62 tmp54        [V62    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V63 tmp55        [V63    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V64 tmp56        [V64,T36] (  2,  0   )  simd16  ->  mm1         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V64 tmp56        [V64,T35] (  2,  0   )  simd16  ->  mm1         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V65 tmp57        [V65    ] (  0,  0   )  struct (48) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
 ;* V66 tmp58        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;  V67 tmp59        [V67,T25] (  3,  0   )  simd16  ->  mm1         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V68 tmp60        [V68,T37] (  2,  0   )  simd16  ->  mm2         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V69 tmp61        [V69,T38] (  2,  0   )  simd16  ->  mm0         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
-;  V70 tmp62        [V70,T39] (  2,  0   )  simd16  ->  mm1         "impAppendStmt"
+;  V68 tmp60        [V68,T36] (  2,  0   )  simd16  ->  mm2         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V69 tmp61        [V69,T37] (  2,  0   )  simd16  ->  mm0         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V70 tmp62        [V70,T38] (  2,  0   )  simd16  ->  mm1         "impAppendStmt"
 ;* V71 tmp63        [V71    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]>
 ;  V72 tmp64        [V72,T14] (  4,  0   )  simd16  ->  mm0         "spilled call-like call argument"
 ;* V73 tmp65        [V73    ] (  0,  0   )  simd16  ->  zero-ref    "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
@@ -89,26 +89,26 @@
 ;* V77 tmp69        [V77    ] (  0,  0   )  simd16  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;* V78 tmp70        [V78    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
 ;  V79 tmp71        [V79,T26] (  3,  0   )  simd16  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
-;  V80 tmp72        [V80,T40] (  2,  0   )  simd16  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+;  V80 tmp72        [V80,T39] (  2,  0   )  simd16  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
 ;* V81 tmp73        [V81    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
 ;  V82 tmp74        [V82,T27] (  3,  0   )  simd16  ->  mm4         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
 ;  V83 tmp75        [V83,T28] (  3,  0   )  simd16  ->  mm3         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
 ;* V84 tmp76        [V84    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
-;  V85 tmp77        [V85,T41] (  2,  0   )  simd16  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
-;  V86 tmp78        [V86,T42] (  2,  0   )  simd16  ->  mm1         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+;  V85 tmp77        [V85,T40] (  2,  0   )  simd16  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
+;  V86 tmp78        [V86,T41] (  2,  0   )  simd16  ->  mm1         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
 ;* V87 tmp79        [V87    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V88 tmp80        [V88    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V89 tmp81        [V89    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V90 tmp82        [V90,T31] (  2,  0   )   byref  ->  [rbp-0xA0]  single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-;  V91 tmp83        [V91,T43] (  2,  0   )     int  ->  [rbp-0x7C]  "field V09._length (fldOffset=0x8)" P-INDEP
+;  V90 tmp82        [V90,T30] (  2,  0   )   byref  ->  [rbp-0xA0]  single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V91 tmp83        [V91,T42] (  2,  0   )     int  ->  [rbp-0x74]  "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V92 tmp84        [V92    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V93 tmp85        [V93    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V94 tmp86        [V94    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V95 tmp87        [V95    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
-;  V96 tmp88        [V96,T20] (  3,  0   )   byref  ->  rsi         "field V16._reference (fldOffset=0x0)" P-INDEP
-;  V97 tmp89        [V97,T15] (  4,  0   )     int  ->   r8         "field V16._length (fldOffset=0x8)" P-INDEP
-;  V98 tmp90        [V98,T32] (  2,  0   )   byref  ->  rsi         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;  V99 tmp91        [V99,T44] (  2,  0   )     int  ->   r8         "field V17._length (fldOffset=0x8)" P-INDEP
+;  V96 tmp88        [V96,T20] (  3,  0   )   byref  ->  rdx         "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V97 tmp89        [V97,T15] (  4,  0   )     int  ->  rsi         "field V16._length (fldOffset=0x8)" P-INDEP
+;  V98 tmp90        [V98,T31] (  2,  0   )   byref  ->  rdx         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;  V99 tmp91        [V99,T43] (  2,  0   )     int  ->  rsi         "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V100 tmp92       [V100    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V101 tmp93       [V101    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
 ;* V102 tmp94       [V102    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
@@ -131,12 +131,12 @@
 ;  V119 tmp111      [V119,T18] (  4,  0   )  simd16  ->  mm1         "field V48.Item3 (fldOffset=0x20)" P-INDEP
 ;* V120 tmp112      [V120    ] (  0,  0   )  simd16  ->  zero-ref    "field V53.Item1 (fldOffset=0x0)" P-INDEP
 ;* V121 tmp113      [V121    ] (  0,  0   )  simd16  ->  zero-ref    "field V53.Item2 (fldOffset=0x10)" P-INDEP
-;  V122 tmp114      [V122    ] (  3,  0   )  simd16  ->  [rbp-0x78]  do-not-enreg[XS] addr-exposed "field V58.Item1 (fldOffset=0x0)" P-DEP
-;  V123 tmp115      [V123    ] (  3,  0   )  simd16  ->  [rbp-0x68]  do-not-enreg[XS] addr-exposed "field V58.Item2 (fldOffset=0x10)" P-DEP
-;  V124 tmp116      [V124    ] (  3,  0   )  simd16  ->  [rbp-0x58]  do-not-enreg[XS] addr-exposed "field V58.Item3 (fldOffset=0x20)" P-DEP
-;  V125 tmp117      [V125,T45] (  2,  0   )  simd16  ->  mm2         "field V65.Item1 (fldOffset=0x0)" P-INDEP
-;  V126 tmp118      [V126,T46] (  2,  0   )  simd16  ->  mm3         "field V65.Item2 (fldOffset=0x10)" P-INDEP
-;  V127 tmp119      [V127,T47] (  2,  0   )  simd16  ->  mm1         "field V65.Item3 (fldOffset=0x20)" P-INDEP
+;  V122 tmp114      [V122    ] (  3,  0   )  simd16  ->  [rbp-0x70]  do-not-enreg[XS] addr-exposed "field V58.Item1 (fldOffset=0x0)" P-DEP
+;  V123 tmp115      [V123    ] (  3,  0   )  simd16  ->  [rbp-0x60]  do-not-enreg[XS] addr-exposed "field V58.Item2 (fldOffset=0x10)" P-DEP
+;  V124 tmp116      [V124    ] (  3,  0   )  simd16  ->  [rbp-0x50]  do-not-enreg[XS] addr-exposed "field V58.Item3 (fldOffset=0x20)" P-DEP
+;  V125 tmp117      [V125,T44] (  2,  0   )  simd16  ->  mm2         "field V65.Item1 (fldOffset=0x0)" P-INDEP
+;  V126 tmp118      [V126,T45] (  2,  0   )  simd16  ->  mm3         "field V65.Item2 (fldOffset=0x10)" P-INDEP
+;  V127 tmp119      [V127,T46] (  2,  0   )  simd16  ->  mm1         "field V65.Item3 (fldOffset=0x20)" P-INDEP
 ;* V128 tmp120      [V128    ] (  0,  0   )  simd16  ->  zero-ref    "field V71.Item1 (fldOffset=0x0)" P-INDEP
 ;* V129 tmp121      [V129    ] (  0,  0   )  simd16  ->  zero-ref    "field V71.Item2 (fldOffset=0x10)" P-INDEP
 ;* V130 tmp122      [V130    ] (  0,  0   )  simd16  ->  zero-ref    "field V78.Item1 (fldOffset=0x0)" P-INDEP
@@ -146,9 +146,8 @@
 ;* V134 tmp126      [V134    ] (  0,  0   )  simd16  ->  zero-ref    "field V84.Item1 (fldOffset=0x0)" P-INDEP
 ;* V135 tmp127      [V135    ] (  0,  0   )  simd16  ->  zero-ref    "field V84.Item2 (fldOffset=0x10)" P-INDEP
 ;  V136 tmp128      [V136,T19] (  4,  0   )  simd16  ->  [rbp-0x90]  spill-single-def "V51.[000..016)"
-;  V137 tmp129      [V137,T10] (  5,  0   )    long  ->  r12         "Cast away GC"
-;  V138 cse0        [V138,T29] (  3,  0   )     int  ->  r14         "CSE - conservative"
-;  V139 cse1        [V139,T03] (  5,  3   )     int  ->  registers   multi-def "CSE - conservative"
+;  V137 tmp129      [V137,T11] (  5,  0   )    long  ->  r12         "Cast away GC"
+;  V138 cse0        [V138,T03] (  5,  3   )     int  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 168
 
@@ -240,122 +239,111 @@ G_M46385_IG13:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15},
        lea      r12, bword ptr [r13+0x0C]
        ; byrRegs +[r12]
        mov      r14d, dword ptr [r13+0x08]
-       mov      dword ptr [rbp-0x34], r14d
        mov      edi, 1
        call     [<unknown method>]
        ; gcrRegs -[rax]
        mov      bword ptr [rbp-0xA0], r12
        ; GC ptr vars +{V90}
-       mov      ecx, dword ptr [rbp-0x34]
-       mov      dword ptr [rbp-0x7C], ecx
+       mov      dword ptr [rbp-0x74], r14d
        test     rbx, rbx
        jne      SHORT G_M46385_IG14
-       xor      rsi, rsi
-       ; byrRegs +[rsi]
-       xor      r8d, r8d
+       xor      rdx, rdx
+       ; byrRegs +[rdx]
+       xor      esi, esi
        jmp      SHORT G_M46385_IG15
-                       ;; size=56 bbWeight=0 PerfScore 0.00
-G_M46385_IG14:        ; bbWeight=0, gcVars=0000000080000000 {V90}, gcrefRegs=2008 {rbx r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
-       ; byrRegs -[rsi]
-       lea      rsi, bword ptr [rbx+0x0C]
-       ; byrRegs +[rsi]
-       mov      bword ptr [rbp-0x98], rsi
+                       ;; size=49 bbWeight=0 PerfScore 0.00
+G_M46385_IG14:        ; bbWeight=0, gcVars=0000000040000000 {V90}, gcrefRegs=2008 {rbx r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
+       ; byrRegs -[rdx]
+       lea      rdx, bword ptr [rbx+0x0C]
+       ; byrRegs +[rdx]
+       mov      bword ptr [rbp-0x98], rdx
        ; GC ptr vars +{V20}
        mov      edi, dword ptr [rbx+0x08]
-       mov      dword ptr [rbp-0x38], edi
+       mov      dword ptr [rbp-0x34], edi
        mov      edi, 1
        call     [<unknown method>]
        ; gcrRegs -[rbx]
-       ; byrRegs -[rsi]
+       ; byrRegs -[rdx]
        mov      rbx, bword ptr [rbp-0x98]
        ; byrRegs +[rbx]
-       mov      rsi, rbx
-       ; byrRegs +[rsi]
-       mov      r8d, dword ptr [rbp-0x38]
-                       ;; size=42 bbWeight=0 PerfScore 0.00
-G_M46385_IG15:        ; bbWeight=0, gcVars=0000000080000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
+       mov      rdx, rbx
+       ; byrRegs +[rdx]
+       mov      esi, dword ptr [rbp-0x34]
+                       ;; size=41 bbWeight=0 PerfScore 0.00
+G_M46385_IG15:        ; bbWeight=0, gcVars=0000000040000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
        ; byrRegs -[rbx]
        ; GC ptr vars -{V20}
-       test     r8d, r8d
+       test     esi, esi
        jne      SHORT G_M46385_IG17
-                       ;; size=5 bbWeight=0 PerfScore 0.00
-G_M46385_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=9000 {r12 r15}, gcvars, byref
-       ; byrRegs -[rsi]
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M46385_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2000 {r13}, byrefRegs=9000 {r12 r15}, gcvars, byref, isz
+       ; byrRegs -[rdx]
        ; GC ptr vars -{V90}
        mov      ebx, 0xD1FFAB1E
-       jmp      G_M46385_IG25
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M46385_IG17:        ; bbWeight=0, gcVars=0000000080000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
-       ; byrRegs +[rsi]
-       ; GC ptr vars +{V90}
-       cmp      r8d, 1
+       jmp      SHORT G_M46385_IG25
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M46385_IG17:        ; bbWeight=0, gcVars=0000000040000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
+       ; byrRegs +[rdx]
+       ; GC ptr vars +{V30 V90}
+       cmp      esi, 1
        je       SHORT G_M46385_IG19
-                       ;; size=6 bbWeight=0 PerfScore 0.00
+                       ;; size=5 bbWeight=0 PerfScore 0.00
 G_M46385_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[r13]
-       ; byrRegs -[rsi r12 r15]
-       ; GC ptr vars -{V90}
+       ; byrRegs -[rdx r12 r15]
+       ; GC ptr vars -{V30 V90}
        call     [System.Guid:ThrowBadGuidFormatSpecification()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M46385_IG19:        ; bbWeight=0, gcVars=0000000080000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9040 {rsi r12 r15}, gcvars, byref, isz
+G_M46385_IG19:        ; bbWeight=0, gcVars=0000000040000000 {V90}, gcrefRegs=2000 {r13}, byrefRegs=9004 {rdx r12 r15}, gcvars, byref, isz
        ; gcrRegs +[r13]
-       ; byrRegs +[rsi r12 r15]
-       ; GC ptr vars +{V90}
-       mov      ecx, dword ptr [rbp-0x7C]
-       mov      rdx, bword ptr [rbp-0xA0]
-       ; byrRegs +[rdx]
-       mov      ebx, dword ptr [rbp-0x34]
-       movzx    rsi, word  ptr [rsi]
-       ; byrRegs -[rsi]
+       ; byrRegs +[rdx r12 r15]
+       ; GC ptr vars +{V30 V90}
+       mov      ecx, dword ptr [rbp-0x74]
...

-24 (-2.89%) : 49659.dasm - System.Resources.ResourceManager:GetResourceFileName(System.Globalization.CultureInfo):System.String:this (Tier1)

@@ -26,35 +26,35 @@
 ;  V14 tmp12        [V14,T12] (  4,  3   )     ref  ->  r13        
 ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V16 tmp14        [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V17 tmp15        [V17,T25] (  5,  0   )     ref  ->  r13        
+;  V17 tmp15        [V17,T24] (  6,  0   )     ref  ->  r13        
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V19 tmp17        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V20 tmp18        [V20,T34] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "dup spill" <System.String>
-;  V21 tmp19        [V21,T29] (  4,  0   )     ref  ->  r13        
+;  V20 tmp18        [V20,T33] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.String>
+;  V21 tmp19        [V21,T28] (  5,  0   )     ref  ->  rdi        
 ;  V22 tmp20        [V22,T10] (  2,  4   )     ref  ->  r12         class-hnd exact single-def "dup spill" <System.String>
 ;  V23 tmp21        [V23,T13] (  4,  3   )     ref  ->  r12        
 ;* V24 tmp22        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V25 tmp23        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V26 tmp24        [V26,T26] (  5,  0   )     ref  ->  r12        
+;  V26 tmp24        [V26,T25] (  6,  0   )     ref  ->  r12        
 ;* V27 tmp25        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V28 tmp26        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V29 tmp27        [V29,T35] (  2,  0   )     ref  ->  r12         class-hnd exact single-def "dup spill" <System.String>
-;  V30 tmp28        [V30,T30] (  4,  0   )     ref  ->  r12        
+;  V29 tmp27        [V29,T34] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.String>
+;  V30 tmp28        [V30,T29] (  5,  0   )     ref  ->  rdi        
 ;  V31 tmp29        [V31,T14] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V32 tmp30        [V32,T11] (  2,  4   )   byref  ->  rdi         single-def "impAppendStmt"
 ;  V33 tmp31        [V33,T17] (  2,  2.67)     ref  ->  r13         class-hnd exact single-def "dup spill" <System.String>
 ;  V34 tmp32        [V34,T20] (  4,  2.00)     ref  ->  r13        
 ;* V35 tmp33        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V36 tmp34        [V36    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V37 tmp35        [V37,T27] (  5,  0   )     ref  ->  r13        
+;  V37 tmp35        [V37,T26] (  6,  0   )     ref  ->  r13        
 ;* V38 tmp36        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V39 tmp37        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V40 tmp38        [V40,T36] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "dup spill" <System.String>
-;  V41 tmp39        [V41,T31] (  4,  0   )     ref  ->  r13        
+;  V40 tmp38        [V40,T35] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.String>
+;  V41 tmp39        [V41,T30] (  5,  0   )     ref  ->  rdi        
 ;* V42 tmp40        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V43 tmp41        [V43,T00] (  5, 17.33)     int  ->  r12         "Inline stloc first use temp"
 ;  V44 tmp42        [V44,T03] (  6,  7.33)  ushort  ->  [rbp-0x2C]  spill-single-def "Inline stloc first use temp"
-;  V45 tmp43        [V45,T33] (  3,  0   )     ref  ->  r14         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V45 tmp43        [V45,T32] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V46 tmp44        [V46,T23] (  3,  1.33)     int  ->   r9        
 ;* V47 tmp45        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V48 tmp46        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -67,11 +67,11 @@
 ;  V55 tmp53        [V55,T21] (  4,  2.00)     ref  ->  rdx        
 ;* V56 tmp54        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V57 tmp55        [V57    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V58 tmp56        [V58,T28] (  5,  0   )     ref  ->  r14        
+;  V58 tmp56        [V58,T27] (  6,  0   )     ref  ->  r14        
 ;* V59 tmp57        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V60 tmp58        [V60    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V61 tmp59        [V61,T37] (  2,  0   )     ref  ->  r14         class-hnd exact single-def "dup spill" <System.String>
-;  V62 tmp60        [V62,T32] (  4,  0   )     ref  ->  r14        
+;  V61 tmp59        [V61,T36] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.String>
+;  V62 tmp60        [V62,T31] (  5,  0   )     ref  ->  rdi        
 ;* V63 tmp61        [V63    ] (  0,  0   )   byref  ->  zero-ref    "field V47._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp62        [V64    ] (  0,  0   )     int  ->  zero-ref    "field V47._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp63        [V65    ] (  0,  0   )   byref  ->  zero-ref    "field V48._reference (fldOffset=0x0)" P-INDEP
@@ -84,12 +84,11 @@
 ;* V72 tmp70        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x8)" P-INDEP
 ;* V73 tmp71        [V73    ] (  0,  0   )   byref  ->  zero-ref    "field V53._reference (fldOffset=0x0)" P-INDEP
 ;* V74 tmp72        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
-;  V75 tmp73        [V75,T38] (  2,  0   )     ref  ->  rdi         "argument with side effect"
-;  V76 tmp74        [V76,T39] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V75 tmp73        [V75,T37] (  2,  0   )     ref  ->  rdi         "argument with side effect"
+;  V76 tmp74        [V76,T38] (  2,  0   )     ref  ->  rsi         "argument with side effect"
 ;  V77 cse0         [V77,T04] (  3,  6.67)     int  ->  [rbp-0x30]  spill-single-def "CSE - moderate"
-;  V78 cse1         [V78,T24] ( 16,  0   )     ref  ->  registers   multi-def "CSE - moderate"
-;  V79 cse2         [V79,T08] (  6,  4.33)    long  ->  r14         "CSE - moderate"
-;  V80 cse3         [V80,T15] (  4,  2.86)     int  ->  [rbp-0x34]  spill-single-def "CSE - moderate"
+;  V78 cse1         [V78,T08] (  6,  4.33)    long  ->  r14         "CSE - moderate"
+;  V79 cse2         [V79,T15] (  4,  2.86)     int  ->  [rbp-0x34]  spill-single-def "CSE - moderate"
 ;
 ; Lcl frame size = 24
 
@@ -110,94 +109,82 @@ G_M51875_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M51875_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        mov      r14, 0xD1FFAB1E      ; System.Globalization.CultureInfo
        cmp      qword ptr [rbx], r14
-       jne      G_M51875_IG36
+       jne      G_M51875_IG30
        mov      r13, gword ptr [rbx+0x48]
        ; gcrRegs +[r13]
        test     r13, r13
-       jne      SHORT G_M51875_IG06
+       jne      SHORT G_M51875_IG04
                        ;; size=28 bbWeight=1 PerfScore 7.50
-G_M51875_IG03:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG03:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r13]
        mov      rdi, gword ptr [rbx+0x30]
        ; gcrRegs +[rdi]
-       mov      r13, gword ptr [rdi+0x18]
+       mov      rdi, gword ptr [rdi+0x18]
+       mov      rsi, 0xD1FFAB1E
+       ; gcrRegs +[rsi]
+       test     rdi, rdi
+       cmove    rdi, rsi
+       mov      r13, rdi
        ; gcrRegs +[r13]
        test     r13, r13
-       jne      SHORT G_M51875_IG04
-       mov      r13, 0xD1FFAB1E
-                       ;; size=23 bbWeight=0 PerfScore 0.00
-G_M51875_IG04:        ; bbWeight=0, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
-       test     r13, r13
-       jne      SHORT G_M51875_IG05
-       mov      r13, 0xD1FFAB1E
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M51875_IG05:        ; bbWeight=0, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+       cmove    r13, rsi
        lea      rdi, bword ptr [rbx+0x48]
+       ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
        mov      rsi, r13
-       ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rsi]
        ; byrRegs -[rdi]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG06:        ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
+                       ;; size=47 bbWeight=0 PerfScore 0.00
+G_M51875_IG04:        ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
        call     [System.Globalization.CultureInfo:get_InvariantCulture():System.Globalization.CultureInfo]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        cmp      qword ptr [rax], r14
-       jne      G_M51875_IG37
+       jne      G_M51875_IG31
                        ;; size=15 bbWeight=1 PerfScore 7.00
-G_M51875_IG07:        ; bbWeight=1, gcrefRegs=A009 {rax rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG05:        ; bbWeight=1, gcrefRegs=A009 {rax rbx r13 r15}, byrefRegs=0000 {}, byref, isz
        mov      r12, gword ptr [rax+0x48]
        ; gcrRegs +[r12]
        test     r12, r12
-       jne      SHORT G_M51875_IG11
+       jne      SHORT G_M51875_IG07
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M51875_IG08:        ; bbWeight=0, gcrefRegs=A009 {rax rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG06:        ; bbWeight=0, gcrefRegs=A009 {rax rbx r13 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r12]
        mov      rdi, gword ptr [rax+0x30]
        ; gcrRegs +[rdi]
-       mov      r12, gword ptr [rdi+0x18]
+       mov      rdi, gword ptr [rdi+0x18]
+       mov      rsi, 0xD1FFAB1E
+       ; gcrRegs +[rsi]
+       test     rdi, rdi
+       cmove    rdi, rsi
+       mov      r12, rdi
        ; gcrRegs +[r12]
        test     r12, r12
-       jne      SHORT G_M51875_IG09
-       mov      rdi, 0xD1FFAB1E
-       mov      r12, rdi
-                       ;; size=26 bbWeight=0 PerfScore 0.00
-G_M51875_IG09:        ; bbWeight=0, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
-       test     r12, r12
-       jne      SHORT G_M51875_IG10
-       mov      rdi, 0xD1FFAB1E
-       ; gcrRegs +[rdi]
-       mov      r12, rdi
-                       ;; size=18 bbWeight=0 PerfScore 0.00
-G_M51875_IG10:        ; bbWeight=0, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi]
+       cmove    r12, rsi
        lea      rdi, bword ptr [rax+0x48]
+       ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
        mov      rsi, r12
-       ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG11:        ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+                       ;; size=47 bbWeight=0 PerfScore 0.00
+G_M51875_IG07:        ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
        cmp      r13, r12
-       je       SHORT G_M51875_IG14
+       je       SHORT G_M51875_IG10
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M51875_IG12:        ; bbWeight=0.43, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
+G_M51875_IG08:        ; bbWeight=0.43, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
        test     r13, r13
-       je       G_M51875_IG26
+       je       G_M51875_IG22
        test     r12, r12
-       je       G_M51875_IG26
+       je       G_M51875_IG22
        mov      eax, dword ptr [r13+0x08]
        mov      dword ptr [rbp-0x34], eax
        cmp      eax, dword ptr [r12+0x08]
-       jne      G_M51875_IG26
+       jne      G_M51875_IG22
                        ;; size=36 bbWeight=0.43 PerfScore 4.08
-G_M51875_IG13:        ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
+G_M51875_IG09:        ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref
        mov      edi, 1
        call     [<unknown method>]
        ; gcr arg pop 0
@@ -223,9 +210,9 @@ G_M51875_IG13:        ; bbWeight=1, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=
        ; byrRegs -[rsi rdi]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M51875_IG26
+       je       G_M51875_IG22
                        ;; size=75 bbWeight=1 PerfScore 21.50
-G_M51875_IG14:        ; bbWeight=0.33, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+G_M51875_IG10:        ; bbWeight=0.33, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      rdi, gword ptr [r15+0x08]
        ; gcrRegs +[rdi]
@@ -236,7 +223,7 @@ G_M51875_IG14:        ; bbWeight=0.33, gcrefRegs=8000 {r15}, byrefRegs=0000 {},
        ; gcr arg pop 0
        nop      
                        ;; size=21 bbWeight=0.33 PerfScore 1.83
-G_M51875_IG15:        ; bbWeight=0.33, epilog, nogc, extend
+G_M51875_IG11:        ; bbWeight=0.33, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -246,37 +233,37 @@ G_M51875_IG15:        ; bbWeight=0.33, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.33 PerfScore 1.42
-G_M51875_IG16:        ; bbWeight=0.67, gcVars=0000000000000000 {}, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M51875_IG12:        ; bbWeight=0.67, gcVars=0000000000000000 {}, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax] +[rbx r13 r15]
        mov      edi, r8d
        mov      rdx, 0xD1FFAB1E      ; static handle
        movzx    r9, byte  ptr [rdi+rdx]
        and      r9d, 31
                        ;; size=22 bbWeight=0.67 PerfScore 1.83
-G_M51875_IG17:        ; bbWeight=0.67, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG13:        ; bbWeight=0.67, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
        mov      edi, 1
        shlx     edi, edi, r9d
        test     edi, 287
-       jne      SHORT G_M51875_IG19
+       jne      SHORT G_M51875_IG15
                        ;; size=18 bbWeight=0.67 PerfScore 1.33
-G_M51875_IG18:        ; bbWeight=2.67, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG14:        ; bbWeight=2.67, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
        cmp      r8d, 45
...

+21 (+1.77%) : 7112.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)

@@ -33,55 +33,55 @@
 ;* V21 tmp16        [V21,T21] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;  V22 tmp17        [V22,T14] (  2,  4.01)     int  ->  rdx         "Inlining Arg"
 ;* V23 tmp18        [V23    ] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V24 tmp19        [V24,T29] (  4,  0   )     int  ->  rdi         "Inline stloc first use temp"
+;  V24 tmp19        [V24,T28] (  4,  0   )     int  ->  rdi         "Inline stloc first use temp"
 ;* V25 tmp20        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-;  V26 tmp21        [V26,T30] (  4,  0   )     int  ->  rdi         "Inline stloc first use temp"
+;  V26 tmp21        [V26,T29] (  4,  0   )     int  ->  rdi         "Inline stloc first use temp"
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V28 tmp23        [V28    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V29 tmp24        [V29,T23] (  5,  0   )     int  ->  r13         "Inline stloc first use temp"
+;  V29 tmp24        [V29,T22] (  5,  0   )     int  ->  r13         "Inline stloc first use temp"
 ;* V30 tmp25        [V30    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V31 tmp26        [V31,T26] (  4,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V31 tmp26        [V31,T25] (  4,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V32 tmp27        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V33 tmp28        [V33,T32] (  3,  0   )     int  ->  r13         "Inlining Arg"
-;  V34 tmp29        [V34,T36] (  2,  0   )   byref  ->  [rbp-0x30]  spill-single-def "Inlining Arg"
+;  V33 tmp28        [V33,T31] (  3,  0   )     int  ->  r13         "Inlining Arg"
+;  V34 tmp29        [V34,T35] (  2,  0   )   byref  ->  [rbp-0x30]  spill-single-def "Inlining Arg"
 ;* V35 tmp30        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp31        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp32        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V38 tmp33        [V38    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V39 tmp34        [V39,T37] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V39 tmp34        [V39,T36] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V40 tmp35        [V40    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V41 tmp36        [V41,T24] (  5,  0   )     int  ->  r13         "Inline stloc first use temp"
+;  V41 tmp36        [V41,T23] (  5,  0   )     int  ->  r13         "Inline stloc first use temp"
 ;* V42 tmp37        [V42    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V43 tmp38        [V43,T27] (  4,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V43 tmp38        [V43,T26] (  4,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V44 tmp39        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V45 tmp40        [V45,T33] (  3,  0   )     int  ->  r13         "Inlining Arg"
-;  V46 tmp41        [V46,T38] (  2,  0   )   byref  ->  [rbp-0x38]  spill-single-def "Inlining Arg"
+;  V45 tmp40        [V45,T32] (  3,  0   )     int  ->  r13         "Inlining Arg"
+;  V46 tmp41        [V46,T37] (  2,  0   )   byref  ->  [rbp-0x38]  spill-single-def "Inlining Arg"
 ;* V47 tmp42        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V48 tmp43        [V48    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V49 tmp44        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V50 tmp45        [V50    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V51 tmp46        [V51,T39] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V51 tmp46        [V51,T38] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V52 tmp47        [V52    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V53 tmp48        [V53,T25] (  5,  0   )     int  ->  r13         "Inline stloc first use temp"
+;  V53 tmp48        [V53,T24] (  5,  0   )     int  ->  r13         "Inline stloc first use temp"
 ;* V54 tmp49        [V54    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V55 tmp50        [V55,T28] (  4,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V55 tmp50        [V55,T27] (  4,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V56 tmp51        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V57 tmp52        [V57,T34] (  3,  0   )     int  ->  r13         "Inlining Arg"
-;  V58 tmp53        [V58,T40] (  2,  0   )   byref  ->  [rbp-0x40]  spill-single-def "Inlining Arg"
+;  V57 tmp52        [V57,T33] (  3,  0   )     int  ->  r13         "Inlining Arg"
+;  V58 tmp53        [V58,T39] (  2,  0   )   byref  ->  [rbp-0x40]  spill-single-def "Inlining Arg"
 ;* V59 tmp54        [V59    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V60 tmp55        [V60    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V61 tmp56        [V61    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V62 tmp57        [V62    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V63 tmp58        [V63,T41] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V63 tmp58        [V63,T40] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;  V64 tmp59        [V64,T04] (  4, 45.60)     int  ->  rdi         "Inline stloc first use temp"
 ;* V65 tmp60        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;  V66 tmp61        [V66,T05] (  3, 45.60)  ushort  ->  rsi         "Inlining Arg"
-;  V67 tmp62        [V67,T31] (  4,  0   )     int  ->  rdi         "Inline stloc first use temp"
+;  V67 tmp62        [V67,T30] (  4,  0   )     int  ->  rdi         "Inline stloc first use temp"
 ;* V68 tmp63        [V68    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
-;  V69 tmp64        [V69,T42] (  2,  0   )   byref  ->  rsi         single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-;  V70 tmp65        [V70,T45] (  2,  0   )     int  ->  rax         "field V25._length (fldOffset=0x8)" P-INDEP
-;  V71 tmp66        [V71,T43] (  2,  0   )   byref  ->  rsi         "field V27._reference (fldOffset=0x0)" P-INDEP
-;  V72 tmp67        [V72,T46] (  2,  0   )     int  ->  rax         "field V27._length (fldOffset=0x8)" P-INDEP
+;  V69 tmp64        [V69,T41] (  2,  0   )   byref  ->  rsi         single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+;  V70 tmp65        [V70,T44] (  2,  0   )     int  ->  rax         "field V25._length (fldOffset=0x8)" P-INDEP
+;  V71 tmp66        [V71,T42] (  2,  0   )   byref  ->  rsi         "field V27._reference (fldOffset=0x0)" P-INDEP
+;  V72 tmp67        [V72,T45] (  2,  0   )     int  ->  rax         "field V27._length (fldOffset=0x8)" P-INDEP
 ;* V73 tmp68        [V73    ] (  0,  0   )   byref  ->  zero-ref    "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V74 tmp69        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;* V75 tmp70        [V75    ] (  0,  0   )   byref  ->  zero-ref    "field V32._reference (fldOffset=0x0)" P-INDEP
@@ -102,12 +102,11 @@
 ;* V90 tmp85        [V90    ] (  0,  0   )     int  ->  zero-ref    "field V61._length (fldOffset=0x8)" P-INDEP
 ;  V91 tmp86        [V91,T08] (  2, 22.80)   byref  ->  rax         "field V65._reference (fldOffset=0x0)" P-INDEP
 ;  V92 tmp87        [V92,T09] (  2, 22.80)     int  ->  rcx         "field V65._length (fldOffset=0x8)" P-INDEP
-;  V93 tmp88        [V93,T44] (  2,  0   )   byref  ->  rsi         single-def "field V68._reference (fldOffset=0x0)" P-INDEP
-;  V94 tmp89        [V94,T47] (  2,  0   )     int  ->  rax         "field V68._length (fldOffset=0x8)" P-INDEP
+;  V93 tmp88        [V93,T43] (  2,  0   )   byref  ->  rsi         single-def "field V68._reference (fldOffset=0x0)" P-INDEP
+;  V94 tmp89        [V94,T46] (  2,  0   )     int  ->  rax         "field V68._length (fldOffset=0x8)" P-INDEP
 ;  V95 cse0         [V95,T07] (  8, 29.66)     int  ->  r13         multi-def "CSE - aggressive"
-;  V96 cse1         [V96,T22] (  9,  0   )     ref  ->  rsi         multi-def "CSE - conservative"
-;  V97 cse2         [V97,T06] (  3, 34.20)    long  ->  r13         "CSE - aggressive"
-;  V98 rat0         [V98,T35] (  3,  0   )     int  ->  rcx         "ReplaceWithLclVar is creating a new local variable"
+;  V96 cse1         [V96,T06] (  3, 34.20)    long  ->  r13         "CSE - aggressive"
+;  V97 rat0         [V97,T34] (  3,  0   )     int  ->  rcx         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 24
 
@@ -361,17 +360,17 @@ G_M9458_IG29:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, b
        mov      r13d, ecx
        test     r13d, r13d
        jge      SHORT G_M9458_IG30
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
+       ; byrRegs -[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
-       ; byrRegs -[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; byrRegs -[rax]
        ; gcr arg pop 0
-                       ;; size=61 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M9458_IG30:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
        cmp      r13d, 2
        jb       G_M9458_IG40
@@ -418,17 +417,17 @@ G_M9458_IG32:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, b
        mov      r13d, ecx
        test     r13d, r13d
        jge      SHORT G_M9458_IG33
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
+       ; byrRegs -[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
-       ; byrRegs -[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; byrRegs -[rax]
        ; gcr arg pop 0
-                       ;; size=61 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M9458_IG33:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
        cmp      r13d, 2
        jb       G_M9458_IG40
@@ -475,17 +474,17 @@ G_M9458_IG35:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, b
        mov      r13d, ecx
        test     r13d, r13d
        jge      SHORT G_M9458_IG36
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
+       ; byrRegs -[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
-       ; byrRegs -[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; byrRegs -[rax]
        ; gcr arg pop 0
-                       ;; size=61 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M9458_IG36:        ; bbWeight=0, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref, isz
        cmp      r13d, 2
        jb       SHORT G_M9458_IG40
@@ -622,7 +621,7 @@ RWD00   dd  G_M9458_IG28 - G_M9458_IG02
            dd  G_M9458_IG31 - G_M9458_IG02
 
 
-; Total bytes of code 1188, prolog size 25, PerfScore 472.26, instruction count 284, allocated bytes for code 1188 (MethodHash=ed90db0d) for method System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
+Total bytes of code 1209, prolog size 25, PerfScore 472.26, instruction count 284, allocated bytes for code 1209 (MethodHash=ed90db0d) for method System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:

+10 (+1.95%) : 726632.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:WithLanguageVersion(int):Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:this (Tier1)

@@ -16,7 +16,7 @@
 ;  V04 tmp1         [V04,T00] ( 13, 26   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.CSharpParseOptions>
 ;  V05 tmp2         [V05,T15] (  3,  2   )     int  ->  r13         "Inline return value spill temp"
 ;  V06 tmp3         [V06,T01] (  6, 10.00)     int  ->  r14         "impAppendStmt"
-;  V07 tmp4         [V07,T11] (  2,  4   )     int  ->  rax         "impAppendStmt"
+;  V07 tmp4         [V07,T12] (  2,  4   )     int  ->  rax         "impAppendStmt"
 ;  V08 tmp5         [V08,T06] (  4,  6   )     int  ->  rcx         "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[System.String]>
 ;* V10 tmp7         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -27,7 +27,7 @@
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V16 tmp13        [V16,T14] (  3,  2   )     ref  ->  rsi        
 ;* V17 tmp14        [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V18 tmp15        [V18,T12] (  4,  3   )     ref  ->  rsi        
+;  V18 tmp15        [V18,T10] (  5,  5   )     ref  ->  rsi        
 ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V20 tmp17        [V20,T04] (  4,  8   )     ref  ->  [rbp-0x30]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;  V21 tmp18        [V21,T05] (  4,  8   )     ref  ->  [rbp-0x38]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
@@ -39,7 +39,7 @@
 ;  V27 tmp24        [V27,T09] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp" <System.LazyHelper>
 ;  V28 tmp25        [V28,T17] (  3,  2   )     int  ->  rdi         "Inline return value spill temp"
 ;* V29 tmp26        [V29    ] (  0,  0   )  struct ( 8) zero-ref    multireg-ret single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
-;  V30 tmp27        [V30,T10] (  2,  4   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[System.String]>
+;  V30 tmp27        [V30,T11] (  2,  4   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[System.String]>
 ;* V31 tmp28        [V31    ] (  0,  0   )  struct ( 8) zero-ref    "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[System.String]>
 ;  V32 tmp29        [V32,T18] (  2,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <<unknown class>>
 ;* V33 tmp30        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
@@ -71,8 +71,7 @@
 ;* V59 tmp56        [V59    ] (  0,  0   )     int  ->  zero-ref    "field V38._countAdjustment (fldOffset=0x8)" P-DEP
 ;* V60 tmp57        [V60    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V44._root (fldOffset=0x0)" P-INDEP
 ;* V61 tmp58        [V61    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V44._comparers (fldOffset=0x8)" P-INDEP
-;  V62 cse0         [V62,T22] (  2,  0   )     ref  ->  rsi         "CSE - conservative"
-;  V63 cse1         [V63,T13] (  3,  3   )     int  ->  r14         "CSE - moderate"
+;  V62 cse0         [V62,T13] (  3,  3   )     int  ->  r14         "CSE - moderate"
 ;
 ; Lcl frame size = 24
 
@@ -92,15 +91,15 @@ G_M50526_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M50526_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      r14d, dword ptr [rbx+0x2C]
        cmp      r15d, r14d
-       je       G_M50526_IG16
+       je       G_M50526_IG13
        test     r15d, r15d
-       je       G_M50526_IG14
+       je       G_M50526_IG12
                        ;; size=22 bbWeight=1 PerfScore 4.50
 G_M50526_IG03:        ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        cmp      r15d, 0xD1FFAB1E
-       je       G_M50526_IG14
+       je       G_M50526_IG12
        cmp      r15d, 0xD1FFAB1E
-       je       G_M50526_IG14
+       je       G_M50526_IG12
        mov      r13d, r15d
                        ;; size=29 bbWeight=0.67 PerfScore 1.83
 G_M50526_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
@@ -119,13 +118,13 @@ G_M50526_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      rbx, gword ptr [rbx+0x20]
        mov      dword ptr [r12+0x14], ecx
        test     ecx, ecx
-       jne      G_M50526_IG18
+       jne      G_M50526_IG16
                        ;; size=50 bbWeight=1 PerfScore 12.75
 G_M50526_IG05:        ; bbWeight=1, gcVars=0000000000080000 {V50}, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rdx]
        xor      esi, esi
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M50526_IG06:        ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+G_M50526_IG06:        ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
        mov      dword ptr [r12+0x10], esi
        mov      byte  ptr [r12+0x18], al
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
@@ -179,15 +178,15 @@ G_M50526_IG06:        ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {},
        ; byrRegs -[rdi]
        mov      dword ptr [r12+0x2C], r14d
        test     r14d, r14d
-       je       SHORT G_M50526_IG11
-                       ;; size=153 bbWeight=1 PerfScore 22.75
-G_M50526_IG07:        ; bbWeight=0.67, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
+       je       G_M50526_IG11
+                       ;; size=157 bbWeight=1 PerfScore 22.75
+G_M50526_IG07:        ; bbWeight=0.67, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref
        cmp      r14d, 0xD1FFAB1E
-       je       SHORT G_M50526_IG11
+       je       G_M50526_IG11
        cmp      r14d, 0xD1FFAB1E
-       je       SHORT G_M50526_IG11
+       je       G_M50526_IG11
        mov      edi, r14d
-                       ;; size=21 bbWeight=0.67 PerfScore 1.83
+                       ;; size=29 bbWeight=0.67 PerfScore 1.83
 G_M50526_IG08:        ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, byref, isz
        mov      dword ptr [r12+0x28], edi
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Immutable.ImmutableArray`1[System.String]
@@ -216,7 +215,7 @@ G_M50526_IG08:        ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {},
        ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
        test     rbx, rbx
-       je       SHORT G_M50526_IG10
+       je       SHORT G_M50526_IG15
        mov      rdi, rbx
        ; gcrRegs +[rdi]
        xor      rsi, rsi
@@ -228,27 +227,11 @@ G_M50526_IG08:        ; bbWeight=1, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {},
        mov      rsi, rax
        ; gcrRegs +[rsi]
                        ;; size=90 bbWeight=1 PerfScore 17.25
-G_M50526_IG09:        ; bbWeight=1, gcrefRegs=1040 {rsi r12}, byrefRegs=0000 {}, byref, isz
+G_M50526_IG09:        ; bbWeight=1, gcrefRegs=1040 {rsi r12}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
+       mov      rdi, 0xD1FFAB1E      ; const ptr
        test     rsi, rsi
-       jne      SHORT G_M50526_IG12
-       jmp      SHORT G_M50526_IG15
-                       ;; size=7 bbWeight=1 PerfScore 3.25
-G_M50526_IG10:        ; bbWeight=0, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rsi]
-       xor      rsi, rsi
-       ; gcrRegs +[rsi]
-       jmp      SHORT G_M50526_IG09
-                       ;; size=4 bbWeight=0 PerfScore 0.00
-G_M50526_IG11:        ; bbWeight=0.33, gcVars=0000000000080000 {V50}, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rsi] +[rbx]
-       ; GC ptr vars +{V50}
-       mov      edi, 0x4B0
-       jmp      SHORT G_M50526_IG08
-                       ;; size=7 bbWeight=0.33 PerfScore 0.75
-G_M50526_IG12:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=1040 {rsi r12}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx] +[rsi]
-       ; GC ptr vars -{V50}
+       cmove    rsi, gword ptr [rdi]
        lea      rdi, bword ptr [r12+0x20]
        ; byrRegs +[rdi]
        call     CORINFO_HELP_ASSIGN_REF
@@ -258,8 +241,8 @@ G_M50526_IG12:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=1040 {
        mov      dword ptr [r12+0x28], r13d
        mov      rax, r12
        ; gcrRegs +[rax]
-                       ;; size=23 bbWeight=1 PerfScore 3.75
-G_M50526_IG13:        ; bbWeight=1, epilog, nogc, extend
+                       ;; size=40 bbWeight=1 PerfScore 7.25
+G_M50526_IG10:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -269,24 +252,23 @@ G_M50526_IG13:        ; bbWeight=1, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=1 PerfScore 4.25
-G_M50526_IG14:        ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax r12] +[rbx]
+G_M50526_IG11:        ; bbWeight=0.33, gcVars=0000000000080000 {V50}, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rax] +[rbx]
+       ; GC ptr vars +{V50}
+       mov      edi, 0x4B0
+       jmp      G_M50526_IG08
+                       ;; size=10 bbWeight=0.33 PerfScore 0.75
+G_M50526_IG12:        ; bbWeight=0.33, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[r12]
+       ; GC ptr vars -{V50}
        mov      r13d, 0x4B0
        jmp      G_M50526_IG04
                        ;; size=11 bbWeight=0.33 PerfScore 0.75
-G_M50526_IG15:        ; bbWeight=0, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rbx] +[r12]
-       mov      rax, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rax]
-       ; gcrRegs +[rsi]
-       jmp      SHORT G_M50526_IG12
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M50526_IG16:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi r12] +[rbx]
+G_M50526_IG13:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rax, rbx
        ; gcrRegs +[rax]
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M50526_IG17:        ; bbWeight=0, epilog, nogc, extend
+G_M50526_IG14:        ; bbWeight=0, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
        pop      r12
@@ -296,8 +278,14 @@ G_M50526_IG17:        ; bbWeight=0, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M50526_IG18:        ; bbWeight=0, gcVars=0000000000080000 {V50}, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax] +[r12]
+G_M50526_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax rbx] +[r12]
+       xor      rsi, rsi
+       ; gcrRegs +[rsi]
+       jmp      SHORT G_M50526_IG09
+                       ;; size=4 bbWeight=0 PerfScore 0.00
+G_M50526_IG16:        ; bbWeight=0, gcVars=0000000000080000 {V50}, gcrefRegs=1008 {rbx r12}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rsi] +[rbx]
        ; GC ptr vars +{V50}
        dec      ecx
        cmp      ecx, 1
@@ -306,7 +294,7 @@ G_M50526_IG18:        ; bbWeight=0, gcVars=0000000000080000 {V50}, gcrefRegs=100
        jmp      G_M50526_IG06
                        ;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 513, prolog size 19, PerfScore 81.17, instruction count 126, allocated bytes for code 513 (MethodHash=875e3aa1) for method Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:WithLanguageVersion(int):Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:this (Tier1)
+Total bytes of code 523, prolog size 19, PerfScore 81.42, instruction count 123, allocated bytes for code 523 (MethodHash=875e3aa1) for method Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:WithLanguageVersion(int):Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:this (Tier1)
 ; ============================================================
 
 Unwind Info:

+47 (+2.41%) : 533670.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)

@@ -10,53 +10,52 @@
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-;  V01 arg1         [V01,T05] ( 10,  3.67)     ref  ->  r15         class-hnd single-def <int[]>
-;  V02 arg2         [V02,T02] (  8,  4   )     ref  ->  rbx         class-hnd single-def <System.Type>
+;  V01 arg1         [V01,T06] ( 10,  3.67)     ref  ->  r15         class-hnd single-def <int[]>
+;  V02 arg2         [V02,T03] (  8,  4   )     ref  ->  rbx         class-hnd single-def <System.Type>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-;  V04 arg4         [V04,T22] (  8,  1.67)     ref  ->  [rbp+0x10]  class-hnd single-def <int[]>
-;  V05 arg5         [V05,T18] (  6,  2   )     ref  ->  [rbp+0x18]  class-hnd single-def <System.Type>
-;  V06 arg6         [V06,T21] (  3,  2   )     ref  ->  [rbp+0x20]  class-hnd single-def <System.Type[]>
-;  V07 arg7         [V07,T23] (  7,  1.66)     ref  ->  [rbp+0x28]  class-hnd single-def <System.Object[]>
-;  V08 loc0         [V08,T16] (  5,  3   )   ubyte  ->  [rbp-0x2C] 
-;  V09 loc1         [V09,T17] (  5,  3   )   ubyte  ->  [rbp-0x30] 
-;  V10 loc2         [V10,T06] ( 19,  5.04)     int  ->  [rbp-0x34] 
-;  V11 loc3         [V11,T14] (  8,  3   )     ref  ->  [rbp-0x50]  class-hnd <System.Type>
-;  V12 loc4         [V12,T15] (  8,  3   )     ref  ->  [rbp-0x58]  class-hnd <System.Type>
+;  V04 arg4         [V04,T21] (  8,  1.67)     ref  ->  [rbp+0x10]  class-hnd single-def <int[]>
+;  V05 arg5         [V05,T17] (  6,  2   )     ref  ->  [rbp+0x18]  class-hnd single-def <System.Type>
+;  V06 arg6         [V06,T20] (  3,  2   )     ref  ->  [rbp+0x20]  class-hnd single-def <System.Type[]>
+;  V07 arg7         [V07,T22] (  7,  1.66)     ref  ->  [rbp+0x28]  class-hnd single-def <System.Object[]>
+;  V08 loc0         [V08,T15] (  5,  3   )   ubyte  ->  [rbp-0x2C] 
+;  V09 loc1         [V09,T16] (  5,  3   )   ubyte  ->  [rbp-0x30] 
+;  V10 loc2         [V10,T02] ( 24,  8.01)     int  ->  [rbp-0x34] 
+;  V11 loc3         [V11,T13] (  8,  3   )     ref  ->  [rbp-0x40]  class-hnd <System.Type>
+;  V12 loc4         [V12,T14] (  8,  3   )     ref  ->  [rbp-0x48]  class-hnd <System.Type>
 ;* V13 loc5         [V13    ] (  0,  0   )     int  ->  zero-ref   
 ;# V14 OutArgs      [V14    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V15 tmp1         [V15,T03] (  6,  6   )     int  ->  registers   "Span.get_Item index"
-;  V16 tmp2         [V16,T04] (  6,  6   )     int  ->  registers   "Span.get_Item index"
-;  V17 tmp3         [V17,T19] (  6,  2   )     ref  ->  registers   "guarded devirt return temp"
-;  V18 tmp4         [V18,T00] ( 22,  8.32)     ref  ->  [rbp-0x60]  "guarded devirt arg temp"
+;  V15 tmp1         [V15,T04] (  6,  6   )     int  ->  registers   "Span.get_Item index"
+;  V16 tmp2         [V16,T05] (  6,  6   )     int  ->  registers   "Span.get_Item index"
+;  V17 tmp3         [V17,T18] (  6,  2   )     ref  ->  registers   "guarded devirt return temp"
+;  V18 tmp4         [V18,T00] ( 22,  8.32)     ref  ->  [rbp-0x50]  "guarded devirt arg temp"
 ;* V19 tmp5         [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeParameterInfo>
-;  V20 tmp6         [V20,T20] (  6,  2   )     ref  ->  registers   "guarded devirt return temp"
-;  V21 tmp7         [V21,T01] ( 22,  8.32)     ref  ->  [rbp-0x68]  "guarded devirt arg temp"
+;  V20 tmp6         [V20,T19] (  6,  2   )     ref  ->  registers   "guarded devirt return temp"
+;  V21 tmp7         [V21,T01] ( 22,  8.32)     ref  ->  [rbp-0x58]  "guarded devirt arg temp"
 ;* V22 tmp8         [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeParameterInfo>
-;  V23 tmp9         [V23,T28] (  8,  0.12)     ref  ->  [rbp-0x70]  class-hnd "Inline stloc first use temp" <System.RuntimeType>
+;  V23 tmp9         [V23,T27] (  8,  0.12)     ref  ->  [rbp-0x60]  class-hnd "Inline stloc first use temp" <System.RuntimeType>
 ;* V24 tmp10        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Signature>
 ;* V25 tmp11        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Signature>
-;  V26 tmp12        [V26,T29] (  8,  0.12)     ref  ->  [rbp-0x78]  class-hnd "Inline stloc first use temp" <System.RuntimeType>
+;  V26 tmp12        [V26,T28] (  8,  0.12)     ref  ->  [rbp-0x68]  class-hnd "Inline stloc first use temp" <System.RuntimeType>
 ;* V27 tmp13        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Signature>
 ;* V28 tmp14        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Signature>
-;  V29 tmp15        [V29,T11] (  3,  2   )   byref  ->  [rbp-0x80]  single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V30 tmp16        [V30,T09] (  7,  2   )     int  ->  r14         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp17        [V31,T12] (  3,  2   )   byref  ->  [rbp-0x88]  single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-;  V32 tmp18        [V32,T10] (  7,  2   )     int  ->  [rbp-0x38]  single-def "field V03._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp19        [V33,T24] (  6,  0.24)     ref  ->  rcx         "arr expr"
-;  V34 tmp20        [V34,T26] (  6,  0.24)     int  ->  registers   "index expr"
-;  V35 tmp21        [V35,T25] (  6,  0.24)     ref  ->  rdx         "arr expr"
-;  V36 tmp22        [V36,T27] (  6,  0.24)     int  ->  rcx         "index expr"
-;  V37 tmp23        [V37,T08] (  8,  4   )     int  ->  registers   "fgMakeTemp is creating a new local variable"
-;  V38 cse0         [V38,T30] (  3,  0.12)     int  ->  rax         "CSE - conservative"
-;  V39 cse1         [V39,T31] (  3,  0.12)     int  ->  rcx         "CSE - conservative"
-;  V40 cse2         [V40,T32] (  3,  0.00)     int  ->  rdi         "CSE - conservative"
-;  V41 cse3         [V41,T33] (  3,  0.00)     int  ->  rcx         "CSE - conservative"
-;  V42 cse4         [V42,T13] (  7,  3.99)     int  ->  [rbp-0x3C]  spill-single-def "CSE - moderate"
-;  V43 cse5         [V43,T07] (  7,  4.95)    long  ->  [rbp-0x48]  spill-single-def "CSE - moderate"
-;  TEMP_02                                     ref  ->  [rbp-0x90]
-;  TEMP_01                                    long  ->  [rbp-0x98]
+;  V29 tmp15        [V29,T10] (  3,  2   )   byref  ->  [rbp-0x70]  single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V30 tmp16        [V30,T08] (  7,  2   )     int  ->  r14         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp17        [V31,T11] (  3,  2   )   byref  ->  [rbp-0x78]  single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp18        [V32,T09] (  7,  2   )     int  ->  r13         single-def "field V03._length (fldOffset=0x8)" P-INDEP
+;  V33 tmp19        [V33,T23] (  6,  0.24)     ref  ->  rdx         "arr expr"
+;  V34 tmp20        [V34,T25] (  6,  0.24)     int  ->  rcx         "index expr"
+;  V35 tmp21        [V35,T24] (  6,  0.24)     ref  ->  rdx         "arr expr"
+;  V36 tmp22        [V36,T26] (  6,  0.24)     int  ->  rcx         "index expr"
+;  V37 tmp23        [V37,T07] (  8,  4   )     int  ->  registers   "fgMakeTemp is creating a new local variable"
+;  V38 cse0         [V38,T29] (  3,  0.12)     int  ->  rcx         "CSE - conservative"
+;  V39 cse1         [V39,T30] (  3,  0.12)     int  ->  rcx         "CSE - conservative"
+;  V40 cse2         [V40,T31] (  3,  0.00)     int  ->  rcx         "CSE - conservative"
+;  V41 cse3         [V41,T32] (  3,  0.00)     int  ->  rcx         "CSE - conservative"
+;  V42 cse4         [V42,T12] (  7,  3.99)     int  ->  [rbp-0x38]  spill-single-def "CSE - moderate"
+;  TEMP_02                                     ref  ->  [rbp-0x80]
+;  TEMP_01                                    long  ->  [rbp-0x88]
 ;
-; Lcl frame size = 120
+; Lcl frame size = 104
 
 G_M3967_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -65,13 +64,12 @@ G_M3967_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 120
-       lea      rbp, [rsp+0xA0]
+       sub      rsp, 104
+       lea      rbp, [rsp+0x90]
        xor      eax, eax
-       mov      qword ptr [rbp-0x90], rax
-       mov      bword ptr [rbp-0x88], r8
+       mov      qword ptr [rbp-0x80], rax
+       mov      bword ptr [rbp-0x78], r8
        ; GC ptr vars +{V31}
-       mov      dword ptr [rbp-0x38], r9d
        mov      r12, rdi
        ; byrRegs +[r12]
        mov      r14d, esi
@@ -79,6 +77,7 @@ G_M3967_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[r15]
        mov      rbx, rcx
        ; gcrRegs +[rbx]
+       mov      r13d, r9d
        mov      rsi, gword ptr [rbp+0x10]
        ; gcrRegs +[rsi]
        mov      rcx, gword ptr [rbp+0x18]
@@ -87,8 +86,8 @@ G_M3967_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rdx]
        mov      r8, gword ptr [rbp+0x28]
        ; gcrRegs +[r8]
-                       ;; size=70 bbWeight=1 PerfScore 15.00
-G_M3967_IG02:        ; bbWeight=1, gcVars=0000000000001000 {V31}, gcrefRegs=814E {rcx rdx rbx rsi r8 r15}, byrefRegs=1000 {r12}, gcvars, byref, isz
+                       ;; size=63 bbWeight=1 PerfScore 14.25
+G_M3967_IG02:        ; bbWeight=1, gcVars=0000000000000800 {V31}, gcrefRegs=814E {rcx rdx rbx rsi r8 r15}, byrefRegs=1000 {r12}, gcvars, byref, isz
        test     rbx, rbx
        je       SHORT G_M3967_IG04
                        ;; size=5 bbWeight=1 PerfScore 1.25
@@ -96,7 +95,7 @@ G_M3967_IG03:        ; bbWeight=0, gcrefRegs=814E {rcx rdx rbx rsi r8 r15}, byre
        mov      gword ptr [rbp+0x18], rcx
        test     rcx, rcx
        mov      rcx, gword ptr [rbp+0x18]
-       je       G_M3967_IG41
+       je       G_M3967_IG42
                        ;; size=17 bbWeight=0 PerfScore 0.00
 G_M3967_IG04:        ; bbWeight=1, gcrefRegs=814E {rcx rdx rbx rsi r8 r15}, byrefRegs=1000 {r12}, byref, isz
        mov      gword ptr [rbp+0x18], rcx
@@ -106,7 +105,7 @@ G_M3967_IG04:        ; bbWeight=1, gcrefRegs=814E {rcx rdx rbx rsi r8 r15}, byre
 G_M3967_IG05:        ; bbWeight=0, gcrefRegs=814C {rdx rbx rsi r8 r15}, byrefRegs=1000 {r12}, byref
        ; gcrRegs -[rcx]
        test     rbx, rbx
-       je       G_M3967_IG39
+       je       G_M3967_IG40
                        ;; size=9 bbWeight=0 PerfScore 0.00
 G_M3967_IG06:        ; bbWeight=1, gcrefRegs=814C {rdx rbx rsi r8 r15}, byrefRegs=1000 {r12}, byref
        xor      r9d, r9d
@@ -116,261 +115,106 @@ G_M3967_IG06:        ; bbWeight=1, gcrefRegs=814C {rdx rbx rsi r8 r15}, byrefReg
        xor      r11d, r11d
        mov      gword ptr [rbp+0x20], rdx
        mov      edi, dword ptr [rdx+0x08]
-       mov      dword ptr [rbp-0x3C], edi
+       mov      dword ptr [rbp-0x38], edi
        test     edi, edi
-       jle      G_M3967_IG25
+       jle      G_M3967_IG26
                        ;; size=35 bbWeight=1 PerfScore 8.00
 G_M3967_IG07:        ; bbWeight=0.33, gcrefRegs=8148 {rbx rsi r8 r15}, byrefRegs=1000 {r12}, byref, isz
        ; gcrRegs -[rdx]
        test     r8, r8
-       je       G_M3967_IG46
+       je       G_M3967_IG47
        test     r15, r15
-       je       G_M3967_IG46
+       je       G_M3967_IG47
        test     rsi, rsi
-       je       G_M3967_IG46
+       je       G_M3967_IG47
        mov      gword ptr [rbp+0x28], r8
        cmp      dword ptr [r8+0x08], edi
-       jl       SHORT G_M3967_IG13
+       jl       G_M3967_IG13
        cmp      dword ptr [r15+0x08], edi
        jl       SHORT G_M3967_IG12
        mov      gword ptr [rbp+0x10], rsi
        cmp      dword ptr [rsi+0x08], edi
        jl       SHORT G_M3967_IG11
-                       ;; size=52 bbWeight=0.33 PerfScore 5.88
+                       ;; size=56 bbWeight=0.33 PerfScore 5.88
 G_M3967_IG08:        ; bbWeight=0.99, gcrefRegs=8008 {rbx r15}, byrefRegs=1000 {r12}, byref, isz
        ; gcrRegs -[rsi r8]
-       mov      dword ptr [rbp-0x34], r11d
        mov      r8d, r11d
-       mov      qword ptr [rbp-0x48], r8
        mov      rsi, gword ptr [rbp+0x28]
        ; gcrRegs +[rsi]
-       mov      rsi, gword ptr [rsi+8*r8+0x10]
-       mov      r13, 0xD1FFAB1E      ; const ptr
-       cmp      rsi, gword ptr [r13]
-       je       G_M3967_IG44
+       mov      r8, gword ptr [rsi+8*r8+0x10]
+       ; gcrRegs +[r8]
+       mov      rsi, 0xD1FFAB1E      ; const ptr
+       ; gcrRegs -[rsi]
+       cmp      r8, gword ptr [rsi]
+       je       G_M3967_IG45
        test     rbx, rbx
        je       SHORT G_M3967_IG14
-                       ;; size=45 bbWeight=0.99 PerfScore 10.64
+                       ;; size=36 bbWeight=0.99 PerfScore 8.66
 G_M3967_IG09:        ; bbWeight=0, gcrefRegs=8008 {rbx r15}, byrefRegs=1000 {r12}, byref, isz
-       ; gcrRegs -[rsi]
-       mov      bword ptr [rbp-0x80], r12
+       ; gcrRegs -[r8]
+       mov      bword ptr [rbp-0x70], r12
        ; GC ptr vars +{V29}
-       lea      r12d, [r14-0x01]
+       mov      dword ptr [rbp-0x34], r11d
+       mov      r12d, r11d
        ; byrRegs -[r12]
-       cmp      dword ptr [r15+4*r8+0x10], r12d
-       mov      r8, qword ptr [rbp-0x48]
+       mov      qword ptr [rbp-0x88], r12
+       lea      r12d, [r14-0x01]
+       mov      rax, qword ptr [rbp-0x88]
+       cmp      dword ptr [r15+4*rax+0x10], r12d
+       mov      r11d, dword ptr [rbp-0x34]
        jl       SHORT G_M3967_IG10
        mov      r12, rbx
        ; gcrRegs +[r12]
-       mov      r13, r12
-       ; gcrRegs +[r13]
-       mov      r12, bword ptr [rbp-0x80]
+       mov      dword ptr [rbp-0x34], r11d
+       mov      rsi, r12
+       ; gcrRegs +[rsi]
+       mov      r12, bword ptr [rbp-0x70]
        ; gcrRegs -[r12]
        ; byrRegs +[r12]
-       jmp      SHORT G_M3967_IG16
-                       ;; size=31 bbWeight=0 PerfScore 0.00
-G_M3967_IG10:        ; bbWeight=0, gcVars=0000000000001800 {V29 V31}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[r13]
+       jmp      SHORT G_M3967_IG17
+                       ;; size=56 bbWeight=0 PerfScore 0.00
+G_M3967_IG10:        ; bbWeight=0, gcVars=0000000000000C00 {V29 V31}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rsi]
        ; byrRegs -[r12]
-       mov      r12, bword ptr [rbp-0x80]
+       mov      r12, bword ptr [rbp-0x70]
        ; byrRegs +[r12]
        jmp      SHORT G_M3967_IG14
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M3967_IG11:        ; bbWeight=0.17, gcVars=0000000000001000 {V31}, gcrefRegs=8008 {rbx r15}, byrefRegs=1000 {r12}, gcvars, byref
+G_M3967_IG11:        ; bbWeight=0.17, gcVars=0000000000000800 {V31}, gcrefRegs=8008 {rbx r15}, byrefRegs=1000 {r12}, gcvars, byref
        ; GC ptr vars -{V29}
        mov      rsi, gword ptr [rbp+0x10]
        ; gcrRegs +[rsi]
-       mov      edi, dword ptr [rbp-0x3C]
+       mov      edi, dword ptr [rbp-0x38]
        mov      r8, gword ptr [rbp+0x28]
        ; gcrRegs +[r8]
...

librariestestsnotieredcompilation.run.linux.x64.Release.mch

-2 (-2.90%) : 145057.dasm - System.SpanTests.ReadOnlySpanTests+<>cDisplayClass21_0:b9():this (FullOpts)

@@ -35,24 +35,24 @@
 ;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V25 tmp24        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp25        [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V27 tmp26        [V27,T07] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V28 tmp27        [V28,T03] (  2,  2   )     int  ->  rax         "Inline stloc first use temp"
+;* V27 tmp26        [V27,T06] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V28 tmp27        [V28,T03] (  3,  3   )     int  ->  rsi         "Inline stloc first use temp"
 ;* V29 tmp28        [V29    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp29        [V30    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp30        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp31        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp32        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V02._value (fldOffset=0x0)" P-INDEP
-;* V34 tmp33        [V34,T08] (  0,  0   )     int  ->  zero-ref    "field V04._value (fldOffset=0x0)" P-INDEP
+;* V34 tmp33        [V34,T07] (  0,  0   )     int  ->  zero-ref    "field V04._value (fldOffset=0x0)" P-INDEP
 ;* V35 tmp34        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V05._value (fldOffset=0x0)" P-INDEP
 ;* V36 tmp35        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V06.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V37 tmp36        [V37,T09] (  0,  0   )     int  ->  zero-ref    "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V37 tmp36        [V37,T08] (  0,  0   )     int  ->  zero-ref    "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V38 tmp37        [V38    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp38        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V40 tmp39        [V40    ] (  0,  0   )     int  ->  zero-ref    "field V08._value (fldOffset=0x0)" P-INDEP
 ;* V41 tmp40        [V41    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V42 tmp41        [V42    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V43 tmp42        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V10.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V44 tmp43        [V44,T10] (  0,  0   )     int  ->  zero-ref    "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V44 tmp43        [V44,T09] (  0,  0   )     int  ->  zero-ref    "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V45 tmp44        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V11.Item1 (fldOffset=0x0)" P-INDEP
 ;* V46 tmp45        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V11.Item2 (fldOffset=0x4)" P-INDEP
 ;* V47 tmp46        [V47    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
@@ -67,9 +67,8 @@
 ;* V56 tmp55        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V21._value (fldOffset=0x0)" P-INDEP
 ;* V57 tmp56        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V22._value (fldOffset=0x0)" P-INDEP
 ;* V58 tmp57        [V58    ] (  0,  0   )     int  ->  zero-ref    "field V26.Item1 (fldOffset=0x0)" P-INDEP
-;  V59 tmp58        [V59,T05] (  2,  2   )     int  ->  rsi         "field V26.Item2 (fldOffset=0x4)" P-INDEP
-;  V60 cse0         [V60,T04] (  3,  3   )     int  ->  rsi         "CSE - moderate"
-;  V61 cse1         [V61,T06] (  3,  1.50)     ref  ->  rsi         "CSE - moderate"
+;  V59 tmp58        [V59,T04] (  2,  2   )     int  ->  rsi         "field V26.Item2 (fldOffset=0x4)" P-INDEP
+;  V60 cse0         [V60,T05] (  3,  1.50)     ref  ->  rsi         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -85,12 +84,11 @@ G_M60991_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        mov      edi, dword ptr [rdi+0x08]
        ; gcrRegs -[rdi]
        mov      esi, edi
-       mov      eax, esi
-       cmp      eax, edi
+       cmp      esi, edi
        ja       SHORT G_M60991_IG07
        test     esi, esi
        jge      SHORT G_M60991_IG04
-                       ;; size=24 bbWeight=1 PerfScore 8.25
+                       ;; size=22 bbWeight=1 PerfScore 8.00
 G_M60991_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
@@ -116,7 +114,7 @@ G_M60991_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 69, prolog size 4, PerfScore 13.00, instruction count 23, allocated bytes for code 69 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
+Total bytes of code 67, prolog size 4, PerfScore 12.75, instruction count 22, allocated bytes for code 67 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-2 (-1.21%) : 82746.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)

@@ -12,13 +12,12 @@
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.ComponentModel.Composition.CompositionException>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T01] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Exception>
-;  V04 tmp2         [V04,T00] (  5, 10   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
+;  V04 tmp2         [V04,T00] (  6, 12   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V08 tmp6         [V08,T03] (  2,  2   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
+;  V08 tmp6         [V08,T02] (  2,  2   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
 ;* V09 tmp7         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
-;  V10 cse0         [V10,T02] (  3,  3   )     ref  ->  rbx         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -61,18 +60,16 @@ G_M64768_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [<unknown method>]
        ; gcrRegs -[rdx rsi]
        mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rbx, gword ptr [rdi]
-       ; gcrRegs +[rbx]
-       mov      rsi, rbx
+       mov      rsi, gword ptr [rdi]
        ; gcrRegs +[rsi]
        lea      rdi, bword ptr [r15+0x78]
        ; byrRegs +[rdi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi r15]
+       ; gcrRegs -[rsi]
        ; byrRegs -[rdi]
-       mov      rdi, rbx
+       mov      rdi, gword ptr [r15+0x78]
        ; gcrRegs +[rdi]
-                       ;; size=146 bbWeight=1 PerfScore 16.50
+                       ;; size=144 bbWeight=1 PerfScore 18.00
 G_M64768_IG03:        ; bbWeight=1, epilog, nogc, extend
        pop      rbx
        pop      r15
@@ -80,7 +77,7 @@ G_M64768_IG03:        ; bbWeight=1, epilog, nogc, extend
        tail.jmp [<unknown method>]
                        ;; size=10 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 165, prolog size 9, PerfScore 23.50, instruction count 33, allocated bytes for code 165 (MethodHash=0a0c02ff) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
+Total bytes of code 163, prolog size 9, PerfScore 25.00, instruction count 32, allocated bytes for code 163 (MethodHash=0a0c02ff) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-2 (-1.21%) : 82691.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5NullAsErrorsArgumentShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)

@@ -12,13 +12,12 @@
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.ComponentModel.Composition.CompositionException>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T01] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Exception>
-;  V04 tmp2         [V04,T00] (  5, 10   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
+;  V04 tmp2         [V04,T00] (  6, 12   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V08 tmp6         [V08,T03] (  2,  2   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
+;  V08 tmp6         [V08,T02] (  2,  2   )     ref  ->  rsi         class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
 ;* V09 tmp7         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
-;  V10 cse0         [V10,T02] (  3,  3   )     ref  ->  rbx         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -61,18 +60,16 @@ G_M61391_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [<unknown method>]
        ; gcrRegs -[rdx rsi]
        mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rbx, gword ptr [rdi]
-       ; gcrRegs +[rbx]
-       mov      rsi, rbx
+       mov      rsi, gword ptr [rdi]
        ; gcrRegs +[rsi]
        lea      rdi, bword ptr [r15+0x78]
        ; byrRegs +[rdi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi r15]
+       ; gcrRegs -[rsi]
        ; byrRegs -[rdi]
-       mov      rdi, rbx
+       mov      rdi, gword ptr [r15+0x78]
        ; gcrRegs +[rdi]
-                       ;; size=146 bbWeight=1 PerfScore 16.50
+                       ;; size=144 bbWeight=1 PerfScore 18.00
 G_M61391_IG03:        ; bbWeight=1, epilog, nogc, extend
        pop      rbx
        pop      r15
@@ -80,7 +77,7 @@ G_M61391_IG03:        ; bbWeight=1, epilog, nogc, extend
        tail.jmp [<unknown method>]
                        ;; size=10 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 165, prolog size 9, PerfScore 23.50, instruction count 33, allocated bytes for code 165 (MethodHash=b7b31030) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
+Total bytes of code 163, prolog size 9, PerfScore 25.00, instruction count 32, allocated bytes for code 163 (MethodHash=b7b31030) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+3 (+0.24%) : 197291.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)

@@ -155,10 +155,9 @@
 ;  V144 tmp134      [V144,T62] (  3,  6   )     ref  ->  rdi         single-def "argument with side effect"
 ;  V145 tmp135      [V145,T66] (  2,  4   )    long  ->  rsi         "argument with side effect"
 ;  V146 tmp136      [V146,T72] (  6,  0   )  struct ( 8) [rbp-0x40]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
-;  V147 tmp137      [V147,T74] (  2,  0   )     ref  ->  rdi         "argument with side effect"
-;  V148 tmp138      [V148,T75] (  2,  0   )     ref  ->  rdi         "argument with side effect"
+;  V147 tmp137      [V147,T73] (  2,  0   )     ref  ->  rdi         "argument with side effect"
+;  V148 tmp138      [V148,T74] (  2,  0   )     ref  ->  rdi         "argument with side effect"
 ;  V149 cse0        [V149,T24] (  3, 12   )     ref  ->  [rbp-0x88]  spill-single-def "CSE - moderate"
-;  V150 cse1        [V150,T73] (  4,  0   )     ref  ->  rdi         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 104
 
@@ -513,12 +512,13 @@ G_M3949_IG25:        ; bbWeight=0, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0
        ; GC ptr vars -{V20}
        test     edx, edx
        jne      G_M3949_IG37
-       mov      rdi, 0xD1FFAB1E
+       mov      rax, 0xD1FFAB1E
+       ; gcrRegs +[rax]
+       mov      rdi, rax
        ; gcrRegs +[rdi]
        mov      rax, rdi
-       ; gcrRegs +[rax]
        jmp      SHORT G_M3949_IG27
-                       ;; size=23 bbWeight=0 PerfScore 0.00
+                       ;; size=26 bbWeight=0 PerfScore 0.00
 G_M3949_IG26:        ; bbWeight=2, gcVars=00000000000000000000000000000410 {V07 V20}, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rdi]
        ; GC ptr vars +{V20}
@@ -721,7 +721,7 @@ G_M3949_IG39:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=50 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1238, prolog size 31, PerfScore 517.62, instruction count 298, allocated bytes for code 1238 (MethodHash=c5c9f092) for method XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
+Total bytes of code 1241, prolog size 31, PerfScore 517.62, instruction count 299, allocated bytes for code 1241 (MethodHash=c5c9f092) for method XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
 ; ============================================================
 
 Unwind Info:

+7 (+1.01%) : 244521.dasm - System.Text.Json.SourceGeneration.Tests.NodeInteropTestsDefault+NodeInteropTestsContextDefault:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)

@@ -15,7 +15,7 @@
 ;  V04 loc1         [V04,T02] (  4, 12   )     ref  ->  r14         class-hnd exact <System.String>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Queue`1+Enumerator[System.String]>
-;  V07 tmp2         [V07,T26] (  2,  0   )     int  ->  rdi        
+;  V07 tmp2         [V07,T25] (  2,  0   )     int  ->  rdi        
 ;  V08 tmp3         [V08,T23] (  3,  0   )     ref  ->  r14        
 ;  V09 tmp4         [V09,T24] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V10 tmp5         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -68,8 +68,7 @@
 ;  V57 PSPSym       [V57,T20] (  1,  1   )    long  ->  [rbp-0x50]  do-not-enreg[V] "PSPSym"
 ;  V58 cse0         [V58,T16] (  4,  2   )     int  ->  rdi         "CSE - moderate"
 ;  V59 cse1         [V59,T17] (  4,  2   )     int  ->  rdi         "CSE - moderate"
-;  V60 cse2         [V60,T25] (  3,  0   )     ref  ->  rsi         "CSE - moderate"
-;  V61 cse3         [V61,T13] (  3,  5   )    long  ->  r15         "CSE - moderate"
+;  V60 cse2         [V60,T13] (  3,  5   )    long  ->  r15         "CSE - moderate"
 ;
 ; Lcl frame size = 48
 
@@ -272,14 +271,14 @@ G_M55320_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        sete     dil
        test     dil, dil
        jne      SHORT G_M55320_IG20
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=47 bbWeight=0 PerfScore 0.00
 G_M55320_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rbp-0x24], -1
        je       SHORT G_M55320_IG21
@@ -426,7 +425,7 @@ G_M55320_IG33:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 694, prolog size 37, PerfScore 205.46, instruction count 192, allocated bytes for code 694 (MethodHash=458d27e7) for method System.Text.Json.SourceGeneration.Tests.NodeInteropTests_Default+NodeInteropTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
+Total bytes of code 701, prolog size 37, PerfScore 205.46, instruction count 192, allocated bytes for code 701 (MethodHash=458d27e7) for method System.Text.Json.SourceGeneration.Tests.NodeInteropTests_Default+NodeInteropTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+28 (+2.56%) : 101983.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  r12        
 ;  V10 loc7         [V10,T08] (  3, 12   )     ref  ->  rdx         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T23] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T24] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V17 tmp6         [V17,T19] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V19 tmp8         [V19,T25] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V20 tmp9         [V20,T29] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T39] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V26 tmp15        [V26,T30] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V28 tmp17        [V28,T20] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  r12         "Inlining Arg"
-;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  r13         "Inlining Arg"
+;  V30 tmp19        [V30,T26] (  3,  0   )     int  ->  r12         "Inlining Arg"
+;  V31 tmp20        [V31,T31] (  2,  0   )   byref  ->  r13         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V37 tmp26        [V37,T32] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->  rdi         "Inlining Arg"
+;  V41 tmp30        [V41,T21] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V43 tmp32        [V43,T27] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V44 tmp33        [V44,T33] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V50 tmp39        [V50,T34] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  rbx         "Inlining Arg"
+;  V52 tmp41        [V52,T22] (  4,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  r14         "Inlining Arg"
-;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  r15         "Inlining Arg"
+;  V54 tmp43        [V54,T28] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V55 tmp44        [V55,T35] (  2,  0   )   byref  ->  r15         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V61 tmp50        [V61,T36] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T06] (  4, 12   )     int  ->  [rbp-0x54]  spill-single-def "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.46)     ref  ->  r14         class-hnd exact "Inlining Arg" <System.String>
@@ -106,11 +106,10 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T09] (  3, 12   )     ref  ->  rdx         "arr expr"
-;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->  rsi         "argument with side effect"
-;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V98 tmp87        [V98,T37] (  2,  0   )     ref  ->  rsi         "argument with side effect"
+;  V99 tmp88        [V99,T38] (  2,  0   )     ref  ->  rsi         "argument with side effect"
 ;  V100 cse0        [V100,T17] (  3,  3   )     ref  ->  rdi         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  6, 10   )     int  ->  r13         multi-def "CSE - moderate"
-;  V102 cse2        [V102,T19] ( 12,  0   )     ref  ->  rsi         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -380,15 +379,15 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r15d, dword ptr [rbp-0x30]
        sub      r15d, edi
        jns      SHORT G_M45430_IG30
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=70 bbWeight=0 PerfScore 0.00
+                       ;; size=77 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      r15d, 11
        jb       SHORT G_M45430_IG31
@@ -429,15 +428,15 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r12d, dword ptr [rbp-0x30]
        sub      r12d, edi
        jns      SHORT G_M45430_IG33
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=63 bbWeight=0 PerfScore 0.00
+                       ;; size=70 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
        test     r12d, r12d
        je       SHORT G_M45430_IG34
@@ -510,15 +509,15 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r15d, dword ptr [rbp-0x30]
        sub      r15d, edi
        jns      SHORT G_M45430_IG38
+       mov      rdi, 0xD1FFAB1E
+       ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdi, rsi
-       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=70 bbWeight=0 PerfScore 0.00
+                       ;; size=77 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      r15d, 11
        jb       SHORT G_M45430_IG39
@@ -566,15 +565,15 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r14d, dword ptr [rbp-0x30]
        sub      r14d, ebx
        jns      SHORT G_M45430_IG43
-       mov      rsi, 0xD1FFAB1E
-       ; gcrRegs +[rsi]
-       mov      rdi, rsi
+       mov      rdi, 0xD1FFAB1E
        ; gcrRegs +[rdi]
        ; byrRegs -[rdi]
+       mov      rsi, 0xD1FFAB1E
+       ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=8000 {r15}, byref, isz
        test     r14d, r14d
        je       SHORT G_M45430_IG44
@@ -622,7 +621,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=49 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1092, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1092 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1120, prolog size 44, PerfScore 239.00, instruction count 283, allocated bytes for code 1120 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.x64.checked.mch 8 2 6 0 -9 +71
benchmarks.run_tiered.linux.x64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.x64.checked.mch 28 6 22 0 -43 +236
libraries.crossgen2.linux.x64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.linux.x64.checked.mch 9 3 6 0 -22 +112
libraries_tests.run.linux.x64.Release.mch 149 66 79 4 -1,068 +477
librariestestsnotieredcompilation.run.linux.x64.Release.mch 14 8 5 1 -30 +40
realworld.run.linux.x64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.linux.x64.checked.mch 0 0 0 0 -0 +0
208 85 118 5 -1,172 +936

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 34,999 3,164 31,835 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.linux.x64.checked.mch 155,971 58,399 97,572 149 (0.10%) 149 (0.10%)
benchmarks.run_tiered.linux.x64.checked.mch 58,890 44,312 14,578 0 (0.00%) 0 (0.00%)
coreclr_tests.run.linux.x64.checked.mch 694,090 429,241 264,849 323 (0.05%) 323 (0.05%)
libraries.crossgen2.linux.x64.checked.mch 233,626 15 233,611 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.x64.checked.mch 295,421 6 295,415 1 (0.00%) 1 (0.00%)
libraries_tests.run.linux.x64.Release.mch 756,826 495,271 261,555 3,117 (0.41%) 3,117 (0.41%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 304,609 21,873 282,736 6 (0.00%) 6 (0.00%)
realworld.run.linux.x64.checked.mch 33,167 39 33,128 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,440 9 27,431 0 (0.00%) 0 (0.00%)
2,595,039 1,052,329 1,542,710 3,596 (0.14%) 3,596 (0.14%)

jit-analyze output

benchmarks.run_pgo.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 66799627 (overridden on cmd)
Total bytes of diff: 66799689 (overridden on cmd)
Total bytes of delta: 62 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -3204 : 137835.dasm (-100.00 % of base)
       -3011 : 140481.dasm (-100.00 % of base)
       -2941 : 141376.dasm (-100.00 % of base)
       -1968 : 133131.dasm (-100.00 % of base)
       -1956 : 150782.dasm (-100.00 % of base)
       -1696 : 141386.dasm (-100.00 % of base)
       -1456 : 125664.dasm (-100.00 % of base)
        -607 : 16377.dasm (-100.00 % of base)

8 total files with Code Size differences (8 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -3204 (-100.00 % of base) : 137835.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -3011 (-100.00 % of base) : 140481.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
       -2941 (-100.00 % of base) : 141376.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan`1[System.String],ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -1968 (-100.00 % of base) : 133131.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -1956 (-100.00 % of base) : 150782.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -1696 (-100.00 % of base) : 141386.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -1456 (-100.00 % of base) : 125664.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
        -607 (-100.00 % of base) : 16377.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)

Top method improvements (percentages):
       -2941 (-100.00 % of base) : 141376.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan`1[System.String],ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -1696 (-100.00 % of base) : 141386.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -3204 (-100.00 % of base) : 137835.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -1968 (-100.00 % of base) : 133131.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -1956 (-100.00 % of base) : 150782.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -3011 (-100.00 % of base) : 140481.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
       -1456 (-100.00 % of base) : 125664.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
        -607 (-100.00 % of base) : 16377.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)

8 total methods with Code Size differences (8 improved, 0 regressed).


coreclr_tests.run.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 458880954 (overridden on cmd)
Total bytes of diff: 458881147 (overridden on cmd)
Total bytes of delta: 193 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
      -10983 : 417292.dasm (-100.00 % of base)
       -2322 : 411760.dasm (-100.00 % of base)
       -2252 : 106918.dasm (-100.00 % of base)
       -2209 : 151754.dasm (-100.00 % of base)
       -2209 : 116068.dasm (-100.00 % of base)
       -2209 : 185054.dasm (-100.00 % of base)
       -2209 : 162085.dasm (-100.00 % of base)
       -1852 : 611584.dasm (-100.00 % of base)
       -1188 : 256628.dasm (-100.00 % of base)
       -1142 : 634678.dasm (-100.00 % of base)
       -1092 : 590387.dasm (-100.00 % of base)
       -1041 : 36523.dasm (-100.00 % of base)
       -1038 : 143776.dasm (-100.00 % of base)
       -1033 : 30348.dasm (-100.00 % of base)
       -1030 : 206957.dasm (-100.00 % of base)
        -623 : 244126.dasm (-100.00 % of base)
        -550 : 257569.dasm (-100.00 % of base)
        -545 : 414212.dasm (-100.00 % of base)
        -545 : 420678.dasm (-100.00 % of base)
        -486 : 421459.dasm (-100.00 % of base)

28 total files with Code Size differences (28 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
      -10983 (-100.00 % of base) : 417292.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier1)
       -2322 (-100.00 % of base) : 411760.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
       -2252 (-100.00 % of base) : 106918.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2209 (-100.00 % of base) : 151754.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2209 (-100.00 % of base) : 116068.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2209 (-100.00 % of base) : 185054.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2209 (-100.00 % of base) : 162085.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -1852 (-100.00 % of base) : 611584.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
       -1188 (-100.00 % of base) : 256628.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
       -1142 (-100.00 % of base) : 634678.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
       -1092 (-100.00 % of base) : 590387.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1041 (-100.00 % of base) : 36523.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
       -1038 (-100.00 % of base) : 143776.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
       -1033 (-100.00 % of base) : 30348.dasm - System.Number:<FormatInt32>g__FormatInt32Slow|41_0(int,int,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
       -1030 (-100.00 % of base) : 206957.dasm - System.Number:<FormatInt32>g__FormatInt32Slow|41_0(int,int,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
        -623 (-100.00 % of base) : 244126.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateShouldSerializeTest(System.Reflection.MemberInfo):System.Predicate`1[System.Object]:this (Tier1)
        -550 (-100.00 % of base) : 257569.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
        -545 (-100.00 % of base) : 414212.dasm - System.Resources.ResourceFallbackManager+<GetEnumerator>d__5:MoveNext():ubyte:this (Tier1)
        -545 (-100.00 % of base) : 420678.dasm - System.Resources.ResourceFallbackManager+<GetEnumerator>d__5:MoveNext():ubyte:this (Tier1)
        -486 (-100.00 % of base) : 421459.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)

Top method improvements (percentages):
        -550 (-100.00 % of base) : 257569.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
       -1852 (-100.00 % of base) : 611584.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
       -2322 (-100.00 % of base) : 411760.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
        -485 (-100.00 % of base) : 417893.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
        -486 (-100.00 % of base) : 421459.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
      -10983 (-100.00 % of base) : 417292.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier1)
        -287 (-100.00 % of base) : 302928.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
        -623 (-100.00 % of base) : 244126.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateShouldSerializeTest(System.Reflection.MemberInfo):System.Predicate`1[System.Object]:this (Tier1)
        -434 (-100.00 % of base) : 236662.dasm - NumericSortRect:Run():double:this (Tier1)
        -242 (-100.00 % of base) : 303467.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
        -242 (-100.00 % of base) : 630373.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
       -2209 (-100.00 % of base) : 151754.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2209 (-100.00 % of base) : 116068.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2209 (-100.00 % of base) : 185054.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2252 (-100.00 % of base) : 106918.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2209 (-100.00 % of base) : 162085.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -1033 (-100.00 % of base) : 30348.dasm - System.Number:<FormatInt32>g__FormatInt32Slow|41_0(int,int,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
       -1030 (-100.00 % of base) : 206957.dasm - System.Number:<FormatInt32>g__FormatInt32Slow|41_0(int,int,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
       -1041 (-100.00 % of base) : 36523.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
       -1038 (-100.00 % of base) : 143776.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)

28 total methods with Code Size differences (28 improved, 0 regressed).


libraries.pmi.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 59972991 (overridden on cmd)
Total bytes of diff: 59973081 (overridden on cmd)
Total bytes of delta: 90 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -1951 : 189815.dasm (-100.00 % of base)
       -1227 : 251299.dasm (-100.00 % of base)
       -1149 : 152609.dasm (-100.00 % of base)
       -1142 : 251226.dasm (-100.00 % of base)
       -1092 : 152610.dasm (-100.00 % of base)
        -618 : 153311.dasm (-100.00 % of base)
        -593 : 153310.dasm (-100.00 % of base)
        -516 : 153327.dasm (-100.00 % of base)
        -503 : 153326.dasm (-100.00 % of base)

9 total files with Code Size differences (9 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -1951 (-100.00 % of base) : 189815.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
       -1227 (-100.00 % of base) : 251299.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
       -1149 (-100.00 % of base) : 152609.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1142 (-100.00 % of base) : 251226.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
       -1092 (-100.00 % of base) : 152610.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -618 (-100.00 % of base) : 153311.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -593 (-100.00 % of base) : 153310.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
        -516 (-100.00 % of base) : 153327.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
        -503 (-100.00 % of base) : 153326.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)

Top method improvements (percentages):
       -1951 (-100.00 % of base) : 189815.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
       -1149 (-100.00 % of base) : 152609.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1092 (-100.00 % of base) : 152610.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -593 (-100.00 % of base) : 153310.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
        -618 (-100.00 % of base) : 153311.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -503 (-100.00 % of base) : 153326.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
        -516 (-100.00 % of base) : 153327.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
       -1227 (-100.00 % of base) : 251299.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
       -1142 (-100.00 % of base) : 251226.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)

9 total methods with Code Size differences (9 improved, 0 regressed).


libraries_tests.run.linux.x64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 329977293 (overridden on cmd)
Total bytes of diff: 329976702 (overridden on cmd)
Total bytes of delta: -591 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
      -20342 : 54171.dasm (-100.00 % of base)
      -19250 : 65116.dasm (-100.00 % of base)
      -18169 : 54326.dasm (-100.00 % of base)
      -10420 : 54457.dasm (-100.00 % of base)
       -7214 : 713630.dasm (-100.00 % of base)
       -6883 : 697583.dasm (-100.00 % of base)
       -6881 : 92711.dasm (-100.00 % of base)
       -6429 : 684950.dasm (-100.00 % of base)
       -5839 : 592660.dasm (-100.00 % of base)
       -5815 : 697668.dasm (-100.00 % of base)
       -5180 : 701114.dasm (-100.00 % of base)
       -4694 : 558186.dasm (-100.00 % of base)
       -4368 : 592672.dasm (-100.00 % of base)
       -4300 : 87481.dasm (-100.00 % of base)
       -3895 : 700421.dasm (-100.00 % of base)
       -3595 : 708089.dasm (-100.00 % of base)
       -3346 : 674908.dasm (-100.00 % of base)
       -3341 : 300705.dasm (-100.00 % of base)
       -3326 : 428847.dasm (-100.00 % of base)
       -3320 : 54428.dasm (-100.00 % of base)

69 total files with Code Size differences (69 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
      -20342 (-100.00 % of base) : 54171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
      -19250 (-100.00 % of base) : 65116.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -18169 (-100.00 % of base) : 54326.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
      -10420 (-100.00 % of base) : 54457.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -7214 (-100.00 % of base) : 713630.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+SwitchStatementLocalRewriter:LowerSwitchStatement(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
       -6883 (-100.00 % of base) : 697583.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -6881 (-100.00 % of base) : 92711.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -6429 (-100.00 % of base) : 684950.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1-OSR)
       -5839 (-100.00 % of base) : 592660.dasm - System.Security.Cryptography.Tests.HashAlgorithmTestDriver`1[System.__Canon]:VerifyTransformBlockHash(ubyte[],ubyte[],ubyte[],ubyte[]):this (Tier1)
       -5815 (-100.00 % of base) : 697668.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -5180 (-100.00 % of base) : 701114.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1)
       -4694 (-100.00 % of base) : 558186.dasm - System.Linq.Expressions.ExpressionVisitor:Visit(System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.Expression]):System.Collections.ObjectModel.ReadOnlyCollection`1[System.Linq.Expressions.Expression]:this (Tier1)
       -4368 (-100.00 % of base) : 592672.dasm - System.Security.Cryptography.Tests.HashAlgorithmTestDriver`1[System.__Canon]:VerifyTransformBlockComputeHashInteraction(ubyte[],ubyte[],ubyte[],ubyte[]):this (Tier1)
       -4300 (-100.00 % of base) : 87481.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
       -3895 (-100.00 % of base) : 700421.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -3595 (-100.00 % of base) : 708089.dasm - Microsoft.CodeAnalysis.CSharp.SynthesizedClosureMethod:EnsureAttributesExist(Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (Tier1)
       -3346 (-100.00 % of base) : 674908.dasm - System.Linq.Expressions.TypeBinaryExpression:ReduceTypeEqual():System.Linq.Expressions.Expression:this (Tier1)
       -3341 (-100.00 % of base) : 300705.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitUnliftedBinaryOp(int,System.Type,System.Type):this (Tier1)
       -3326 (-100.00 % of base) : 428847.dasm - System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (Tier1)
       -3320 (-100.00 % of base) : 54428.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetEffectiveParametersInNormalForm[System.__Canon](System.__Canon,int,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,byref):Microsoft.CodeAnalysis.CSharp.OverloadResolution+EffectiveParameters (Tier1)

Top method improvements (percentages):
       -2668 (-100.00 % of base) : 473784.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
      -20342 (-100.00 % of base) : 54171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
      -19250 (-100.00 % of base) : 65116.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
       -4300 (-100.00 % of base) : 87481.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
      -18169 (-100.00 % of base) : 54326.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
       -1523 (-100.00 % of base) : 714099.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDiagnosticFilter:Filter(Microsoft.CodeAnalysis.Diagnostic,int,int,int,System.Collections.Generic.IDictionary`2[System.String,int],Microsoft.CodeAnalysis.SyntaxTreeOptionsProvider,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Diagnostic (Tier1)
        -513 (-100.00 % of base) : 726632.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:WithLanguageVersion(int):Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:this (Tier1)
       -7214 (-100.00 % of base) : 713630.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter+SwitchStatementLocalRewriter:LowerSwitchStatement(Microsoft.CodeAnalysis.CSharp.BoundSwitchStatement):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
      -10420 (-100.00 % of base) : 54457.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -3320 (-100.00 % of base) : 54428.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetEffectiveParametersInNormalForm[System.__Canon](System.__Canon,int,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,byref):Microsoft.CodeAnalysis.CSharp.OverloadResolution+EffectiveParameters (Tier1)
        -456 (-100.00 % of base) : 92641.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_DeclaredAccessibility():int:this (Tier1)
       -3895 (-100.00 % of base) : 700421.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -6883 (-100.00 % of base) : 697583.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -6881 (-100.00 % of base) : 92711.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -5815 (-100.00 % of base) : 697668.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
        -421 (-100.00 % of base) : 182795.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
        -392 (-100.00 % of base) : 84994.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
        -415 (-100.00 % of base) : 49468.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
       -3595 (-100.00 % of base) : 708089.dasm - Microsoft.CodeAnalysis.CSharp.SynthesizedClosureMethod:EnsureAttributesExist(Microsoft.CodeAnalysis.CSharp.TypeCompilationState):this (Tier1)
       -3095 (-100.00 % of base) : 63807.dasm - Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:.ctor(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzersOptions):this (Tier1)


librariestestsnotieredcompilation.run.linux.x64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 130000373 (overridden on cmd)
Total bytes of diff: 130000383 (overridden on cmd)
Total bytes of delta: 10 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -3903 : 17542.dasm (-100.00 % of base)
       -1910 : 151206.dasm (-100.00 % of base)
       -1622 : 144776.dasm (-100.00 % of base)
       -1238 : 197291.dasm (-100.00 % of base)
       -1237 : 21341.dasm (-100.00 % of base)
       -1142 : 7804.dasm (-100.00 % of base)
       -1092 : 101983.dasm (-100.00 % of base)
        -694 : 244521.dasm (-100.00 % of base)
        -501 : 82173.dasm (-100.00 % of base)
        -463 : 82716.dasm (-100.00 % of base)
        -165 : 82691.dasm (-100.00 % of base)
        -165 : 82746.dasm (-100.00 % of base)
        -117 : 82696.dasm (-100.00 % of base)
         -69 : 145057.dasm (-100.00 % of base)

14 total files with Code Size differences (14 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -3903 (-100.00 % of base) : 17542.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
       -1910 (-100.00 % of base) : 151206.dasm - System.Net.NameResolution.Tests.GetHostEntryTest+<Dns_GetHostEntry_HostString_Ok>d__2:MoveNext():this (FullOpts)
       -1622 (-100.00 % of base) : 144776.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
       -1238 (-100.00 % of base) : 197291.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
       -1237 (-100.00 % of base) : 21341.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
       -1142 (-100.00 % of base) : 7804.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
       -1092 (-100.00 % of base) : 101983.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -694 (-100.00 % of base) : 244521.dasm - System.Text.Json.SourceGeneration.Tests.NodeInteropTests_Default+NodeInteropTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
        -501 (-100.00 % of base) : 82173.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -463 (-100.00 % of base) : 82716.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -165 (-100.00 % of base) : 82746.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
        -165 (-100.00 % of base) : 82691.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
        -117 (-100.00 % of base) : 82696.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
         -69 (-100.00 % of base) : 145057.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)

Top method improvements (percentages):
       -3903 (-100.00 % of base) : 17542.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
        -117 (-100.00 % of base) : 82696.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
        -463 (-100.00 % of base) : 82716.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -165 (-100.00 % of base) : 82746.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
        -501 (-100.00 % of base) : 82173.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -165 (-100.00 % of base) : 82691.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
       -1910 (-100.00 % of base) : 151206.dasm - System.Net.NameResolution.Tests.GetHostEntryTest+<Dns_GetHostEntry_HostString_Ok>d__2:MoveNext():this (FullOpts)
       -1622 (-100.00 % of base) : 144776.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
         -69 (-100.00 % of base) : 145057.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
        -694 (-100.00 % of base) : 244521.dasm - System.Text.Json.SourceGeneration.Tests.NodeInteropTests_Default+NodeInteropTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
       -1092 (-100.00 % of base) : 101983.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1237 (-100.00 % of base) : 21341.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
       -1142 (-100.00 % of base) : 7804.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
       -1238 (-100.00 % of base) : 197291.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)

14 total methods with Code Size differences (14 improved, 0 regressed).



osx arm64

Diffs are based on 2,263,032 contexts (930,876 MinOpts, 1,332,156 FullOpts).

MISSED contexts: base: 2,925 (0.13%), diff: 2,933 (0.13%)

Overall (+1,512 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 34,569,912 -208
coreclr_tests.run.osx.arm64.checked.mch 485,471,332 +228
libraries.pmi.osx.arm64.checked.mch 79,954,016 +112
libraries_tests.run.osx.arm64.Release.mch 312,684,004 +1,452
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 160,787,844 -72

FullOpts (+1,512 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 18,096,632 -208
coreclr_tests.run.osx.arm64.checked.mch 153,164,876 +228
libraries.pmi.osx.arm64.checked.mch 79,832,888 +112
libraries_tests.run.osx.arm64.Release.mch 108,743,500 +1,452
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 147,650,316 -72

Example diffs

benchmarks.run_pgo.osx.arm64.checked.mch

-16 (-0.37%) : 58605.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BinaryOperatorOverloadResolution(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult:this (Tier1)

@@ -18,104 +18,104 @@
 ;  V06 arg5         [V06,T15] (  5,  2   )     ref  ->  x26         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
 ;  V07 arg6         [V07,T12] ( 10,  2   )     ref  ->  x24         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
 ;  V08 arg7         [V08,T09] (  7,  3   )   byref  ->  x21         single-def
-;  V09 arg8         [V09,T24] (  3,  1   )   byref  ->  [fp+0x4E0]  single-def
-;  V10 loc0         [V10,T18] ( 11,  2   )     ref  ->  [fp+0xC0]  class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
-;  V11 loc1         [V11    ] (  5,  0   )  struct (32) [fp+0x470]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
-;  V12 loc2         [V12    ] (  6,  4   )  struct (96) [fp+0x410]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
+;  V09 arg8         [V09,T24] (  3,  1   )   byref  ->  [fp+0x4D0]  single-def
+;  V10 loc0         [V10,T18] ( 11,  2   )     ref  ->  [fp+0xB0]  class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
+;  V11 loc1         [V11    ] (  5,  0   )  struct (32) [fp+0x460]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
+;  V12 loc2         [V12    ] (  6,  4   )  struct (96) [fp+0x400]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
 ;  V13 loc3         [V13,T19] (  4,  2   )     ref  ->  x20         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
-;  V14 loc4         [V14,T100] (  2,  0   )  struct (96) [fp+0x3B0]  do-not-enreg[S] must-init ld-addr-op <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
+;  V14 loc4         [V14,T99] (  2,  0   )  struct (96) [fp+0x3A0]  do-not-enreg[S] must-init ld-addr-op <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
 ;  V15 loc5         [V15,T25] (  3,  1   )     ref  ->  x22         class-hnd exact single-def <<unknown class>>
 ;* V16 loc6         [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
 ;  V17 loc7         [V17,T22] (  3,  2   )     ref  ->   x1         class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
 ;# V18 OutArgs      [V18    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V19 tmp1         [V19    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V20 tmp2         [V20    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V21 tmp3         [V21,T101] (  2,  0   )     int  ->   x0        
+;  V21 tmp3         [V21,T100] (  2,  0   )     int  ->   x0        
 ;* V22 tmp4         [V22    ] (  0,  0   )  struct (96) zero-ref    do-not-enreg[SF] "location for address-of(RValue)" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
-;  V23 tmp5         [V23,T58] (  2,  0   )   ubyte  ->  x14         "Inline return value spill temp"
-;* V24 tmp6         [V24,T27] (  0,  0   )     int  ->  zero-ref   
+;  V23 tmp5         [V23,T57] (  2,  0   )   ubyte  ->  x14         "Inline return value spill temp"
+;* V24 tmp6         [V24,T26] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp7         [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
-;  V26 tmp8         [V26,T52] (  4,  0   )     ref  ->  [fp+0xB8]  class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
-;  V27 tmp9         [V27,T39] (  6,  0   )     ref  ->  [fp+0xB0]  class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
+;  V26 tmp8         [V26,T51] (  4,  0   )     ref  ->  [fp+0xA8]  class-hnd exact spill-single-def "Inlining Arg" <<unknown class>>
+;  V27 tmp9         [V27,T38] (  6,  0   )     ref  ->  [fp+0xA0]  class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
 ;* V28 tmp10        [V28    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
-;  V29 tmp11        [V29,T64] (  3,  0   )   byref  ->   x2         single-def "impAppendStmt"
+;  V29 tmp11        [V29,T63] (  3,  0   )   byref  ->   x0         single-def "impAppendStmt"
 ;* V30 tmp12        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorOverloadResolutionResult>
 ;* V31 tmp13        [V31    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
-;  V32 tmp14        [V32,T47] (  5,  0   )     ref  ->  [fp+0xA8]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpCompilation>
-;  V33 tmp15        [V33,T83] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
-;  V34 tmp16        [V34,T65] (  3,  0   )     ref  ->   x1         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
-;  V35 tmp17        [V35,T66] (  3,  0   )   byref  ->   x0         single-def "impAppendStmt"
-;  V36 tmp18        [V36,T53] (  4,  0   )     ref  ->  [fp+0xA0]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
-;  V37 tmp19        [V37,T59] (  4,  0   )     int  ->  [fp+0x3AC]  spill-single-def "Inline stloc first use temp"
-;  V38 tmp20        [V38,T48] (  5,  0   )     ref  ->  [fp+0x98]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V39 tmp21        [V39,T49] (  5,  0   )     ref  ->  [fp+0x90]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V32 tmp14        [V32,T46] (  5,  0   )     ref  ->  [fp+0x98]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpCompilation>
+;  V33 tmp15        [V33,T82] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
+;  V34 tmp16        [V34,T64] (  3,  0   )     ref  ->   x1         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
+;  V35 tmp17        [V35,T65] (  3,  0   )   byref  ->   x0         single-def "impAppendStmt"
+;  V36 tmp18        [V36,T52] (  4,  0   )     ref  ->  [fp+0x90]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
+;  V37 tmp19        [V37,T58] (  4,  0   )     int  ->  [fp+0x39C]  spill-single-def "Inline stloc first use temp"
+;  V38 tmp20        [V38,T47] (  5,  0   )     ref  ->  [fp+0x88]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V39 tmp21        [V39,T48] (  5,  0   )     ref  ->  [fp+0x80]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V40 tmp22        [V40    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V41 tmp23        [V41,T102] (  2,  0   )  struct (56) [fp+0x370]  do-not-enreg[SF] must-init "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+;  V41 tmp23        [V41,T101] (  2,  0   )  struct (56) [fp+0x360]  do-not-enreg[SF] must-init "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
 ;* V42 tmp24        [V42    ] (  0,  0   )  struct (16) zero-ref    "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
 ;* V43 tmp25        [V43    ] (  0,  0   )  struct (16) zero-ref    "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
-;  V44 tmp26        [V44,T84] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
-;  V45 tmp27        [V45,T103] (  2,  0   )  struct (96) [fp+0x310]  do-not-enreg[S] must-init "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
-;  V46 tmp28        [V46,T30] ( 15,  0   )     int  ->  [fp+0x30C]  "Inline return value spill temp"
-;  V47 tmp29        [V47,T60] (  4,  0   )     int  ->  [fp+0x308]  spill-single-def "Inline stloc first use temp"
-;  V48 tmp30        [V48,T61] (  4,  0   )     int  ->   x0         single-def "Inline stloc first use temp"
-;  V49 tmp31        [V49,T62] (  4,  0   )     int  ->   x1         "Inline stloc first use temp"
+;  V44 tmp26        [V44,T83] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
+;  V45 tmp27        [V45,T102] (  2,  0   )  struct (96) [fp+0x300]  do-not-enreg[S] must-init "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
+;  V46 tmp28        [V46,T29] ( 15,  0   )     int  ->  [fp+0x2FC]  "Inline return value spill temp"
+;  V47 tmp29        [V47,T59] (  4,  0   )     int  ->  [fp+0x2F8]  spill-single-def "Inline stloc first use temp"
+;  V48 tmp30        [V48,T60] (  4,  0   )     int  ->   x0         single-def "Inline stloc first use temp"
+;  V49 tmp31        [V49,T61] (  4,  0   )     int  ->   x1         "Inline stloc first use temp"
 ;* V50 tmp32        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <<unknown class>>
 ;* V51 tmp33        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V52 tmp34        [V52,T50] (  5,  0   )  struct (56) [fp+0x2D0]  do-not-enreg[S] must-init "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
-;  V53 tmp35        [V53,T32] ( 10,  0   )     ref  ->  [fp+0x88]  class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BuiltInOperators>
-;  V54 tmp36        [V54,T36] (  8,  0   )     ref  ->  [fp+0x80]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V55 tmp37        [V55,T28] ( 25,  0   )     int  ->   x4         single-def "Inline stloc first use temp"
-;* V56 tmp38        [V56,T115] (  0,  0   )  struct (56) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
-;  V57 tmp39        [V57,T54] (  4,  0   )     ref  ->   x3         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V58 tmp40        [V58    ] (  8,  0   )  struct (56) [fp+0x298]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+;  V52 tmp34        [V52,T49] (  5,  0   )  struct (56) [fp+0x2C0]  do-not-enreg[S] must-init "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+;  V53 tmp35        [V53,T31] ( 10,  0   )     ref  ->  [fp+0x78]  class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BuiltInOperators>
+;  V54 tmp36        [V54,T35] (  8,  0   )     ref  ->  [fp+0x70]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V55 tmp37        [V55,T27] ( 25,  0   )     int  ->   x4         single-def "Inline stloc first use temp"
+;* V56 tmp38        [V56,T114] (  0,  0   )  struct (56) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+;  V57 tmp39        [V57,T53] (  4,  0   )     ref  ->   x3         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V58 tmp40        [V58    ] (  8,  0   )  struct (56) [fp+0x288]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
 ;* V59 tmp41        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V60 tmp42        [V60    ] (  8,  0   )  struct (56) [fp+0x260]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
-;  V61 tmp43        [V61    ] (  8,  0   )  struct (56) [fp+0x228]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+;  V60 tmp42        [V60    ] (  8,  0   )  struct (56) [fp+0x250]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+;  V61 tmp43        [V61    ] (  8,  0   )  struct (56) [fp+0x218]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
 ;* V62 tmp44        [V62    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V63 tmp45        [V63    ] (  8,  0   )  struct (56) [fp+0x1F0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
+;  V63 tmp45        [V63    ] (  8,  0   )  struct (56) [fp+0x1E0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature>
 ;* V64 tmp46        [V64    ] (  0,  0   )  struct (16) zero-ref    multireg-ret single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
 ;* V65 tmp47        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V66 tmp48        [V66    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V67 tmp49        [V67    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V68 tmp50        [V68    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret single-def "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.Conversion>
-;  V69 tmp51        [V69,T44] (  6,  0   )   ubyte  ->  [fp+0x1EC]  "Inline return value spill temp"
-;  V70 tmp52        [V70,T73] (  3,  0   )     int  ->  [fp+0x1E8]  spill-single-def "Inline stloc first use temp"
-;  V71 tmp53        [V71,T74] (  3,  0   )     int  ->   x0         single-def "Inline stloc first use temp"
+;  V69 tmp51        [V69,T43] (  6,  0   )   ubyte  ->  [fp+0x1DC]  "Inline return value spill temp"
+;  V70 tmp52        [V70,T72] (  3,  0   )     int  ->  [fp+0x1D8]  spill-single-def "Inline stloc first use temp"
+;  V71 tmp53        [V71,T73] (  3,  0   )     int  ->   x0         single-def "Inline stloc first use temp"
 ;* V72 tmp54        [V72    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
 ;* V73 tmp55        [V73    ] (  0,  0   )  struct (16) zero-ref    multireg-ret single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
 ;* V74 tmp56        [V74    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V75 tmp57        [V75    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V76 tmp58        [V76    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V77 tmp59        [V77    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret single-def "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.Conversion>
-;  V78 tmp60        [V78,T45] (  6,  0   )   ubyte  ->  [fp+0x1E4]  "Inline return value spill temp"
-;  V79 tmp61        [V79,T75] (  3,  0   )     int  ->  [fp+0x1E0]  spill-single-def "Inline stloc first use temp"
-;  V80 tmp62        [V80,T76] (  3,  0   )     int  ->   x0         single-def "Inline stloc first use temp"
+;  V78 tmp60        [V78,T44] (  6,  0   )   ubyte  ->  [fp+0x1D4]  "Inline return value spill temp"
+;  V79 tmp61        [V79,T74] (  3,  0   )     int  ->  [fp+0x1D0]  spill-single-def "Inline stloc first use temp"
+;  V80 tmp62        [V80,T75] (  3,  0   )     int  ->   x0         single-def "Inline stloc first use temp"
 ;* V81 tmp63        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Conversion>
-;  V82 tmp64        [V82,T104] (  2,  0   )  struct (96) [fp+0x180]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
-;  V83 tmp65        [V83,T37] (  8,  0   )     ref  ->  [fp+0x78]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
-;  V84 tmp66        [V84,T51] (  5,  0   )     int  ->  [fp+0x17C]  spill-single-def "Inline stloc first use temp"
+;  V82 tmp64        [V82,T103] (  2,  0   )  struct (96) [fp+0x170]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
+;  V83 tmp65        [V83,T36] (  8,  0   )     ref  ->  [fp+0x68]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
+;  V84 tmp66        [V84,T50] (  5,  0   )     int  ->  [fp+0x16C]  spill-single-def "Inline stloc first use temp"
 ;* V85 tmp67        [V85    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V86 tmp68        [V86,T105] (  2,  0   )     int  ->   x7         "Inline return value spill temp"
-;  V87 tmp69        [V87,T77] (  3,  0   )     int  ->   x0         "Inlining Arg"
+;  V86 tmp68        [V86,T104] (  2,  0   )     int  ->   x7         "Inline return value spill temp"
+;  V87 tmp69        [V87,T76] (  3,  0   )     int  ->   x0         "Inlining Arg"
 ;* V88 tmp70        [V88    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
 ;* V89 tmp71        [V89    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
-;  V90 tmp72        [V90,T78] (  3,  0   )  struct (32) [fp+0x158]  do-not-enreg[S] must-init "Inlining Arg" <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
-;  V91 tmp73        [V91,T85] (  2,  0   )     ref  ->   x3         class-hnd single-def "dup spill" <<unknown class>>
+;  V90 tmp72        [V90,T77] (  3,  0   )  struct (32) [fp+0x148]  do-not-enreg[S] must-init "Inlining Arg" <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
+;  V91 tmp73        [V91,T84] (  2,  0   )     ref  ->   x3         class-hnd single-def "dup spill" <<unknown class>>
 ;* V92 tmp74        [V92    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V93 tmp75        [V93    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[S] <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
-;  V94 tmp76        [V94,T55] (  4,  0   )     ref  ->   x3        
-;  V95 tmp77        [V95,T56] (  4,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V94 tmp76        [V94,T54] (  4,  0   )     ref  ->   x3        
+;  V95 tmp77        [V95,T55] (  4,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V96 tmp78        [V96    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V97 tmp79        [V97    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
 ;* V98 tmp80        [V98    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
 ;* V99 tmp81        [V99    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
 ;* V100 tmp82       [V100    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <<unknown class>>
-;  V101 tmp83       [V101,T57] (  4,  0   )     ref  ->  x20         class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V102 tmp84       [V102,T40] (  6,  0   )     ref  ->  x22         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V101 tmp83       [V101,T56] (  4,  0   )     ref  ->  x20         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V102 tmp84       [V102,T39] (  6,  0   )     ref  ->  x22         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;* V103 tmp85       [V103    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <<unknown class>>
-;  V104 tmp86       [V104,T67] (  3,  0   )   byref  ->  registers   single-def "impAppendStmt"
+;  V104 tmp86       [V104,T66] (  3,  0   )   byref  ->   x0         single-def "impAppendStmt"
 ;* V105 tmp87       [V105    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V106 tmp88       [V106,T68] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
+;  V106 tmp88       [V106,T67] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
 ;* V107 tmp89       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1+Enumerator[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
 ;* V108 tmp90       [V108    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
 ;* V109 tmp91       [V109    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -126,7 +126,7 @@
 ;* V114 tmp96       [V114    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
 ;  V115 tmp97       [V115,T00] (  6,  8   )     ref  ->  x20         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]>
 ;  V116 tmp98       [V116,T03] (  6,  6   )     int  ->   x0         "Inline stloc first use temp"
-;  V117 tmp99       [V117,T23] (  2,  2   )  struct (96) [fp+0xF8]  do-not-enreg[S] must-init ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
+;  V117 tmp99       [V117,T23] (  2,  2   )  struct (96) [fp+0xE8]  do-not-enreg[S] must-init ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult>
 ;  V118 tmp100      [V118,T06] (  3,  6   )     ref  ->  x14         class-hnd exact "impAppendStmt" <<unknown class>>
 ;  V119 tmp101      [V119,T04] (  4,  6   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;  V120 tmp102      [V120,T20] (  4,  2   )     ref  ->  x20         single-def "field V16._builder (fldOffset=0x0)" P-INDEP
@@ -135,23 +135,23 @@
 ;* V123 tmp105      [V123    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V42._kind (fldOffset=0x8)" P-INDEP
 ;* V124 tmp106      [V124    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V43._uncommonData (fldOffset=0x0)" P-INDEP
 ;* V125 tmp107      [V125    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V43._kind (fldOffset=0x8)" P-INDEP
-;  V126 tmp108      [V126,T69] (  3,  0   )     ref  ->  [fp+0x70]  single-def "field V64._uncommonData (fldOffset=0x0)" P-INDEP
-;  V127 tmp109      [V127,T79] (  3,  0   )   ubyte  ->  [fp+0xF4]  single-def "field V64._kind (fldOffset=0x8)" P-INDEP
-;  V128 tmp110      [V128,T86] (  2,  0   )     ref  ->   x0         "field V68._uncommonData (fldOffset=0x0)" P-INDEP
-;  V129 tmp111      [V129,T106] (  2,  0   )   ubyte  ->   x2         "field V68._kind (fldOffset=0x8)" P-INDEP
-;* V130 tmp112      [V130,T112] (  0,  0   )     ref  ->  zero-ref    single-def "field V72._uncommonData (fldOffset=0x0)" P-INDEP
-;  V131 tmp113      [V131,T107] (  2,  0   )   ubyte  ->   x1         single-def "field V72._kind (fldOffset=0x8)" P-INDEP
-;  V132 tmp114      [V132,T70] (  3,  0   )     ref  ->  [fp+0x68]  single-def "field V73._uncommonData (fldOffset=0x0)" P-INDEP
-;  V133 tmp115      [V133,T80] (  3,  0   )   ubyte  ->  registers   single-def "field V73._kind (fldOffset=0x8)" P-INDEP
-;  V134 tmp116      [V134,T87] (  2,  0   )     ref  ->   x0         "field V77._uncommonData (fldOffset=0x0)" P-INDEP
-;  V135 tmp117      [V135,T108] (  2,  0   )   ubyte  ->   x2         "field V77._kind (fldOffset=0x8)" P-INDEP
-;* V136 tmp118      [V136,T113] (  0,  0   )     ref  ->  zero-ref    single-def "field V81._uncommonData (fldOffset=0x0)" P-INDEP
-;  V137 tmp119      [V137,T109] (  2,  0   )   ubyte  ->   x2         single-def "field V81._kind (fldOffset=0x8)" P-INDEP
-;  V138 tmp120      [V138,T88] (  2,  0   )     ref  ->  x20         single-def "field V107._builder (fldOffset=0x0)" P-INDEP
-;* V139 tmp121      [V139,T116] (  0,  0   )     int  ->  zero-ref    single-def "field V107._index (fldOffset=0x8)" P-INDEP
+;  V126 tmp108      [V126,T68] (  3,  0   )     ref  ->  [fp+0x60]  single-def "field V64._uncommonData (fldOffset=0x0)" P-INDEP
+;  V127 tmp109      [V127,T78] (  3,  0   )   ubyte  ->  [fp+0xE4]  single-def "field V64._kind (fldOffset=0x8)" P-INDEP
+;  V128 tmp110      [V128,T85] (  2,  0   )     ref  ->   x0         "field V68._uncommonData (fldOffset=0x0)" P-INDEP
+;  V129 tmp111      [V129,T105] (  2,  0   )   ubyte  ->   x2         "field V68._kind (fldOffset=0x8)" P-INDEP
+;* V130 tmp112      [V130,T111] (  0,  0   )     ref  ->  zero-ref    single-def "field V72._uncommonData (fldOffset=0x0)" P-INDEP
+;  V131 tmp113      [V131,T106] (  2,  0   )   ubyte  ->   x1         single-def "field V72._kind (fldOffset=0x8)" P-INDEP
+;  V132 tmp114      [V132,T69] (  3,  0   )     ref  ->  [fp+0x58]  single-def "field V73._uncommonData (fldOffset=0x0)" P-INDEP
+;  V133 tmp115      [V133,T79] (  3,  0   )   ubyte  ->  registers   single-def "field V73._kind (fldOffset=0x8)" P-INDEP
+;  V134 tmp116      [V134,T86] (  2,  0   )     ref  ->   x0         "field V77._uncommonData (fldOffset=0x0)" P-INDEP
+;  V135 tmp117      [V135,T107] (  2,  0   )   ubyte  ->   x2         "field V77._kind (fldOffset=0x8)" P-INDEP
+;* V136 tmp118      [V136,T112] (  0,  0   )     ref  ->  zero-ref    single-def "field V81._uncommonData (fldOffset=0x0)" P-INDEP
+;  V137 tmp119      [V137,T108] (  2,  0   )   ubyte  ->   x2         single-def "field V81._kind (fldOffset=0x8)" P-INDEP
+;  V138 tmp120      [V138,T87] (  2,  0   )     ref  ->  x20         single-def "field V107._builder (fldOffset=0x0)" P-INDEP
+;* V139 tmp121      [V139,T115] (  0,  0   )     int  ->  zero-ref    single-def "field V107._index (fldOffset=0x8)" P-INDEP
 ;* V140 tmp122      [V140    ] (  0,  0   )     ref  ->  zero-ref    "V22.[064..072)"
-;  V141 tmp123      [V141,T71] (  3,  0   )     ref  ->   x1         "V31.[016..024)"
-;  V142 tmp124      [V142,T63] (  4,  0   )   ubyte  ->   x3         "V31.[025..026)"
+;  V141 tmp123      [V141,T70] (  3,  0   )     ref  ->   x1         "V31.[016..024)"
+;  V142 tmp124      [V142,T62] (  4,  0   )   ubyte  ->   x3         "V31.[025..026)"
 ;* V143 tmp125      [V143    ] (  0,  0   )     ref  ->  zero-ref    single-def "V41.[000..008)"
 ;* V144 tmp126      [V144    ] (  0,  0   )     ref  ->  zero-ref    single-def "V41.[008..016)"
 ;* V145 tmp127      [V145    ] (  0,  0   )     ref  ->  zero-ref    single-def "V41.[016..024)"
@@ -166,16 +166,16 @@
 ;* V154 tmp136      [V154    ] (  0,  0   )     int  ->  zero-ref    single-def "V56.[040..044)"
 ;* V155 tmp137      [V155    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V82.[000..001)"
 ;* V156 tmp138      [V156    ] (  0,  0   )     ref  ->  zero-ref    single-def "V82.[008..016)"
-;  V157 tmp139      [V157,T110] (  2,  0   )   ubyte  ->  [fp+0xF0]  spill-single-def "V82.[016..017)"
+;  V157 tmp139      [V157,T109] (  2,  0   )   ubyte  ->  [fp+0xE0]  spill-single-def "V82.[016..017)"
 ;* V158 tmp140      [V158    ] (  0,  0   )     ref  ->  zero-ref    single-def "V82.[024..032)"
-;  V159 tmp141      [V159,T111] (  2,  0   )   ubyte  ->  [fp+0xEC]  spill-single-def "V82.[032..033)"
+;  V159 tmp141      [V159,T110] (  2,  0   )   ubyte  ->  [fp+0xDC]  spill-single-def "V82.[032..033)"
 ;* V160 tmp142      [V160    ] (  0,  0   )     ref  ->  zero-ref    single-def "V82.[040..048)"
 ;* V161 tmp143      [V161    ] (  0,  0   )     ref  ->  zero-ref    single-def "V82.[048..056)"
 ;* V162 tmp144      [V162    ] (  0,  0   )     ref  ->  zero-ref    single-def "V82.[056..064)"
 ;* V163 tmp145      [V163    ] (  0,  0   )     ref  ->  zero-ref    single-def "V82.[064..072)"
 ;* V164 tmp146      [V164    ] (  0,  0   )     ref  ->  zero-ref    single-def "V82.[072..080)"
 ;* V165 tmp147      [V165    ] (  0,  0   )     int  ->  zero-ref    single-def "V82.[080..084)"
-;  V166 tmp148      [V166,T89] (  2,  0   )     ref  ->   x1         single-def "V97.[008..016)"
+;  V166 tmp148      [V166,T88] (  2,  0   )     ref  ->   x1         single-def "V97.[008..016)"
 ;* V167 tmp149      [V167    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V45.[000..001)"
 ;* V168 tmp150      [V168    ] (  0,  0   )     ref  ->  zero-ref    single-def "V45.[008..016)"
 ;* V169 tmp151      [V169    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V45.[016..017)"
@@ -187,38 +187,37 @@
 ;* V175 tmp157      [V175    ] (  0,  0   )     ref  ->  zero-ref    single-def "V45.[064..072)"
 ;* V176 tmp158      [V176    ] (  0,  0   )     ref  ->  zero-ref    single-def "V45.[072..080)"
 ;* V177 tmp159      [V177    ] (  0,  0   )     int  ->  zero-ref    single-def "V45.[080..084)"
-;  V178 tmp160      [V178,T33] ( 10,  0   )     ref  ->  [fp+0x60]  "V52.[000..008)"
-;  V179 tmp161      [V179,T38] (  8,  0   )     ref  ->  [fp+0x58]  "V52.[008..016)"
-;  V180 tmp162      [V180,T41] (  6,  0   )     ref  ->  [fp+0x50]  "V52.[016..024)"
-;  V181 tmp163      [V181,T42] (  6,  0   )     ref  ->  [fp+0x48]  "V52.[024..032)"
-;  V182 tmp164      [V182,T43] (  6,  0   )     ref  ->  [fp+0x40]  "V52.[032..040)"
-;  V183 tmp165      [V183,T46] (  6,  0   )     int  ->  [fp+0xE8]  "V52.[040..044)"
-;  V184 tmp166      [V184,T31] ( 13,  0   )   byref  ->   x0         single-def "Spilling address for field-by-field copy"
-;  V185 tmp167      [V185,T90] (  2,  0   )     ref  ->   x1         single-def "arr expr"
-;  V186 tmp168      [V186,T81] (  3,  0   )     int  ->   x3         "index expr"
-;  V187 tmp169      [V187,T91] (  2,  0   )     ref  ->   x4         single-def "argument with side effect"
-;  V188 tmp170      [V188,T92] (  2,  0   )     ref  ->  [fp+0x38]  spill-single-def "argument with side effect"
-;  V189 tmp171      [V189,T93] (  2,  0   )     ref  ->   x4         single-def "argument with side effect"
-;  V190 tmp172      [V190,T94] (  2,  0   )     ref  ->  [fp+0x30]  spill-single-def "argument with side effect"
-;  V191 tmp173      [V191,T95] (  2,  0   )     ref  ->   x4         single-def "argument with side effect"
-;  V192 tmp174      [V192,T96] (  2,  0   )     ref  ->  [fp+0x28]  spill-single-def "argument with side effect"
-;  V193 tmp175      [V193,T97] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V194 tmp176      [V194,T98] (  2,  0   )     ref  ->  [fp+0x20]  spill-single-def "argument with side effect"
...

-8 (-0.36%) : 27458.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)

@@ -22,16 +22,16 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V11 tmp2         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V12 tmp3         [V12,T50] (  2,  0.37)     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V13 tmp4         [V13,T70] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V13 tmp4         [V13,T69] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V14 tmp5         [V14,T48] (  3,  0.42)     ref  ->  x24        
 ;  V15 tmp6         [V15,T45] (  2,  0.52)     ref  ->  x26         class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
 ;  V16 tmp7         [V16,T28] (  4,  1.04)    long  ->   x1         "spilling ret_expr"
-;  V17 tmp8         [V17,T69] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V17 tmp8         [V17,T68] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V18 tmp9         [V18    ] (  0,  0   )    long  ->  zero-ref    "guarded devirt return temp"
 ;  V19 tmp10        [V19,T29] (  3,  1.04)     ref  ->   x0         single-def "guarded devirt arg temp"
 ;  V20 tmp11        [V20,T30] (  3,  1.04)    long  ->   x2         "guarded devirt arg temp"
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-;  V22 tmp13        [V22,T74] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
+;  V22 tmp13        [V22,T73] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
 ;* V23 tmp14        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
 ;* V24 tmp15        [V24,T32] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V25 tmp16        [V25,T00] ( 11, 15.38)     ref  ->  x24         class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
 ;  V29 tmp20        [V29,T23] ( 12,  2.16)   byref  ->  registers   "Inline stloc first use temp"
 ;  V30 tmp21        [V30,T25] (  4,  2.03)   byref  ->  x24         "Inline stloc first use temp"
 ;  V31 tmp22        [V31,T26] (  4,  1.88)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V32 tmp23        [V32,T63] (  5,  0   )     int  ->  x27         "Inline stloc first use temp"
-;  V33 tmp24        [V33,T61] (  6,  0   )     int  ->  x28         "Inline stloc first use temp"
-;  V34 tmp25        [V34,T64] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V35 tmp26        [V35,T66] (  4,  0   )     int  ->  [fp+0x54]  "Inline stloc first use temp"
+;  V32 tmp23        [V32,T62] (  5,  0   )     int  ->  x26         "Inline stloc first use temp"
+;  V33 tmp24        [V33,T61] (  6,  0   )     int  ->  x27         "Inline stloc first use temp"
+;  V34 tmp25        [V34,T63] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V35 tmp26        [V35,T65] (  4,  0   )     int  ->  x28         "Inline stloc first use temp"
 ;  V36 tmp27        [V36,T10] (  5,  4.44)     int  ->  x25         "Inline stloc first use temp"
 ;  V37 tmp28        [V37,T08] (  6,  5.77)     int  ->   x0         "Inline stloc first use temp"
 ;  V38 tmp29        [V38,T21] (  3,  2.56)     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
 ;* V50 tmp41        [V50    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V51 tmp42        [V51    ] (  0,  0   )  struct (24) zero-ref    "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V52 tmp43        [V52,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V53 tmp44        [V53,T75] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V53 tmp44        [V53,T74] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V54 tmp45        [V54    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V55 tmp46        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V56 tmp47        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp54        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V64 tmp55        [V64,T65] (  4,  0   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V65 tmp56        [V65,T67] (  4,  0   )     int  ->  [fp+0x50]  spill-single-def "Inlining Arg"
-;  V66 tmp57        [V66,T76] (  2,  0   )    long  ->  [fp+0x48]  spill-single-def "Inlining Arg"
-;  V67 tmp58        [V67,T68] (  4,  0   )     int  ->  [fp+0x44]  spill-single-def "Inline stloc first use temp"
+;  V64 tmp55        [V64,T64] (  4,  0   )     ref  ->  x27         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V65 tmp56        [V65,T66] (  4,  0   )     int  ->  x28         "Inlining Arg"
+;  V66 tmp57        [V66,T75] (  2,  0   )    long  ->  [fp+0x50]  spill-single-def "Inlining Arg"
+;  V67 tmp58        [V67,T67] (  4,  0   )     int  ->  [fp+0x4C]  spill-single-def "Inline stloc first use temp"
 ;* V68 tmp59        [V68    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V69 tmp60        [V69,T31] (  2,  1.04)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V70 tmp61        [V70,T40] (  4,  0.80)     ref  ->  x24        
 ;  V71 tmp62        [V71,T44] (  3,  0.56)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V72 tmp63        [V72    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V73 tmp64        [V73,T77] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
+;  V73 tmp64        [V73,T76] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V74 tmp65        [V74,T22] (  4,  2.35)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V75 tmp66        [V75    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V76 tmp67        [V76,T42] (  2,  0.74)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -94,10 +94,10 @@
 ;  V82 tmp73        [V82,T49] (  2,  0.42)   ubyte  ->   x0         "Inline return value spill temp"
 ;  V83 tmp74        [V83,T27] (  3,  1.25)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V84 tmp75        [V84    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V85 tmp76        [V85,T71] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V85 tmp76        [V85,T70] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V86 tmp77        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V87 tmp78        [V87,T51] (  2,  0.37)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V88 tmp79        [V88,T72] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V88 tmp79        [V88,T71] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V89 tmp80        [V89,T07] (  3,  5.83)     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V90 tmp81        [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V91 tmp82        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -116,19 +116,18 @@
 ;  V104 tmp95       [V104,T54] (  4,  0.07)     ref  ->   x8         "field V51.Item1 (fldOffset=0x0)" P-INDEP
 ;  V105 tmp96       [V105,T58] (  2,  0.05)    long  ->   x9         "field V51.Item2 (fldOffset=0x8)" P-INDEP
 ;  V106 tmp97       [V106,T59] (  2,  0.05)     int  ->  x10         "field V51.Item3 (fldOffset=0x10)" P-INDEP
-;  V107 tmp98       [V107    ] (  8,  7.78)  struct (24) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99       [V108,T78] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101      [V110,T79] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V107 tmp98       [V107    ] (  8,  7.78)  struct (24) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99       [V108,T77] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101      [V110,T78] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V111 tmp102      [V111,T52] (  2,  0.36)     ref  ->  x24         single-def "argument with side effect"
 ;  V112 tmp103      [V112,T53] (  2,  0.36)     ref  ->   x2         single-def "argument with side effect"
-;  V113 tmp104      [V113,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V113 tmp104      [V113,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
 ;  V114 tmp105      [V114,T13] (  2,  3.89)     ref  ->   x0         single-def "argument with side effect"
 ;  V115 cse0        [V115,T41] (  3,  0.78)     ref  ->   x0         "CSE - conservative"
 ;  V116 cse1        [V116,T17] (  3,  3.20)     int  ->   x5         hoist "CSE - aggressive"
 ;  V117 cse2        [V117,T20] (  8,  2.92)     ref  ->   x1         multi-def "CSE - moderate"
-;  V118 cse3        [V118,T62] (  6,  0   )    long  ->  registers   multi-def "CSE - conservative"
-;  V119 rat0        [V119,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
+;  V118 rat0        [V118,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 96
 
@@ -140,18 +139,19 @@ G_M61086_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x25, x26, [sp, #0xA0]
             stp     x27, x28, [sp, #0xB0]
             mov     fp, sp
-            add     x9, fp, #16
+            add     x9, fp, #24
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
-            stp     q16, q16, [x9, #0x40]
+            stp     xzr, xzr, [x9, #0x40]
+            str     xzr, [x9, #0x50]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x21, x2
             mov     w22, w3
-                       ;; size=64 bbWeight=1 PerfScore 12.50
+                       ;; size=68 bbWeight=1 PerfScore 13.50
 G_M61086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             bl      <unknown method>
             ; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09:        ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
                        ;; size=24 bbWeight=0 PerfScore 0.00
 G_M61086_IG10:        ; bbWeight=0, nogc, extend
             ldp     x0, x1, [fp, #0x58]
-            stp     x0, x1, [fp, #0x28]
+            stp     x0, x1, [fp, #0x30]
             ldr     x0, [fp, #0x68]
-            str     x0, [fp, #0x38]
+            str     x0, [fp, #0x40]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M61086_IG11:        ; bbWeight=0, isz, extend
             mov     x0, x25
             ; gcrRegs +[x0]
-            add     x1, fp, #40    // [V107 tmp98]
-            movz    x26, #0xD1FFAB1E      // code for <unknown method>
-            movk    x26, #0xD1FFAB1E LSL #16
-            movk    x26, #1 LSL #32
-            mov     x11, x26
+            add     x1, fp, #48    // [V107 tmp98]
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #1 LSL #32
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w27, w0
-            ldr     x28, [x24, #0x08]
-            ; gcrRegs +[x28]
-            ldr     w1, [x28, #0x08]
-            str     w1, [fp, #0x50]    // [V65 tmp56]
-            ldr     x2, [x24, #0x30]
-            str     x2, [fp, #0x48]    // [V66 tmp57]
+            sxtw    w26, w0
+            ldr     x27, [x24, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w28, [x27, #0x08]
+            ldr     x1, [x24, #0x30]
+            str     x1, [fp, #0x50]    // [V66 tmp57]
             mov     w0, #1
-            movz    x3, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #1 LSL #32
-            ldr     x3, [x3]
-            blr     x3
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #1 LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            mov     w0, w27
-            ldr     x2, [fp, #0x48]    // [V66 tmp57]
-            mul     x0, x2, x0
+            mov     w0, w26
+            ldr     x1, [fp, #0x50]    // [V66 tmp57]
+            mul     x0, x1, x0
             lsr     x0, x0, #32
             add     x0, x0, #1
-            ldr     w1, [fp, #0x50]    // [V65 tmp56]
-            mov     w2, w1
-            mul     x0, x0, x2
-            lsr     x2, x0, #32
-            str     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w1, #0
+            mov     w1, w28
+            mul     x0, x0, x1
+            lsr     x1, x0, #32
+            str     w1, [fp, #0x4C]    // [V67 tmp58]
+            cmp     w28, #0
             beq     G_M61086_IG53
-            udiv    w0, w27, w1
-            msub    w0, w0, w1, w27
-            cmp     w0, w2
+            udiv    w0, w26, w28
+            msub    w0, w0, w28, w26
+            cmp     w0, w1
             cset    x0, eq
-            movz    x1, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            ldr     x1, [x1]
-            blr     x1
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #1 LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            ldr     w0, [x28, #0x08]
-            ldr     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w2, w0
+            ldr     w0, [x27, #0x08]
+            ldr     w28, [fp, #0x4C]   // [V67 tmp58]
+            cmp     w28, w0
             bhs     G_M61086_IG52
-            add     x0, x28, #16
+            add     x0, x27, #16
             ; byrRegs +[x0]
-            ldr     w28, [x0, w2, UXTW #2]
-            ; gcrRegs -[x28]
+            ldr     w27, [x0, w28, UXTW #2]
+            ; gcrRegs -[x27]
             ldr     x24, [x24, #0x10]
-            mov     w3, wzr
-            sub     w28, w28, #1
+            mov     w28, wzr
+            sub     w27, w27, #1
             b       G_M61086_IG54
-                       ;; size=204 bbWeight=0 PerfScore 0.00
+                       ;; size=192 bbWeight=0 PerfScore 0.00
 G_M61086_IG12:        ; bbWeight=0.94, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x25]
             ; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28:        ; bbWeight=0.97, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
             ldr     x0, [x19, #0x90]
             ; gcrRegs +[x0]
             ldrsb   wzr, [x0]
-            stp     x20, x21, [fp, #0x28]  // [V107 tmp98], [V107 tmp98+0x08]
-            str     w22, [fp, #0x38]   // [V107 tmp98+0x10]
-            add     x1, fp, #40    // [V107 tmp98]
+            stp     x20, x21, [fp, #0x30]  // [V107 tmp98], [V107 tmp98+0x08]
...

-8 (-0.36%) : 61286.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)

@@ -22,16 +22,16 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V11 tmp2         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V12 tmp3         [V12,T52] (  2,  0.36)     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V13 tmp4         [V13,T71] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V13 tmp4         [V13,T70] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V14 tmp5         [V14,T48] (  3,  0.40)     ref  ->  x24        
 ;  V15 tmp6         [V15,T44] (  2,  0.52)     ref  ->  x26         class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
 ;  V16 tmp7         [V16,T28] (  4,  1.04)    long  ->   x1         "spilling ret_expr"
-;  V17 tmp8         [V17,T70] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V17 tmp8         [V17,T69] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V18 tmp9         [V18    ] (  0,  0   )    long  ->  zero-ref    "guarded devirt return temp"
 ;  V19 tmp10        [V19,T29] (  3,  1.04)     ref  ->   x0         single-def "guarded devirt arg temp"
 ;  V20 tmp11        [V20,T30] (  3,  1.04)    long  ->   x2         "guarded devirt arg temp"
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-;  V22 tmp13        [V22,T74] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
+;  V22 tmp13        [V22,T73] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
 ;* V23 tmp14        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
 ;* V24 tmp15        [V24,T32] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V25 tmp16        [V25,T00] ( 11, 15.39)     ref  ->  x24         class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
 ;  V29 tmp20        [V29,T23] ( 12,  2.18)   byref  ->  registers   "Inline stloc first use temp"
 ;  V30 tmp21        [V30,T25] (  4,  2.03)   byref  ->  x24         "Inline stloc first use temp"
 ;  V31 tmp22        [V31,T26] (  4,  1.88)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V32 tmp23        [V32,T64] (  5,  0   )     int  ->  x27         "Inline stloc first use temp"
-;  V33 tmp24        [V33,T62] (  6,  0   )     int  ->  x28         "Inline stloc first use temp"
-;  V34 tmp25        [V34,T65] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V35 tmp26        [V35,T67] (  4,  0   )     int  ->  [fp+0x54]  "Inline stloc first use temp"
+;  V32 tmp23        [V32,T63] (  5,  0   )     int  ->  x26         "Inline stloc first use temp"
+;  V33 tmp24        [V33,T62] (  6,  0   )     int  ->  x27         "Inline stloc first use temp"
+;  V34 tmp25        [V34,T64] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V35 tmp26        [V35,T66] (  4,  0   )     int  ->  x28         "Inline stloc first use temp"
 ;  V36 tmp27        [V36,T10] (  5,  4.45)     int  ->  x25         "Inline stloc first use temp"
 ;  V37 tmp28        [V37,T08] (  6,  5.76)     int  ->   x0         "Inline stloc first use temp"
 ;  V38 tmp29        [V38,T21] (  3,  2.57)     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
 ;* V50 tmp41        [V50    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V51 tmp42        [V51    ] (  0,  0   )  struct (24) zero-ref    "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V52 tmp43        [V52,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V53 tmp44        [V53,T75] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V53 tmp44        [V53,T74] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V54 tmp45        [V54    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V55 tmp46        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V56 tmp47        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp54        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V64 tmp55        [V64,T66] (  4,  0   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V65 tmp56        [V65,T68] (  4,  0   )     int  ->  [fp+0x50]  spill-single-def "Inlining Arg"
-;  V66 tmp57        [V66,T76] (  2,  0   )    long  ->  [fp+0x48]  spill-single-def "Inlining Arg"
-;  V67 tmp58        [V67,T69] (  4,  0   )     int  ->  [fp+0x44]  spill-single-def "Inline stloc first use temp"
+;  V64 tmp55        [V64,T65] (  4,  0   )     ref  ->  x27         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V65 tmp56        [V65,T67] (  4,  0   )     int  ->  x28         "Inlining Arg"
+;  V66 tmp57        [V66,T75] (  2,  0   )    long  ->  [fp+0x50]  spill-single-def "Inlining Arg"
+;  V67 tmp58        [V67,T68] (  4,  0   )     int  ->  [fp+0x4C]  spill-single-def "Inline stloc first use temp"
 ;* V68 tmp59        [V68    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V69 tmp60        [V69,T31] (  2,  1.04)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V70 tmp61        [V70,T41] (  4,  0.78)     ref  ->  x24        
 ;  V71 tmp62        [V71,T45] (  3,  0.51)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V72 tmp63        [V72    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V73 tmp64        [V73,T77] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
+;  V73 tmp64        [V73,T76] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V74 tmp65        [V74,T22] (  4,  2.30)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V75 tmp66        [V75    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V76 tmp67        [V76,T42] (  2,  0.73)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -97,7 +97,7 @@
 ;  V85 tmp76        [V85,T61] (  2,  0.00)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V86 tmp77        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V87 tmp78        [V87,T53] (  2,  0.36)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V88 tmp79        [V88,T72] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V88 tmp79        [V88,T71] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V89 tmp80        [V89,T07] (  3,  5.80)     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V90 tmp81        [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V91 tmp82        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -116,19 +116,18 @@
 ;  V104 tmp95       [V104,T54] (  4,  0.09)     ref  ->   x8         "field V51.Item1 (fldOffset=0x0)" P-INDEP
 ;  V105 tmp96       [V105,T58] (  2,  0.06)    long  ->   x9         "field V51.Item2 (fldOffset=0x8)" P-INDEP
 ;  V106 tmp97       [V106,T59] (  2,  0.06)     int  ->  x10         "field V51.Item3 (fldOffset=0x10)" P-INDEP
-;  V107 tmp98       [V107    ] (  8,  7.73)  struct (24) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99       [V108,T78] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101      [V110,T79] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V107 tmp98       [V107    ] (  8,  7.73)  struct (24) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99       [V108,T77] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101      [V110,T78] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V111 tmp102      [V111,T50] (  2,  0.38)     ref  ->  x24         single-def "argument with side effect"
 ;  V112 tmp103      [V112,T51] (  2,  0.38)     ref  ->   x2         single-def "argument with side effect"
-;  V113 tmp104      [V113,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V113 tmp104      [V113,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
 ;  V114 tmp105      [V114,T13] (  2,  3.87)     ref  ->   x0         single-def "argument with side effect"
 ;  V115 cse0        [V115,T40] (  3,  0.78)     ref  ->   x0         "CSE - conservative"
 ;  V116 cse1        [V116,T17] (  3,  3.20)     int  ->   x5         hoist "CSE - aggressive"
 ;  V117 cse2        [V117,T20] (  8,  2.90)     ref  ->   x1         multi-def "CSE - moderate"
-;  V118 cse3        [V118,T63] (  6,  0   )    long  ->  registers   multi-def "CSE - conservative"
-;  V119 rat0        [V119,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
+;  V118 rat0        [V118,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 96
 
@@ -140,18 +139,19 @@ G_M61086_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x25, x26, [sp, #0xA0]
             stp     x27, x28, [sp, #0xB0]
             mov     fp, sp
-            add     x9, fp, #16
+            add     x9, fp, #24
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
-            stp     q16, q16, [x9, #0x40]
+            stp     xzr, xzr, [x9, #0x40]
+            str     xzr, [x9, #0x50]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x21, x2
             mov     w22, w3
-                       ;; size=64 bbWeight=1 PerfScore 12.50
+                       ;; size=68 bbWeight=1 PerfScore 13.50
 G_M61086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             bl      <unknown method>
             ; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09:        ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
                        ;; size=24 bbWeight=0 PerfScore 0.00
 G_M61086_IG10:        ; bbWeight=0, nogc, extend
             ldp     x0, x1, [fp, #0x58]
-            stp     x0, x1, [fp, #0x28]
+            stp     x0, x1, [fp, #0x30]
             ldr     x0, [fp, #0x68]
-            str     x0, [fp, #0x38]
+            str     x0, [fp, #0x40]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M61086_IG11:        ; bbWeight=0, isz, extend
             mov     x0, x25
             ; gcrRegs +[x0]
-            add     x1, fp, #40    // [V107 tmp98]
-            movz    x26, #0xD1FFAB1E      // code for <unknown method>
-            movk    x26, #0xD1FFAB1E LSL #16
-            movk    x26, #1 LSL #32
-            mov     x11, x26
+            add     x1, fp, #48    // [V107 tmp98]
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #1 LSL #32
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w27, w0
-            ldr     x28, [x24, #0x08]
-            ; gcrRegs +[x28]
-            ldr     w1, [x28, #0x08]
-            str     w1, [fp, #0x50]    // [V65 tmp56]
-            ldr     x2, [x24, #0x30]
-            str     x2, [fp, #0x48]    // [V66 tmp57]
+            sxtw    w26, w0
+            ldr     x27, [x24, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w28, [x27, #0x08]
+            ldr     x1, [x24, #0x30]
+            str     x1, [fp, #0x50]    // [V66 tmp57]
             mov     w0, #1
-            movz    x3, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #1 LSL #32
-            ldr     x3, [x3]
-            blr     x3
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #1 LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            mov     w0, w27
-            ldr     x2, [fp, #0x48]    // [V66 tmp57]
-            mul     x0, x2, x0
+            mov     w0, w26
+            ldr     x1, [fp, #0x50]    // [V66 tmp57]
+            mul     x0, x1, x0
             lsr     x0, x0, #32
             add     x0, x0, #1
-            ldr     w1, [fp, #0x50]    // [V65 tmp56]
-            mov     w2, w1
-            mul     x0, x0, x2
-            lsr     x2, x0, #32
-            str     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w1, #0
+            mov     w1, w28
+            mul     x0, x0, x1
+            lsr     x1, x0, #32
+            str     w1, [fp, #0x4C]    // [V67 tmp58]
+            cmp     w28, #0
             beq     G_M61086_IG54
-            udiv    w0, w27, w1
-            msub    w0, w0, w1, w27
-            cmp     w0, w2
+            udiv    w0, w26, w28
+            msub    w0, w0, w28, w26
+            cmp     w0, w1
             cset    x0, eq
-            movz    x1, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            ldr     x1, [x1]
-            blr     x1
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #1 LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            ldr     w0, [x28, #0x08]
-            ldr     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w2, w0
+            ldr     w0, [x27, #0x08]
+            ldr     w28, [fp, #0x4C]   // [V67 tmp58]
+            cmp     w28, w0
             bhs     G_M61086_IG53
-            add     x0, x28, #16
+            add     x0, x27, #16
             ; byrRegs +[x0]
-            ldr     w28, [x0, w2, UXTW #2]
-            ; gcrRegs -[x28]
+            ldr     w27, [x0, w28, UXTW #2]
+            ; gcrRegs -[x27]
             ldr     x24, [x24, #0x10]
-            mov     w3, wzr
-            sub     w28, w28, #1
+            mov     w28, wzr
+            sub     w27, w27, #1
             b       G_M61086_IG55
-                       ;; size=204 bbWeight=0 PerfScore 0.00
+                       ;; size=192 bbWeight=0 PerfScore 0.00
 G_M61086_IG12:        ; bbWeight=0.94, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x25]
             ; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28:        ; bbWeight=0.97, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
             ldr     x0, [x19, #0x90]
             ; gcrRegs +[x0]
             ldrsb   wzr, [x0]
-            stp     x20, x21, [fp, #0x28]  // [V107 tmp98], [V107 tmp98+0x08]
-            str     w22, [fp, #0x38]   // [V107 tmp98+0x10]
-            add     x1, fp, #40    // [V107 tmp98]
+            stp     x20, x21, [fp, #0x30]  // [V107 tmp98], [V107 tmp98+0x08]
+            str     w22, [fp, #0x40]   // [V107 tmp98+0x10]
+            add     x1, fp, #48    // [V107 tmp98]
             mov     x2, x24
             ; gcrRegs +[x2]
...

+8 (+1.08%) : 61229.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:Populate(System.String,int,int):System.Canon[]:this (Tier1)

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  6,  4   )     ref  ->  x20         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T00] (  8,  4   )     ref  ->  x19         class-hnd single-def <System.String>
+;  V01 arg1         [V01,T00] ( 10,  4   )     ref  ->  x19         class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T02] (  6,  4   )     int  ->  x21         single-def
 ;  V03 arg3         [V03,T03] (  6,  3   )     int  ->  x22         single-def
 ;  V04 loc0         [V04    ] (  5,  3   )     ref  ->  [fp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.__Canon[]>
@@ -21,14 +21,14 @@
 ;* V09 loc5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;* V10 loc6         [V10    ] (  0,  0   )    long  ->  zero-ref   
 ;  V11 loc7         [V11    ] (  3,  0   )   byref  ->  [fp-0x58]  must-init pinned
-;  V12 loc8         [V12,T15] (  2,  0   )    long  ->   x3        
+;  V12 loc8         [V12,T14] (  2,  0   )    long  ->   x3        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V14 tmp1         [V14,T05] (  7,  0   )    long  ->  x24        
-;  V15 tmp2         [V15,T14] (  2,  0   )     ref  ->  x25         class-hnd exact single-def "spilling ret_expr" <System.Text.UTF8Encoding+UTF8EncodingSealed>
+;  V15 tmp2         [V15,T13] (  2,  0   )     ref  ->  x25         class-hnd exact single-def "spilling ret_expr" <System.Text.UTF8Encoding+UTF8EncodingSealed>
 ;  V16 tmp3         [V16,T07] (  6,  0   )     int  ->  x26         "guarded devirt return temp"
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Text.UTF8Encoding+UTF8EncodingSealed>
 ;  V18 tmp5         [V18,T04] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
-;* V19 tmp6         [V19,T22] (  0,  0   )     int  ->  zero-ref   
+;* V19 tmp6         [V19,T21] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp7         [V20    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;  V21 tmp8         [V21,T08] (  5,  0   )     int  ->  x26         "Inline stloc first use temp"
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -39,17 +39,16 @@
 ;  V27 tmp14        [V27    ] (  1,  0   )     int  ->  [fp-0x68]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;* V28 tmp15        [V28    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V29 tmp16        [V29,T09] (  4,  0   )     int  ->   x3         "Inline stloc first use temp"
-;  V30 tmp17        [V30,T12] (  3,  0   )    long  ->  x26         "Inline stloc first use temp"
-;  V31 tmp18        [V31,T16] (  2,  0   )    long  ->  x24         "Cast away GC"
-;  V32 tmp19        [V32,T11] (  3,  0   )     ref  ->   x0         single-def "arr expr"
-;  V33 tmp20        [V33,T17] (  2,  0   )    long  ->   x3         "Cast away GC"
-;* V34 tmp21        [V34,T21] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V35 tmp22        [V35,T18] (  2,  0   )    long  ->   x1         "argument with side effect"
-;  V36 tmp23        [V36,T19] (  2,  0   )     int  ->   x2         "argument with side effect"
-;  V37 tmp24        [V37,T20] (  2,  0   )    long  ->   x3         "argument with side effect"
+;  V30 tmp17        [V30,T11] (  3,  0   )    long  ->  x26         "Inline stloc first use temp"
+;  V31 tmp18        [V31,T15] (  2,  0   )    long  ->  x24         "Cast away GC"
+;  V32 tmp19        [V32,T10] (  3,  0   )     ref  ->   x0         single-def "arr expr"
+;  V33 tmp20        [V33,T16] (  2,  0   )    long  ->   x3         "Cast away GC"
+;* V34 tmp21        [V34,T20] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V35 tmp22        [V35,T17] (  2,  0   )    long  ->   x1         "argument with side effect"
+;  V36 tmp23        [V36,T18] (  2,  0   )     int  ->   x2         "argument with side effect"
+;  V37 tmp24        [V37,T19] (  2,  0   )    long  ->   x3         "argument with side effect"
 ;  V38 GsCookie     [V38    ] (  1,  1   )    long  ->  [fp-0x70]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V39 cse0         [V39,T10] (  4,  0   )     int  ->  x23         "CSE - conservative"
-;  V40 rat0         [V40,T13] (  3,  0   )    long  ->   x0         "ReplaceWithLclVar is creating a new local variable"
+;  V39 rat0         [V39,T12] (  3,  0   )    long  ->   x0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -80,8 +79,8 @@ G_M22299_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cbz     x19, G_M22299_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M22299_IG03:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
-            ldr     w23, [x19, #0x08]
-            cmp     w23, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             cset    x0, eq
             b       G_M22299_IG08
                        ;; size=16 bbWeight=0 PerfScore 0.00
@@ -147,7 +146,8 @@ G_M22299_IG08:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cbnz    w0, G_M22299_IG04
             cmp     w22, #1
             bne     G_M22299_IG09
-            cmp     w23, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             bls     G_M22299_IG07
             ldrh    w0, [x19, #0x0C]
             cmp     w0, #46
@@ -156,8 +156,9 @@ G_M22299_IG08:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cmp     w0, #42
             beq     G_M22299_IG09
             b       G_M22299_IG04
-                       ;; size=48 bbWeight=0 PerfScore 0.00
+                       ;; size=52 bbWeight=0 PerfScore 0.00
 G_M22299_IG09:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w23, [x19, #0x08]
             add     x0, x19, #12
             ; byrRegs +[x0]
             str     x0, [fp, #-0x50]   // [V07 loc3]
@@ -179,7 +180,7 @@ G_M22299_IG09:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs -[x19-x20 x25]
             ; byrRegs -[x24]
             brk_unix #0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=64 bbWeight=0 PerfScore 0.00
 G_M22299_IG10:        ; bbWeight=0, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x19-x20 x25]
             sub     x2, fp, #96    // [V26 tmp13]
@@ -306,7 +307,7 @@ G_M22299_IG17:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             b       G_M22299_IG05
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 740, prolog size 60, PerfScore 48.00, instruction count 185, allocated bytes for code 740 (MethodHash=98ada8e4) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
+Total bytes of code 748, prolog size 60, PerfScore 48.00, instruction count 187, allocated bytes for code 748 (MethodHash=98ada8e4) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -317,7 +318,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 185 (0x000b9) Actual length = 740 (0x0002e4)
+  Function Length   : 187 (0x000bb) Actual length = 748 (0x0002ec)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+1.08%) : 27291.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:Populate(System.String,int,int):System.Canon[]:this (Tier1)

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  6,  4   )     ref  ->  x20         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T00] (  8,  4   )     ref  ->  x19         class-hnd single-def <System.String>
+;  V01 arg1         [V01,T00] ( 10,  4   )     ref  ->  x19         class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T02] (  6,  4   )     int  ->  x21         single-def
 ;  V03 arg3         [V03,T03] (  6,  3   )     int  ->  x22         single-def
 ;  V04 loc0         [V04    ] (  5,  3   )     ref  ->  [fp-0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.__Canon[]>
@@ -21,14 +21,14 @@
 ;* V09 loc5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;* V10 loc6         [V10    ] (  0,  0   )    long  ->  zero-ref   
 ;  V11 loc7         [V11    ] (  3,  0   )   byref  ->  [fp-0x58]  must-init pinned
-;  V12 loc8         [V12,T15] (  2,  0   )    long  ->   x3        
+;  V12 loc8         [V12,T14] (  2,  0   )    long  ->   x3        
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V14 tmp1         [V14,T05] (  7,  0   )    long  ->  x24        
-;  V15 tmp2         [V15,T14] (  2,  0   )     ref  ->  x25         class-hnd exact single-def "spilling ret_expr" <System.Text.UTF8Encoding+UTF8EncodingSealed>
+;  V15 tmp2         [V15,T13] (  2,  0   )     ref  ->  x25         class-hnd exact single-def "spilling ret_expr" <System.Text.UTF8Encoding+UTF8EncodingSealed>
 ;  V16 tmp3         [V16,T07] (  6,  0   )     int  ->  x26         "guarded devirt return temp"
 ;* V17 tmp4         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Text.UTF8Encoding+UTF8EncodingSealed>
 ;  V18 tmp5         [V18,T04] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
-;* V19 tmp6         [V19,T22] (  0,  0   )     int  ->  zero-ref   
+;* V19 tmp6         [V19,T21] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp7         [V20    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;  V21 tmp8         [V21,T08] (  5,  0   )     int  ->  x26         "Inline stloc first use temp"
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -39,17 +39,16 @@
 ;  V27 tmp14        [V27    ] (  1,  0   )     int  ->  [fp-0x68]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;* V28 tmp15        [V28    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V29 tmp16        [V29,T09] (  4,  0   )     int  ->   x3         "Inline stloc first use temp"
-;  V30 tmp17        [V30,T12] (  3,  0   )    long  ->  x26         "Inline stloc first use temp"
-;  V31 tmp18        [V31,T16] (  2,  0   )    long  ->  x24         "Cast away GC"
-;  V32 tmp19        [V32,T11] (  3,  0   )     ref  ->   x0         single-def "arr expr"
-;  V33 tmp20        [V33,T17] (  2,  0   )    long  ->   x3         "Cast away GC"
-;* V34 tmp21        [V34,T21] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V35 tmp22        [V35,T18] (  2,  0   )    long  ->   x1         "argument with side effect"
-;  V36 tmp23        [V36,T19] (  2,  0   )     int  ->   x2         "argument with side effect"
-;  V37 tmp24        [V37,T20] (  2,  0   )    long  ->   x3         "argument with side effect"
+;  V30 tmp17        [V30,T11] (  3,  0   )    long  ->  x26         "Inline stloc first use temp"
+;  V31 tmp18        [V31,T15] (  2,  0   )    long  ->  x24         "Cast away GC"
+;  V32 tmp19        [V32,T10] (  3,  0   )     ref  ->   x0         single-def "arr expr"
+;  V33 tmp20        [V33,T16] (  2,  0   )    long  ->   x3         "Cast away GC"
+;* V34 tmp21        [V34,T20] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V35 tmp22        [V35,T17] (  2,  0   )    long  ->   x1         "argument with side effect"
+;  V36 tmp23        [V36,T18] (  2,  0   )     int  ->   x2         "argument with side effect"
+;  V37 tmp24        [V37,T19] (  2,  0   )    long  ->   x3         "argument with side effect"
 ;  V38 GsCookie     [V38    ] (  1,  1   )    long  ->  [fp-0x70]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V39 cse0         [V39,T10] (  4,  0   )     int  ->  x23         "CSE - conservative"
-;  V40 rat0         [V40,T13] (  3,  0   )    long  ->   x0         "ReplaceWithLclVar is creating a new local variable"
+;  V39 rat0         [V39,T12] (  3,  0   )    long  ->   x0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -80,8 +79,8 @@ G_M22299_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cbz     x19, G_M22299_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M22299_IG03:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
-            ldr     w23, [x19, #0x08]
-            cmp     w23, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             cset    x0, eq
             b       G_M22299_IG08
                        ;; size=16 bbWeight=0 PerfScore 0.00
@@ -147,7 +146,8 @@ G_M22299_IG08:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cbnz    w0, G_M22299_IG04
             cmp     w22, #1
             bne     G_M22299_IG09
-            cmp     w23, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             bls     G_M22299_IG07
             ldrh    w0, [x19, #0x0C]
             cmp     w0, #46
@@ -156,8 +156,9 @@ G_M22299_IG08:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cmp     w0, #42
             beq     G_M22299_IG09
             b       G_M22299_IG04
-                       ;; size=48 bbWeight=0 PerfScore 0.00
+                       ;; size=52 bbWeight=0 PerfScore 0.00
 G_M22299_IG09:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            ldr     w23, [x19, #0x08]
             add     x0, x19, #12
             ; byrRegs +[x0]
             str     x0, [fp, #-0x50]   // [V07 loc3]
@@ -179,7 +180,7 @@ G_M22299_IG09:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs -[x19-x20 x25]
             ; byrRegs -[x24]
             brk_unix #0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=64 bbWeight=0 PerfScore 0.00
 G_M22299_IG10:        ; bbWeight=0, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x19-x20 x25]
             sub     x2, fp, #96    // [V26 tmp13]
@@ -306,7 +307,7 @@ G_M22299_IG17:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             b       G_M22299_IG05
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 740, prolog size 60, PerfScore 48.00, instruction count 185, allocated bytes for code 740 (MethodHash=98ada8e4) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
+Total bytes of code 748, prolog size 60, PerfScore 48.00, instruction count 187, allocated bytes for code 748 (MethodHash=98ada8e4) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -317,7 +318,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 185 (0x000b9) Actual length = 740 (0x0002e4)
+  Function Length   : 187 (0x000bb) Actual length = 748 (0x0002ec)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+1.42%) : 77153.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues1System.String

@@ -19,17 +19,17 @@
 ;  V07 loc2         [V07,T18] (  5,  3   )     ref  ->   x0         class-hnd <System.Buffers.SearchValues`1[System.String]>
 ;  V08 loc3         [V08,T19] (  3,  2.96)     int  ->   x2        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T44] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-;  V11 tmp2         [V11,T45] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+;  V10 tmp1         [V10,T43] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+;  V11 tmp2         [V11,T44] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T47] (  3,  0   )     ref  ->  x20        
-;  V15 tmp6         [V15,T46] (  4,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+;  V14 tmp5         [V14,T46] (  3,  0   )     ref  ->  x20        
+;  V15 tmp6         [V15,T45] (  4,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
 ;  V16 tmp7         [V16,T28] (  6,  1.19)     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V18 tmp9         [V18,T48] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V19 tmp10        [V19,T49] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V20 tmp11        [V20,T50] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V18 tmp9         [V18,T47] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V19 tmp10        [V19,T48] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V20 tmp11        [V20,T49] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V21 tmp12        [V21,T04] ( 10, 11.89)     ref  ->  x23         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V23 tmp14        [V23,T08] ( 16,  6.64)     int  ->  registers   ld-addr-op "Inline ldloca(s) first use temp"
@@ -84,9 +84,9 @@
 ;* V72 tmp63        [V72    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V73 tmp64        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V74 tmp65        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V75 tmp66        [V75,T54] (  3,  0   )     int  ->  x22         "Inlining Arg"
-;  V76 tmp67        [V76,T56] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
-;  V77 tmp68        [V77,T58] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V75 tmp66        [V75,T53] (  3,  0   )     int  ->  x22         "Inlining Arg"
+;  V76 tmp67        [V76,T55] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
+;  V77 tmp68        [V77,T57] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V78 tmp69        [V78    ] (  2,  0   )  ushort  ->  [fp+0x24]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V79 tmp70        [V79    ] (  2,  0   )  ushort  ->  [fp+0x20]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V80 tmp71        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -107,8 +107,8 @@
 ;* V95 tmp86        [V95    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V96 tmp87        [V96    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V97 tmp88        [V97    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V98 tmp89        [V98,T59] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
-;  V99 tmp90        [V99,T60] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
+;  V98 tmp89        [V98,T58] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
+;  V99 tmp90        [V99,T59] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
 ;* V100 tmp91       [V100    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V101 tmp92       [V101    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V102 tmp93       [V102    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -123,17 +123,17 @@
 ;* V111 tmp102      [V111    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V112 tmp103      [V112,T37] (  6,  0.72)     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V113 tmp104      [V113    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V114 tmp105      [V114,T51] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V115 tmp106      [V115,T52] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V116 tmp107      [V116,T53] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V114 tmp105      [V114,T50] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V115 tmp106      [V115,T51] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V116 tmp107      [V116,T52] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V117 tmp108      [V117,T26] (  3,  2.17)     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V118 tmp109      [V118    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V119 tmp110      [V119    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V120 tmp111      [V120    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V121 tmp112      [V121    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V122 tmp113      [V122,T55] (  3,  0   )     int  ->  x22         "Inlining Arg"
-;  V123 tmp114      [V123,T57] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
-;  V124 tmp115      [V124,T61] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V122 tmp113      [V122,T54] (  3,  0   )     int  ->  x22         "Inlining Arg"
+;  V123 tmp114      [V123,T56] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
+;  V124 tmp115      [V124,T60] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V125 tmp116      [V125    ] (  2,  0   )  ushort  ->  [fp+0x1C]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V126 tmp117      [V126    ] (  2,  0   )  ushort  ->  [fp+0x18]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V127 tmp118      [V127    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -154,8 +154,8 @@
 ;* V142 tmp133      [V142    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V143 tmp134      [V143    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V144 tmp135      [V144    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V145 tmp136      [V145,T62] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
-;  V146 tmp137      [V146,T63] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
+;  V145 tmp136      [V145,T61] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
+;  V146 tmp137      [V146,T62] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
 ;* V147 tmp138      [V147    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V148 tmp139      [V148    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V149 tmp140      [V149    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -238,7 +238,6 @@
 ;* V226 tmp217      [V226    ] (  0,  0   )   byref  ->  zero-ref    "field V158._reference (fldOffset=0x0)" P-INDEP
 ;* V227 tmp218      [V227    ] (  0,  0   )     int  ->  zero-ref    "field V158._length (fldOffset=0x8)" P-INDEP
 ;  V228 cse0        [V228,T09] ( 13,  6.56)     int  ->  x22         "CSE - aggressive"
-;  V229 cse1        [V229,T43] (  9,  0   )     ref  ->   x1         multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 24
 
@@ -471,37 +470,37 @@ G_M46798_IG34:        ; bbWeight=0.59, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
             cbnz    w24, G_M46798_IG36
                        ;; size=4 bbWeight=0.59 PerfScore 0.59
 G_M46798_IG35:        ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=44 bbWeight=0 PerfScore 0.00
 G_M46798_IG36:        ; bbWeight=0.59, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
             cmp     w24, w25
             bne     G_M46798_IG38
                        ;; size=8 bbWeight=0.59 PerfScore 0.89
 G_M46798_IG37:        ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=44 bbWeight=0 PerfScore 0.00
 G_M46798_IG38:        ; bbWeight=0.59, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
             cmp     w25, #0
             ccmp    w25, w24, z, gt
@@ -815,20 +814,20 @@ G_M46798_IG55:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
                        ;; size=4 bbWeight=0 PerfScore 0.00
 G_M46798_IG56:        ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19-x20 x23]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
             b       G_M46798_IG42
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 G_M46798_IG57:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x23]
             movz    x0, #0xD1FFAB1E
@@ -945,7 +944,7 @@ G_M46798_IG60:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
 RWD00      dd  7F7FFFFFh       ; 3.40282e+38
 
 
-; Total bytes of code 1692, prolog size 36, PerfScore 191.16, instruction count 423, allocated bytes for code 1692 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
+Total bytes of code 1716, prolog size 36, PerfScore 191.16, instruction count 429, allocated bytes for code 1716 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -956,7 +955,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 423 (0x001a7) Actual length = 1692 (0x00069c)
+  Function Length   : 429 (0x001ad) Actual length = 1716 (0x0006b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

coreclr_tests.run.osx.arm64.checked.mch

-20 (-1.71%) : 261279.dasm - System.Text.StringBuilder+AppendInterpolatedStringHandler:AppendFormattedSystem.__Canon:this (Tier1)

@@ -19,19 +19,19 @@
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T02] (  6, 10   )     ref  ->  x22         class-hnd exact single-def "impAppendStmt" <System.Text.StringBuilder>
 ;* V09 tmp2         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "non-inline candidate call" <System.Text.StringBuilder>
-;* V10 tmp3         [V10,T50] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <System.__Canon>
+;* V10 tmp3         [V10,T49] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <System.__Canon>
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ushort]>
 ;* V12 tmp5         [V12    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V13 tmp6         [V13,T36] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "dup spill" <System.Text.StringBuilder>
+;  V13 tmp6         [V13,T35] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "dup spill" <System.Text.StringBuilder>
 ;* V14 tmp7         [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V15 tmp8         [V15,T09] (  6,  4   )     ref  ->   x0         "guarded devirt return temp"
 ;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def "guarded devirt arg temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Reflection.AssemblyName>
-;  V18 tmp11        [V18,T31] (  5,  0   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
+;  V18 tmp11        [V18,T30] (  5,  0   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
 ;* V19 tmp12        [V19    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V20 tmp13        [V20,T32] (  4,  0   )     ref  ->  x23         class-hnd single-def "Inlining Arg" <ushort[]>
-;  V21 tmp14        [V21,T33] (  4,  0   )     int  ->  x24         "Inlining Arg"
-;  V22 tmp15        [V22,T34] (  4,  0   )     int  ->  x25         "Inlining Arg"
+;  V20 tmp13        [V20,T31] (  4,  0   )     ref  ->  x23         class-hnd single-def "Inlining Arg" <ushort[]>
+;  V21 tmp14        [V21,T32] (  4,  0   )     int  ->  x24         "Inlining Arg"
+;  V22 tmp15        [V22,T33] (  4,  0   )     int  ->  x25         "Inlining Arg"
 ;* V23 tmp16        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;  V24 tmp17        [V24,T19] (  4,  3   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.String>
 ;  V25 tmp18        [V25,T12] (  2,  4   )     ref  ->  x23         class-hnd single-def "dup spill" <<unknown class>>
@@ -41,7 +41,7 @@
 ;  V29 tmp22        [V29,T14] (  2,  4   )     ref  ->  x25         class-hnd exact single-def "impAppendStmt" <System.Version>
 ;  V30 tmp23        [V30,T11] (  3,  4   )     ref  ->   x2         class-hnd exact "impAppendStmt" <System.String>
 ;  V31 tmp24        [V31,T15] (  2,  4   )     int  ->   x4         "impAppendStmt"
-;* V32 tmp25        [V32,T26] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V32 tmp25        [V32,T27] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V33 tmp26        [V33,T06] (  3,  5.23)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V34 tmp27        [V34,T04] (  8,  7.94)     ref  ->   x0         class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
 ;* V35 tmp28        [V35    ] (  0,  0   )     ref  ->  zero-ref    single-def
@@ -51,11 +51,11 @@
 ;  V39 tmp32        [V39,T21] (  4,  2.61)     ref  ->   x2        
 ;* V40 tmp33        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V41 tmp34        [V41    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V42 tmp35        [V42,T27] (  7,  0.69)     ref  ->   x2        
+;  V42 tmp35        [V42,T26] (  6,  1.04)     ref  ->   x2        
 ;* V43 tmp36        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V44 tmp37        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V45 tmp38        [V45,T28] (  2,  0.69)     ref  ->   x2         class-hnd exact single-def "dup spill" <System.String>
-;  V46 tmp39        [V46,T29] (  5,  0.52)     ref  ->   x2        
+;  V45 tmp38        [V45,T29] (  2,  0.69)     ref  ->   x2         class-hnd exact single-def "dup spill" <System.String>
+;  V46 tmp39        [V46,T28] (  5,  0.86)     ref  ->   x2        
 ;  V47 tmp40        [V47,T08] (  5,  5   )     int  ->   x5         "Inline stloc first use temp"
 ;* V48 tmp41        [V48    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.RuntimeType>
 ;  V49 tmp42        [V49,T01] (  8, 10.33)     int  ->  x26         "Inlining Arg"
@@ -67,28 +67,27 @@
 ;* V55 tmp48        [V55    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V56 tmp49        [V56,T23] (  2,  2.33)    long  ->   x2         "Inlining Arg"
 ;* V57 tmp50        [V57    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V58 tmp51        [V58,T43] (  2,  0   )   byref  ->   x4         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V59 tmp52        [V59,T51] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
+;  V58 tmp51        [V58,T42] (  2,  0   )   byref  ->   x4         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V59 tmp52        [V59,T50] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V60 tmp53        [V60    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V61 tmp54        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V62 tmp55        [V62    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V63 tmp56        [V63    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
-;  V64 tmp57        [V64,T37] (  3,  0   )   byref  ->   x1         "field V19._reference (fldOffset=0x0)" P-INDEP
-;  V65 tmp58        [V65,T35] (  4,  0   )     int  ->  x25         "field V19._length (fldOffset=0x8)" P-INDEP
-;  V66 tmp59        [V66,T44] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V67 tmp60        [V67,T45] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V68 tmp61        [V68,T46] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V69 tmp62        [V69,T47] (  2,  0   )     ref  ->  x26         single-def "argument with side effect"
-;  V70 tmp63        [V70,T48] (  2,  0   )    long  ->   x1         "argument with side effect"
-;  V71 tmp64        [V71,T49] (  2,  0   )    long  ->   x1         "argument with side effect"
+;  V64 tmp57        [V64,T36] (  3,  0   )   byref  ->   x1         "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V65 tmp58        [V65,T34] (  4,  0   )     int  ->  x25         "field V19._length (fldOffset=0x8)" P-INDEP
+;  V66 tmp59        [V66,T43] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V67 tmp60        [V67,T44] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V68 tmp61        [V68,T45] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V69 tmp62        [V69,T46] (  2,  0   )     ref  ->  x26         single-def "argument with side effect"
+;  V70 tmp63        [V70,T47] (  2,  0   )    long  ->   x1         "argument with side effect"
+;  V71 tmp64        [V71,T48] (  2,  0   )    long  ->   x1         "argument with side effect"
 ;  V72 cse0         [V72,T20] (  3,  3   )     int  ->   x0         "CSE - moderate"
-;  V73 cse1         [V73,T30] (  6,  0   )     ref  ->  registers   multi-def "CSE - moderate"
-;  V74 rat0         [V74,T38] (  3,  0   )    long  ->   x1         "runtime lookup"
-;  V75 rat1         [V75,T39] (  3,  0   )    long  ->   x0         "spilling expr"
-;  V76 rat2         [V76,T40] (  3,  0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;  V77 rat3         [V77,T41] (  3,  0   )    long  ->   x1         "runtime lookup"
-;  V78 rat4         [V78,T42] (  3,  0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;  V79 rat5         [V79,T03] (  6,  8   )     ref  ->   x1         class-hnd "replacement local" <<unknown class>>
+;  V73 rat0         [V73,T37] (  3,  0   )    long  ->   x1         "runtime lookup"
+;  V74 rat1         [V74,T38] (  3,  0   )    long  ->   x0         "spilling expr"
+;  V75 rat2         [V75,T39] (  3,  0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V76 rat3         [V76,T40] (  3,  0   )    long  ->   x1         "runtime lookup"
+;  V77 rat4         [V77,T41] (  3,  0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V78 rat5         [V78,T03] (  6,  8   )     ref  ->   x1         class-hnd "replacement local" <<unknown class>>
 ;
 ; Lcl frame size = 24
 
@@ -141,7 +140,7 @@ G_M62532_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
             blr     x4
             ; gcrRegs -[x2 x19]
             ; byrRegs -[x0 x20]
-            b       G_M62532_IG42
+            b       G_M62532_IG41
                        ;; size=36 bbWeight=0 PerfScore 0.00
 G_M62532_IG06:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
             ; gcrRegs +[x19]
@@ -275,7 +274,7 @@ G_M62532_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
             ldr     w2, [fp, #0x18]    // [V06 loc3]
             add     w1, w1, w2
             str     w1, [x0, #0x18]
-            b       G_M62532_IG42
+            b       G_M62532_IG41
                        ;; size=24 bbWeight=0 PerfScore 0.00
 G_M62532_IG17:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
             ; gcrRegs -[x0] +[x19]
@@ -306,7 +305,7 @@ G_M62532_IG19:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
             blr     x5
             ; gcrRegs -[x2 x19]
             ; byrRegs -[x0 x20]
-            b       G_M62532_IG42
+            b       G_M62532_IG41
                        ;; size=40 bbWeight=0 PerfScore 0.00
 G_M62532_IG20:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
             ; gcrRegs +[x19]
@@ -335,12 +334,12 @@ G_M62532_IG20:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
             ldr     wzr, [x0]
             blr     x2
             ; gcrRegs -[x1 x26]
-            b       G_M62532_IG42
+            b       G_M62532_IG41
                        ;; size=72 bbWeight=0 PerfScore 0.00
 G_M62532_IG21:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
             ; gcrRegs -[x0] +[x19]
             ; byrRegs +[x20]
-            cbz     x19, G_M62532_IG42
+            cbz     x19, G_M62532_IG41
             ldr     x22, [x20]
             ; gcrRegs +[x22]
             ldr     x0, [x19]
@@ -362,11 +361,11 @@ G_M62532_IG22:        ; bbWeight=0, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {
                        ;; size=20 bbWeight=0 PerfScore 0.00
 G_M62532_IG23:        ; bbWeight=1, gcrefRegs=400001 {x0 x22}, byrefRegs=0000 {}, byref, isz
             ldrsb   wzr, [x22]
-            cbz     x0, G_M62532_IG42
+            cbz     x0, G_M62532_IG41
             add     x1, x0, #12
             ; byrRegs +[x1]
             ldr     w26, [x0, #0x08]
-            cbz     w26, G_M62532_IG42
+            cbz     w26, G_M62532_IG41
             ldr     x2, [x22, #0x08]
             ; gcrRegs +[x2]
             ldr     w27, [x22, #0x18]
@@ -374,7 +373,7 @@ G_M62532_IG23:        ; bbWeight=1, gcrefRegs=400001 {x0 x22}, byrefRegs=0000 {}
             ; gcrRegs -[x0]
             ldr     w3, [x2, #0x08]
             cmp     w0, w3
-            bhi     G_M62532_IG41
+            bhi     G_M62532_IG40
                        ;; size=44 bbWeight=1 PerfScore 19.50
 G_M62532_IG24:        ; bbWeight=0.58, gcrefRegs=400004 {x2 x22}, byrefRegs=0002 {x1}, byref, isz
             add     x2, x2, #16
@@ -384,8 +383,8 @@ G_M62532_IG24:        ; bbWeight=0.58, gcrefRegs=400004 {x2 x22}, byrefRegs=0002
             add     x0, x2, x0
             ; byrRegs +[x0]
             cmp     w26, #2
-            bgt     G_M62532_IG43
-            b       G_M62532_IG48
+            bgt     G_M62532_IG42
+            b       G_M62532_IG45
                        ;; size=24 bbWeight=0.58 PerfScore 2.62
 G_M62532_IG25:        ; bbWeight=1, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x19]
@@ -478,26 +477,29 @@ G_M62532_IG34:        ; bbWeight=1, gcrefRegs=3C80004 {x2 x19 x22 x23 x24 x25},
             ; gcrRegs -[x1-x3 x23-x25]
                        ;; size=60 bbWeight=1 PerfScore 13.50
 G_M62532_IG35:        ; bbWeight=1, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
-            cbnz    x0, G_M62532_IG40
-            b       G_M62532_IG47
+            cbnz    x0, G_M62532_IG39
+            b       G_M62532_IG44
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M62532_IG36:        ; bbWeight=0.81, gcrefRegs=3C80001 {x0 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x23-x25]
             ldr     x2, [x0, #0x48]
             ; gcrRegs +[x2]
-            cbnz    x2, G_M62532_IG39
+            cbnz    x2, G_M62532_IG38
                        ;; size=8 bbWeight=0.81 PerfScore 3.25
-G_M62532_IG37:        ; bbWeight=0.17, gcrefRegs=3C80001 {x0 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref, isz
+G_M62532_IG37:        ; bbWeight=0.17, gcrefRegs=3C80001 {x0 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             ldr     x14, [x0, #0x30]
             ; gcrRegs +[x14]
             ldr     x2, [x14, #0x18]
             ; gcrRegs +[x2]
-            cbz     x2, G_M62532_IG45
-            cbz     x2, G_M62532_IG46
-                       ;; size=16 bbWeight=0.17 PerfScore 1.38
-G_M62532_IG38:        ; bbWeight=0.17, gcrefRegs=3C80005 {x0 x2 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref
+            movz    x14, #8
             ; gcrRegs -[x14]
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #1 LSL #32
+            cmp     x2, #0
+            csel    x2, x2, x14, ne
+            cmp     x2, #0
+            csel    x2, x2, x14, ne
             add     x14, x0, #72
             ; byrRegs +[x14]
             mov     x15, x2
@@ -505,15 +507,15 @@ G_M62532_IG38:        ; bbWeight=0.17, gcrefRegs=3C80005 {x0 x2 x19 x22 x23 x24
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
-                       ;; size=12 bbWeight=0.17 PerfScore 0.35
-G_M62532_IG39:        ; bbWeight=0.81, gcrefRegs=3C80004 {x2 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref
+                       ;; size=48 bbWeight=0.17 PerfScore 1.99
+G_M62532_IG38:        ; bbWeight=0.81, gcrefRegs=3C80004 {x2 x19 x22 x23 x24 x25}, byrefRegs=0000 {}, byref
             b       G_M62532_IG34
                        ;; size=4 bbWeight=0.81 PerfScore 0.81
-G_M62532_IG40:        ; bbWeight=1, gcrefRegs=400001 {x0 x22}, byrefRegs=0000 {}, byref
+G_M62532_IG39:        ; bbWeight=1, gcrefRegs=400001 {x0 x22}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2 x19 x23-x25] +[x0]
             b       G_M62532_IG23
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M62532_IG41:        ; bbWeight=0.42, gcrefRegs=400000 {x22}, byrefRegs=0002 {x1}, byref
+G_M62532_IG40:        ; bbWeight=0.42, gcrefRegs=400000 {x22}, byrefRegs=0002 {x1}, byref
             ; gcrRegs -[x0]
             ; byrRegs +[x1]
             mov     x0, x22
@@ -527,7 +529,7 @@ G_M62532_IG41:        ; bbWeight=0.42, gcrefRegs=400000 {x22}, byrefRegs=0002 {x
             ; gcrRegs -[x0 x22]
             ; byrRegs -[x1]
                        ;; size=28 bbWeight=0.42 PerfScore 2.71
-G_M62532_IG42:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M62532_IG41:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ldr     x27, [sp, #0x68]
             ldp     x25, x26, [sp, #0x58]
             ldp     x23, x24, [sp, #0x48]
@@ -536,7 +538,7 @@ G_M62532_IG42:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldp     fp, lr, [sp], #0x70
             ret     lr
                        ;; size=28 bbWeight=1 PerfScore 8.00
-G_M62532_IG43:        ; bbWeight=0.58, gcVars=0000000000000000 {}, gcrefRegs=400000 {x22}, byrefRegs=0003 {x0 x1}, gcvars, byref
+G_M62532_IG42:        ; bbWeight=0.58, gcVars=0000000000000000 {}, gcrefRegs=400000 {x22}, byrefRegs=0003 {x0 x1}, gcvars, byref
             ; gcrRegs +[x22]
             ; byrRegs +[x0-x1]
             sxtw    x2, w26
@@ -548,31 +550,13 @@ G_M62532_IG43:        ; bbWeight=0.58, gcVars=0000000000000000 {}, gcrefRegs=400
             blr     x3
             ; byrRegs -[x0-x1]
...

-28 (-1.29%) : 261382.dasm - BinderTracingTests.HandlerInvocation:ToString():System.String:this (Tier1)

@@ -52,7 +52,7 @@
 ;  V40 tmp36        [V40,T36] (  2,  4   )     ref  ->  x27         class-hnd exact single-def "impAppendStmt" <System.Version>
 ;  V41 tmp37        [V41,T31] (  3,  4   )     ref  ->   x2         class-hnd exact "impAppendStmt" <System.String>
 ;  V42 tmp38        [V42,T37] (  2,  4   )     int  ->   x4         "impAppendStmt"
-;* V43 tmp39        [V43,T85] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V43 tmp39        [V43,T86] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V44 tmp40        [V44,T20] (  3,  5.23)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V45 tmp41        [V45,T18] (  8,  7.94)     ref  ->   x0         class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
 ;* V46 tmp42        [V46    ] (  0,  0   )     ref  ->  zero-ref    single-def
@@ -62,11 +62,11 @@
 ;  V50 tmp46        [V50,T58] (  4,  2.61)     ref  ->   x2        
 ;* V51 tmp47        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V52 tmp48        [V52    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V53 tmp49        [V53,T88] (  7,  0.69)     ref  ->   x2        
+;  V53 tmp49        [V53,T85] (  6,  1.04)     ref  ->   x2        
 ;* V54 tmp50        [V54    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V55 tmp51        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V56 tmp52        [V56,T89] (  2,  0.69)     ref  ->   x2         class-hnd exact single-def "dup spill" <System.String>
-;  V57 tmp53        [V57,T90] (  5,  0.52)     ref  ->   x2        
+;  V56 tmp52        [V56,T91] (  2,  0.69)     ref  ->   x2         class-hnd exact single-def "dup spill" <System.String>
+;  V57 tmp53        [V57,T88] (  5,  0.86)     ref  ->   x2        
 ;  V58 tmp54        [V58,T22] (  5,  5   )     int  ->   x5         "Inline stloc first use temp"
 ;  V59 tmp55        [V59,T08] (  6, 10   )     ref  ->  x28         class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
 ;  V60 tmp56        [V60,T04] (  8, 10.33)     int  ->  x24         "Inlining Arg"
@@ -78,7 +78,7 @@
 ;* V66 tmp62        [V66    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V67 tmp63        [V67,T69] (  2,  2.33)    long  ->   x2         "Inlining Arg"
 ;* V68 tmp64        [V68    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V69 tmp65        [V69,T86] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V69 tmp65        [V69,T87] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V70 tmp66        [V70,T21] (  3,  5.23)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V71 tmp67        [V71,T15] (  5,  8   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
 ;  V72 tmp68        [V72,T63] (  3,  2.58)     ref  ->   x2         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -93,7 +93,7 @@
 ;  V81 tmp77        [V81,T55] (  2,  3   )     ref  ->  x27         class-hnd exact single-def "impAppendStmt" <System.Version>
 ;  V82 tmp78        [V82,T51] (  3,  3   )     ref  ->   x2         class-hnd exact "impAppendStmt" <System.String>
 ;  V83 tmp79        [V83,T56] (  2,  3   )     int  ->   x4         "impAppendStmt"
-;* V84 tmp80        [V84,T87] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V84 tmp80        [V84,T90] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V85 tmp81        [V85,T38] (  3,  3.92)     ref  ->  x14         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V86 tmp82        [V86,T19] (  8,  5.96)     ref  ->   x0         class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
 ;* V87 tmp83        [V87    ] (  0,  0   )     ref  ->  zero-ref    single-def
@@ -103,11 +103,11 @@
 ;  V91 tmp87        [V91,T73] (  4,  1.96)     ref  ->   x2        
 ;* V92 tmp88        [V92    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V93 tmp89        [V93    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V94 tmp90        [V94,T91] (  5,  0.52)     ref  ->   x2        
+;  V94 tmp90        [V94,T89] (  6,  0.78)     ref  ->   x2        
 ;* V95 tmp91        [V95    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V96 tmp92        [V96    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V97 tmp93        [V97,T92] (  2,  0.52)     ref  ->   x2         class-hnd exact single-def "dup spill" <System.String>
-;  V98 tmp94        [V98,T93] (  4,  0.39)     ref  ->   x2        
+;  V97 tmp93        [V97,T93] (  2,  0.52)     ref  ->   x2         class-hnd exact single-def "dup spill" <System.String>
+;  V98 tmp94        [V98,T92] (  5,  0.65)     ref  ->   x2        
 ;  V99 tmp95        [V99,T39] (  5,  3.75)     int  ->   x5         "Inline stloc first use temp"
 ;  V100 tmp96       [V100,T09] (  6, 10   )     ref  ->  x24         class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
 ;  V101 tmp97       [V101,T05] (  8, 10.33)     int  ->  x26         "Inlining Arg"
@@ -140,7 +140,6 @@
 ;  V128 tmp124      [V128    ] ( 11,  6   )   ubyte  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V03._hasCustomFormatter (fldOffset=0x10)" P-DEP
 ;  V129 cse0        [V129,T52] (  3,  3   )     int  ->   x0         "CSE - conservative"
 ;  V130 cse1        [V130,T72] (  3,  2.25)     int  ->   x0         "CSE - conservative"
-;  V131 cse2        [V131,T94] ( 12,  0   )     ref  ->   x2         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -474,13 +473,13 @@ G_M44822_IG27:        ; bbWeight=0, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=000
 G_M44822_IG28:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x19, #0x18]
             ; gcrRegs +[x0]
-            cbz     x0, G_M44822_IG36
+            cbz     x0, G_M44822_IG35
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M44822_IG29:        ; bbWeight=0.62, gcrefRegs=180001 {x0 x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x0, #0x08]
             ; gcrRegs -[x0]
-            cbz     w0, G_M44822_IG36
-            b       G_M44822_IG66
+            cbz     w0, G_M44822_IG35
+            b       G_M44822_IG69
                        ;; size=12 bbWeight=0.62 PerfScore 3.08
 G_M44822_IG30:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x2]
@@ -497,7 +496,7 @@ G_M44822_IG30:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=000
             add     w0, w25, w24
             ldr     w3, [x2, #0x08]
             cmp     w0, w3
-            bhi     G_M44822_IG54
+            bhi     G_M44822_IG53
                        ;; size=48 bbWeight=1 PerfScore 21.50
 G_M44822_IG31:        ; bbWeight=0.58, gcrefRegs=10180004 {x2 x19 x20 x28}, byrefRegs=0002 {x1}, byref, isz
             add     x2, x2, #16
@@ -507,27 +506,30 @@ G_M44822_IG31:        ; bbWeight=0.58, gcrefRegs=10180004 {x2 x19 x20 x28}, byre
             add     x0, x2, x0
             ; byrRegs +[x0]
             cmp     w24, #2
-            bgt     G_M44822_IG40
-            b       G_M44822_IG82
+            bgt     G_M44822_IG39
+            b       G_M44822_IG76
                        ;; size=24 bbWeight=0.58 PerfScore 2.62
 G_M44822_IG32:        ; bbWeight=0.81, gcrefRegs=F180001 {x0 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x28] +[x0 x24-x27]
             ; byrRegs -[x0-x2]
             ldr     x2, [x0, #0x48]
             ; gcrRegs +[x2]
-            cbnz    x2, G_M44822_IG35
+            cbnz    x2, G_M44822_IG34
                        ;; size=8 bbWeight=0.81 PerfScore 3.25
-G_M44822_IG33:        ; bbWeight=0.17, gcrefRegs=F180001 {x0 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref, isz
+G_M44822_IG33:        ; bbWeight=0.17, gcrefRegs=F180001 {x0 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
             ldr     x14, [x0, #0x30]
             ; gcrRegs +[x14]
             ldr     x2, [x14, #0x18]
             ; gcrRegs +[x2]
-            cbz     x2, G_M44822_IG80
-            cbz     x2, G_M44822_IG81
-                       ;; size=16 bbWeight=0.17 PerfScore 1.38
-G_M44822_IG34:        ; bbWeight=0.17, gcrefRegs=F180005 {x0 x2 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref
+            movz    x14, #8
             ; gcrRegs -[x14]
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #1 LSL #32
+            cmp     x2, #0
+            csel    x2, x2, x14, ne
+            cmp     x2, #0
+            csel    x2, x2, x14, ne
             add     x14, x0, #72
             ; byrRegs +[x14]
             mov     x15, x2
@@ -535,11 +537,11 @@ G_M44822_IG34:        ; bbWeight=0.17, gcrefRegs=F180005 {x0 x2 x19 x20 x24 x25
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
-                       ;; size=12 bbWeight=0.17 PerfScore 0.35
-G_M44822_IG35:        ; bbWeight=0.81, gcrefRegs=F180004 {x2 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref
+                       ;; size=48 bbWeight=0.17 PerfScore 1.99
+G_M44822_IG34:        ; bbWeight=0.81, gcrefRegs=F180004 {x2 x19 x20 x24 x25 x26 x27}, byrefRegs=0000 {}, byref
             b       G_M44822_IG25
                        ;; size=4 bbWeight=0.81 PerfScore 0.81
-G_M44822_IG36:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M44822_IG35:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x2 x24-x27]
             stp     x20, xzr, [fp, #0x18]  // [V126 tmp122], [V127 tmp123]
             strb    wzr, [fp, #0x28]   // [V128 tmp124]
@@ -554,9 +556,9 @@ G_M44822_IG36:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ldr     w4, [x2, #0x08]
             add     w5, w3, #16
             cmp     w4, w5
-            blo     G_M44822_IG67
+            blo     G_M44822_IG70
                        ;; size=48 bbWeight=1 PerfScore 16.50
-G_M44822_IG37:        ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRegs=0002 {x1}, byref
+G_M44822_IG36:        ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRegs=0002 {x1}, byref
             ; byrRegs +[x1]
             add     x2, x2, #16
             ; gcrRegs -[x2]
@@ -569,22 +571,22 @@ G_M44822_IG37:        ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRe
             ; byrRegs -[x1]
             str     w1, [x0, #0x18]
                        ;; size=28 bbWeight=0.58 PerfScore 4.37
-G_M44822_IG38:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M44822_IG37:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ; byrRegs -[x2]
             ldr     x25, [x19, #0x20]
             ; gcrRegs +[x25]
             add     x28, fp, #24   // [V03 loc2]
             ; byrRegs +[x28]
-            cbnz    x25, G_M44822_IG55
+            cbnz    x25, G_M44822_IG54
                        ;; size=12 bbWeight=1 PerfScore 4.50
-G_M44822_IG39:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=10000000 {x28}, byref
+G_M44822_IG38:        ; bbWeight=0.25, gcrefRegs=180000 {x19 x20}, byrefRegs=10000000 {x28}, byref
             ; gcrRegs -[x25]
             mov     x2, xzr
             ; gcrRegs +[x2]
-            b       G_M44822_IG43
+            b       G_M44822_IG42
                        ;; size=8 bbWeight=0.25 PerfScore 0.38
-G_M44822_IG40:        ; bbWeight=0.58, gcrefRegs=10180000 {x19 x20 x28}, byrefRegs=0003 {x0 x1}, byref
+G_M44822_IG39:        ; bbWeight=0.58, gcrefRegs=10180000 {x19 x20 x28}, byrefRegs=0003 {x0 x1}, byref
             ; gcrRegs -[x2] +[x28]
             ; byrRegs -[x28] +[x0-x1]
             sxtw    x2, w24
@@ -596,12 +598,12 @@ G_M44822_IG40:        ; bbWeight=0.58, gcrefRegs=10180000 {x19 x20 x28}, byrefRe
             blr     x3
             ; byrRegs -[x0-x1]
                        ;; size=28 bbWeight=0.58 PerfScore 4.08
-G_M44822_IG41:        ; bbWeight=0.58, gcrefRegs=10180000 {x19 x20 x28}, byrefRegs=0000 {}, byref
+G_M44822_IG40:        ; bbWeight=0.58, gcrefRegs=10180000 {x19 x20 x28}, byrefRegs=0000 {}, byref
             add     w0, w25, w24
             str     w0, [x28, #0x18]
             b       G_M44822_IG28
                        ;; size=12 bbWeight=0.58 PerfScore 1.46
-G_M44822_IG42:        ; bbWeight=0.75, gcrefRegs=F180004 {x2 x19 x20 x24 x25 x26 x27}, byrefRegs=10000000 {x28}, byref
+G_M44822_IG41:        ; bbWeight=0.75, gcrefRegs=F180004 {x2 x19 x20 x24 x25 x26 x27}, byrefRegs=10000000 {x28}, byref
             ; gcrRegs -[x28] +[x2 x24-x27]
             ; byrRegs +[x28]
             ldr     w0, [x25, #0x40]
@@ -626,12 +628,12 @@ G_M44822_IG42:        ; bbWeight=0.75, gcrefRegs=F180004 {x2 x19 x20 x24 x25 x26
             mov     x2, x0
             ; gcrRegs +[x2]
                        ;; size=64 bbWeight=0.75 PerfScore 10.50
-G_M44822_IG43:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=10000000 {x28}, byref, isz
+G_M44822_IG42:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=10000000 {x28}, byref, isz
             ; gcrRegs -[x0]
             ldrb    w0, [x28, #0x10]
-            cbz     w0, G_M44822_IG52
+            cbz     w0, G_M44822_IG51
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M44822_IG44:        ; bbWeight=0, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=10000000 {x28}, byref
+G_M44822_IG43:        ; bbWeight=0, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=10000000 {x28}, byref
             mov     x0, x28
             ; byrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -645,7 +647,7 @@ G_M44822_IG44:        ; bbWeight=0, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=100
             ; gcrRegs -[x2]
             ; byrRegs -[x0 x28]
                        ;; size=36 bbWeight=0 PerfScore 0.00
-G_M44822_IG45:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M44822_IG44:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [fp, #0x18]    // [V126 tmp122]
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -657,9 +659,9 @@ G_M44822_IG45:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ldr     w4, [x2, #0x08]
             add     w5, w3, #7
             cmp     w4, w5
-            blo     G_M44822_IG78
+            blo     G_M44822_IG74
                        ;; size=40 bbWeight=1 PerfScore 14.50
-G_M44822_IG46:        ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRegs=0002 {x1}, byref
+G_M44822_IG45:        ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRegs=0002 {x1}, byref
             ; byrRegs +[x1]
             add     x2, x2, #16
             ; gcrRegs -[x2]
@@ -674,15 +676,15 @@ G_M44822_IG46:        ; bbWeight=0.58, gcrefRegs=180005 {x0 x2 x19 x20}, byrefRe
             ; byrRegs -[x1]
             str     w1, [x0, #0x18]
                        ;; size=36 bbWeight=0.58 PerfScore 6.71
-G_M44822_IG47:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+G_M44822_IG46:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ; byrRegs -[x2]
             ldr     x2, [x19, #0x28]
             ; gcrRegs +[x2]
             ldrb    w0, [fp, #0x28]    // [V128 tmp124]
-            cbz     w0, G_M44822_IG51
+            cbz     w0, G_M44822_IG50
...

-4 (-1.20%) : 296299.dasm - Runtime71611:Cloned(Runtime71611+I,int[],int[],int,int):int (Tier1)

@@ -9,21 +9,20 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T09] (  6,  3.36)     ref  ->  x22         class-hnd single-def <Runtime_71611+I>
-;  V01 arg1         [V01,T06] (  7,  4.06)     ref  ->  x21         class-hnd single-def <int[]>
-;  V02 arg2         [V02,T04] (  8,  6.33)     ref  ->  x20         class-hnd single-def <int[]>
-;  V03 arg3         [V03,T10] (  3,  3   )     int  ->   x3         single-def
+;  V00 arg0         [V00,T08] (  6,  3.36)     ref  ->  x22         class-hnd single-def <Runtime_71611+I>
+;  V01 arg1         [V01,T05] (  7,  4.06)     ref  ->  x21         class-hnd single-def <int[]>
+;  V02 arg2         [V02,T03] (  8,  6.33)     ref  ->  x20         class-hnd single-def <int[]>
+;  V03 arg3         [V03,T09] (  3,  3   )     int  ->   x3         single-def
 ;  V04 arg4         [V04,T02] (  8,  8   )     int  ->  x19         single-def
-;  V05 loc0         [V05,T05] (  6,  8   )     int  ->  x23        
-;  V06 loc1         [V06,T00] ( 14, 14.70)     int  ->  x24        
+;  V05 loc0         [V05,T04] (  6,  8   )     int  ->  x23        
+;  V06 loc1         [V06,T00] ( 15, 17.67)     int  ->  x24        
 ;* V07 loc2         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T07] (  6,  6   )     int  ->   x2        
-;  V10 tmp2         [V10,T08] (  5,  6   )     int  ->  x25         "guarded devirt return temp"
+;  V09 tmp1         [V09,T06] (  6,  6   )     int  ->   x2        
+;  V10 tmp2         [V10,T07] (  5,  6   )     int  ->  x25         "guarded devirt return temp"
 ;  V11 tmp3         [V11,T01] (  5, 12   )     int  ->   x1         "guarded devirt arg temp"
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Runtime_71611+Add>
-;  V13 cse0         [V13,T03] (  3,  8.91)    long  ->   x1         "CSE - aggressive"
-;  V14 cse1         [V14,T11] (  4,  3.70)   byref  ->   x0         hoist multi-def "CSE - aggressive"
+;  V13 cse0         [V13,T10] (  4,  3.70)   byref  ->   x0         hoist multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -79,16 +78,15 @@ G_M39013_IG06:        ; bbWeight=2.97, gcrefRegs=100000 {x20}, byrefRegs=0001 {x
             ; gcrRegs -[x21-x22]
             add     x2, x20, #16
             ; byrRegs +[x2]
-            ubfiz   x1, x24, #2, #32
-            ldr     w2, [x2, x1]
+            ldr     w2, [x2, w24, UXTW #2]
             ; byrRegs -[x2]
-            ldr     w1, [x0, x1]
+            ldr     w1, [x0, w24, UXTW #2]
             add     w25, w1, w2
             add     w23, w23, w25
             add     w24, w24, #1
             cmp     w24, w19
             blt     G_M39013_IG06
-                       ;; size=36 bbWeight=2.97 PerfScore 31.18
+                       ;; size=32 bbWeight=2.97 PerfScore 28.21
 G_M39013_IG07:        ; bbWeight=0.67, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x20]
             ; byrRegs -[x0]
@@ -164,7 +162,7 @@ G_M39013_IG16:        ; bbWeight=0, gcrefRegs=700000 {x20 x21 x22}, byrefRegs=00
             b       G_M39013_IG09
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 332, prolog size 40, PerfScore 63.30, instruction count 83, allocated bytes for code 332 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
+Total bytes of code 328, prolog size 40, PerfScore 60.33, instruction count 82, allocated bytes for code 328 (MethodHash=4dcd679a) for method Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -175,7 +173,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 83 (0x00053) Actual length = 332 (0x00014c)
+  Function Length   : 82 (0x00052) Actual length = 328 (0x000148)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+1.68%) : 249011.dasm - NumericSortRect:Run():double:this (Tier1)

@@ -12,35 +12,34 @@
 ;  V00 this         [V00,T00] ( 16,132.25)     ref  ->  x19         this class-hnd single-def <NumericSortRect>
 ;  V01 loc0         [V01,T08] (  4, 55   )     ref  ->  registers   class-hnd <int[,]>
 ;  V02 loc1         [V02,T09] (  5, 53   )    long  ->  x21        
-;  V03 loc2         [V03,T15] (  4, 36   )  double  ->   d8        
+;  V03 loc2         [V03,T14] (  4, 36   )  double  ->   d8        
 ;  V04 loc3         [V04,T05] (  3, 55.50)   short  ->   x0        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  6, 58.50)  struct ( 8) [fp+0x10]  do-not-enreg[XSF] must-init addr-exposed "NewObjArrayArgs"
-;  V07 tmp2         [V07,T12] (  2,  4   )     int  ->   x2         "impImportNewObjArray"
-;  V08 tmp3         [V08,T13] (  2,  4   )     int  ->   x0         "impImportNewObjArray"
+;  V06 tmp1         [V06    ] (  6, 58.50)  struct ( 8) [fp+0x18]  do-not-enreg[XSF] must-init addr-exposed "NewObjArrayArgs"
+;  V07 tmp2         [V07,T11] (  2,  4   )     int  ->   x2         "impImportNewObjArray"
+;  V08 tmp3         [V08,T12] (  2,  4   )     int  ->   x0         "impImportNewObjArray"
 ;* V09 tmp4         [V09    ] (  0,  0   )  double  ->  zero-ref    "impAppendStmt"
 ;  V10 tmp5         [V10,T02] (  2, 74   )     int  ->   x2         "impImportNewObjArray"
 ;  V11 tmp6         [V11,T03] (  2, 74   )     int  ->   x0         "impImportNewObjArray"
-;  V12 tmp7         [V12,T16] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V13 tmp8         [V13,T14] (  2,  4   )    long  ->   x2         "argument with side effect"
+;  V12 tmp7         [V12,T15] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V13 tmp8         [V13,T13] (  2,  4   )    long  ->   x2         "argument with side effect"
 ;  V14 tmp9         [V14,T04] (  2, 74   )    long  ->   x2         "argument with side effect"
-;  V15 tmp10        [V15,T17] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V16 cse0         [V16,T06] (  3, 55.50)     int  ->  x22         "CSE - aggressive"
-;  V17 cse1         [V17,T07] (  3, 55.50)     int  ->  x23         "CSE - aggressive"
-;  V18 cse2         [V18,T11] (  3, 18.50)    long  ->  x21         hoist "CSE - aggressive"
-;  V19 cse3         [V19,T10] (  4, 20.50)    long  ->  x20         hoist multi-def "CSE - aggressive"
-;  V20 rat0         [V20,T01] (  3,102   )    long  ->   x2         "ReplaceWithLclVar is creating a new local variable"
+;  V15 tmp10        [V15,T16] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V16 cse0         [V16,T06] (  3, 55.50)     int  ->  x21         "CSE - aggressive"
+;  V17 cse1         [V17,T07] (  3, 55.50)     int  ->  x22         "CSE - aggressive"
+;  V18 cse2         [V18,T10] (  4, 20.50)    long  ->  x20         hoist multi-def "CSE - aggressive"
+;  V19 rat0         [V19,T01] (  3,102   )    long  ->   x2         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M15242_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x50]!
-            str     d8, [sp, #0x18]
-            stp     x19, x20, [sp, #0x20]
-            stp     x21, x22, [sp, #0x30]
-            stp     x23, x24, [sp, #0x40]
+            str     d8, [sp, #0x20]
+            stp     x19, x20, [sp, #0x28]
+            stp     x21, x22, [sp, #0x38]
+            str     x23, [sp, #0x48]
             mov     fp, sp
-            str     xzr, [fp, #0x10]   // [V06 tmp1]
+            str     xzr, [fp, #0x18]   // [V06 tmp1]
             mov     x19, x0
             ; gcrRegs +[x19]
                        ;; size=32 bbWeight=1 PerfScore 7.00
@@ -49,8 +48,8 @@ G_M15242_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             cbz     w2, G_M15242_IG11
             ldrsh   w2, [x19, #0x20]
             ldr     w0, [x19, #0x1C]
-            stp     w2, w0, [fp, #0x10]    // [V06 tmp1], [V06 tmp1+0x04]
-            add     x2, fp, #16    // [V06 tmp1]
+            stp     w2, w0, [fp, #0x18]    // [V06 tmp1], [V06 tmp1+0x04]
+            add     x2, fp, #24    // [V06 tmp1]
             movz    x20, #0xD1FFAB1E
             movk    x20, #0xD1FFAB1E LSL #16
             movk    x20, #1 LSL #32
@@ -106,29 +105,29 @@ G_M15242_IG06:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             fdiv    d0, d0, d16
                        ;; size=28 bbWeight=1 PerfScore 44.00
 G_M15242_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x40]
-            ldp     x21, x22, [sp, #0x30]
-            ldp     x19, x20, [sp, #0x20]
-            ldr     d8, [sp, #0x18]
+            ldr     x23, [sp, #0x48]
+            ldp     x21, x22, [sp, #0x38]
+            ldp     x19, x20, [sp, #0x28]
+            ldr     d8, [sp, #0x20]
             ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=24 bbWeight=1 PerfScore 7.00
+                       ;; size=24 bbWeight=1 PerfScore 8.00
 G_M15242_IG08:        ; bbWeight=18.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldrsh   w22, [x19, #0x20]
-            sxtw    w2, w22
-            ldr     w23, [x19, #0x1C]
-            sxtw    w0, w23
-            stp     w2, w0, [fp, #0x10]    // [V06 tmp1], [V06 tmp1+0x04]
-            add     x2, fp, #16    // [V06 tmp1]
+            ldrsh   w21, [x19, #0x20]
+            sxtw    w2, w21
+            ldr     w22, [x19, #0x1C]
+            sxtw    w0, w22
+            stp     w2, w0, [fp, #0x18]    // [V06 tmp1], [V06 tmp1+0x04]
+            add     x2, fp, #24    // [V06 tmp1]
             mov     x0, x20
             mov     w1, #2
             bl      CORINFO_HELP_NEW_MDARR
             ; gcrRegs +[x0]
-            mov     x24, x0
-            ; gcrRegs +[x24]
-            mov     w2, w22
-            mov     w1, w23
-            mov     x0, x24
+            mov     x23, x0
+            ; gcrRegs +[x23]
+            mov     w2, w21
+            mov     w1, w22
+            mov     x0, x23
             movz    x3, #0xD1FFAB1E      // code for NumericSortRect:DoNumSortIteration(int[,],int,int):int
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
@@ -136,7 +135,10 @@ G_M15242_IG08:        ; bbWeight=18.50, gcVars=0000000000000000 {}, gcrefRegs=80
             blr     x3
             ; gcrRegs -[x0]
             sxtw    x0, w0
-            ldr     x1, [x21, #0xD1FFAB1E]
+            movz    x1, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #1 LSL #32
+            ldr     x1, [x1]
             cmp     x0, x1
             bgt     G_M15242_IG09
             ldrsh   w0, [x19, #0x20]
@@ -145,14 +147,14 @@ G_M15242_IG08:        ; bbWeight=18.50, gcVars=0000000000000000 {}, gcrefRegs=80
             cmp     w0, #0xD1FFAB1E
             bgt     G_M15242_IG12
             b       G_M15242_IG08
-                       ;; size=112 bbWeight=18.50 PerfScore 555.00
-G_M15242_IG09:        ; bbWeight=9.25, gcrefRegs=1080000 {x19 x24}, byrefRegs=0000 {}, byref
-            mov     x20, x24
+                       ;; size=124 bbWeight=18.50 PerfScore 582.75
+G_M15242_IG09:        ; bbWeight=9.25, gcrefRegs=880000 {x19 x23}, byrefRegs=0000 {}, byref
+            mov     x20, x23
             ; gcrRegs +[x20]
             b       G_M15242_IG03
                        ;; size=8 bbWeight=9.25 PerfScore 13.88
 G_M15242_IG10:        ; bbWeight=0.25, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x20 x24]
+            ; gcrRegs -[x20 x23]
             mov     w2, #1
             str     w2, [x19, #0x10]
             b       G_M15242_IG06
@@ -163,11 +165,8 @@ G_M15242_IG11:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             movz    x20, #0xD1FFAB1E
             movk    x20, #0xD1FFAB1E LSL #16
             movk    x20, #1 LSL #32
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #1 LSL #32
             b       G_M15242_IG08
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=24 bbWeight=0 PerfScore 0.00
 G_M15242_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             movz    x0, #0xD1FFAB1E
@@ -179,7 +178,9 @@ G_M15242_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19]
             mov     w0, #0xD1FFAB1E
             ; gcrRegs -[x0]
-            mov     x1, x21
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #1 LSL #32
             bl      CORINFO_HELP_STRCNS
             ; gcrRegs +[x0]
             mov     x1, x0
@@ -196,11 +197,11 @@ G_M15242_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      CORINFO_HELP_THROW
             ; gcrRegs -[x0 x19]
             brk_unix #0
-                       ;; size=72 bbWeight=0 PerfScore 0.00
+                       ;; size=80 bbWeight=0 PerfScore 0.00
 RWD00      dq  408F400000000000h   ;         1000
 
 
-; Total bytes of code 476, prolog size 28, PerfScore 1158.00, instruction count 119, allocated bytes for code 476 (MethodHash=6a49c475) for method NumericSortRect:Run():double:this (Tier1)
+Total bytes of code 484, prolog size 28, PerfScore 1186.75, instruction count 121, allocated bytes for code 484 (MethodHash=6a49c475) for method NumericSortRect:Run():double:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -211,7 +212,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 119 (0x00077) Actual length = 476 (0x0001dc)
+  Function Length   : 121 (0x00079) Actual length = 484 (0x0001e4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -219,13 +220,12 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D1 09       save_reg X#4 Z#9 (0x09); str x23, [sp, #72]
     E6          save_next
-    E6          save_next
-    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
-    DC 03       save_freg X#0 Z#3 (0x03); str d8, [sp, #24]
+    C8 05       save_regp X#0 Z#5 (0x05); stp x19, x20, [sp, #40]
+    DC 04       save_freg X#0 Z#4 (0x04); str d8, [sp, #32]
     89          save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
     E4          end
     E4          end
     E4          end
-    E4          end
 

+32 (+2.02%) : 488213.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  x24        
 ;  V10 loc7         [V10,T07] (  3, 12   )     ref  ->   x2         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T25] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T26] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T27] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V20 tmp9         [V20,T31] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T32] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T28] (  3,  0   )     int  ->  x23         "Inlining Arg"
-;  V31 tmp20        [V31,T33] (  2,  0   )   byref  ->  x22         "Inlining Arg"
+;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  x23         "Inlining Arg"
+;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  x22         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T34] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T23] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T29] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V44 tmp33        [V44,T35] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T36] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T24] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T30] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V55 tmp44        [V55,T37] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T38] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  x21         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T05] (  4, 12   )     int  ->  x25         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.46)     ref  ->  x19         class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T08] (  3, 12   )     ref  ->   x2         "arr expr"
-;  V98 tmp87        [V98,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V99 tmp88        [V99,T40] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V100 cse0        [V100,T18] (  3,  3   )     ref  ->   x0         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  4,  9   )   byref  ->  x23         hoist multi-def "CSE - aggressive"
 ;  V102 cse2        [V102,T09] (  6, 10   )     int  ->  x22         multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T20] ( 12,  0   )     ref  ->   x1         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -409,19 +408,19 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG30
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG31
@@ -472,19 +471,19 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w23, w1, w0
             tbz     w23, #31, G_M45430_IG33
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=104 bbWeight=0 PerfScore 0.00
+                       ;; size=112 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
             cbz     w23, G_M45430_IG34
             movz    x0, #0xD1FFAB1E
@@ -580,19 +579,19 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG38
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG39
@@ -654,19 +653,19 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M45430_IG43
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M45430_IG44
             movz    x0, #0xD1FFAB1E
@@ -728,7 +727,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1588, prolog size 48, PerfScore 291.15, instruction count 397, allocated bytes for code 1588 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1620, prolog size 48, PerfScore 291.15, instruction count 405, allocated bytes for code 1620 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -739,7 +738,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 397 (0x0018d) Actual length = 1588 (0x000634)
+  Function Length   : 405 (0x00195) Actual length = 1620 (0x000654)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+4.26%) : 300284.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)

@@ -29,22 +29,21 @@
 ;* V18 tmp16        [V18    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp17        [V19    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp18        [V20    ] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V21 tmp19        [V21,T11] (  3,   0   )   ubyte  ->   x1         "Inline return value spill temp"
+;  V21 tmp19        [V21,T10] (  3,   0   )   ubyte  ->   x1         "Inline return value spill temp"
 ;  V22 tmp20        [V22,T04] (  9,  76.80)     int  ->  x20         "Inline stloc first use temp"
 ;  V23 tmp21        [V23    ] (  2,  76.80)   simd8  ->  [fp+0x18]  HFA(simd8)  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
 ;  V24 tmp22        [V24    ] (  2,  76.80)   simd8  ->  [fp+0x10]  HFA(simd8)  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-;  V25 tmp23        [V25,T14] (  2,   0   )   float  ->   d8         "impAppendStmt"
-;  V26 tmp24        [V26,T12] (  3,   0   )     int  ->   x0        
+;  V25 tmp23        [V25,T13] (  2,   0   )   float  ->   d8         "impAppendStmt"
+;  V26 tmp24        [V26,T11] (  3,   0   )     int  ->   x0        
 ;* V27 tmp25        [V27    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp26        [V28    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp27        [V29    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp28        [V30    ] (  0,   0   )   float  ->  zero-ref    "Inline return value spill temp"
-;  V31 tmp29        [V31,T13] (  3,   0   )     int  ->   x0        
+;  V31 tmp29        [V31,T12] (  3,   0   )     int  ->   x0        
 ;* V32 tmp30        [V32    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V33 tmp31        [V33    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp32        [V34    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp33        [V35    ] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V36 cse0         [V36,T10] (  6,   0   )     ref  ->   x1         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 72
 
@@ -112,19 +111,19 @@ G_M21877_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M21877_IG06:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             tst     w0, #255
             bne     G_M21877_IG07
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
+                       ;; size=52 bbWeight=0 PerfScore 0.00
 G_M21877_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     x0, fp, #24    // [V23 tmp21]
             ; byrRegs +[x0]
@@ -140,19 +139,19 @@ G_M21877_IG08:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M21877_IG09:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             tst     w0, #255
             bne     G_M21877_IG10
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
+                       ;; size=52 bbWeight=0 PerfScore 0.00
 G_M21877_IG10:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     x0, fp, #16    // [V24 tmp22]
             ; byrRegs +[x0]
@@ -195,7 +194,7 @@ G_M21877_IG16:        ; bbWeight=0, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 376, prolog size 20, PerfScore 29793.45, instruction count 94, allocated bytes for code 376 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 392, prolog size 20, PerfScore 29793.45, instruction count 98, allocated bytes for code 392 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -206,7 +205,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 94 (0x0005e) Actual length = 376 (0x000178)
+  Function Length   : 98 (0x00062) Actual length = 392 (0x000188)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.osx.arm64.checked.mch

+16 (+1.70%) : 308181.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)

@@ -10,13 +10,13 @@
 ;
 ;  V00 arg0         [V00,T01] ( 10,  5   )     ref  ->  x19         class-hnd single-def <System.String>
 ;  V01 loc0         [V01,T02] (  4,  2   )     int  ->   x0        
-;  V02 loc1         [V02,T11] (  4,  0   )  ushort  ->  x20         ld-addr-op
+;  V02 loc1         [V02,T10] (  4,  0   )  ushort  ->  x20         ld-addr-op
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.String>
 ;  V04 loc3         [V04    ] ( 22,  0   )  struct (40) [fp+0x18]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V07 tmp2         [V07,T14] (  3,  0   )     ref  ->  x20        
-;  V08 tmp3         [V08,T15] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V07 tmp2         [V07,T13] (  3,  0   )     ref  ->  x20        
+;  V08 tmp3         [V08,T14] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
@@ -26,37 +26,37 @@
 ;* V15 tmp10        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V16 tmp11        [V16,T00] (  4,  8   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V18 tmp13        [V18,T21] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <<unknown class>>
-;  V19 tmp14        [V19,T10] (  5,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <ushort[]>
+;  V18 tmp13        [V18,T20] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <<unknown class>>
+;  V19 tmp14        [V19,T09] (  5,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <ushort[]>
 ;* V20 tmp15        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V21 tmp16        [V21,T32] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V21 tmp16        [V21,T31] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp18        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V24 tmp19        [V24    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V25 tmp20        [V25,T12] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V25 tmp20        [V25,T11] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V27 tmp22        [V27,T18] (  3,  0   )     int  ->  x22         "Inlining Arg"
-;  V28 tmp23        [V28,T22] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
+;  V27 tmp22        [V27,T17] (  3,  0   )     int  ->  x22         "Inlining Arg"
+;  V28 tmp23        [V28,T21] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
 ;* V29 tmp24        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp25        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V31 tmp26        [V31,T30] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V31 tmp26        [V31,T29] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V32 tmp27        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V34 tmp29        [V34,T23] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
+;  V34 tmp29        [V34,T22] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
 ;* V35 tmp30        [V35    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V36 tmp31        [V36,T13] (  4,  0   )     int  ->  x20         "Inlining Arg"
+;  V36 tmp31        [V36,T12] (  4,  0   )     int  ->  x20         "Inlining Arg"
 ;* V37 tmp32        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V38 tmp33        [V38,T19] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V39 tmp34        [V39,T24] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
+;  V38 tmp33        [V38,T18] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V39 tmp34        [V39,T23] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
 ;* V40 tmp35        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp36        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V42 tmp37        [V42,T31] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V42 tmp37        [V42,T30] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V43 tmp38        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V44 tmp39        [V44    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V45 tmp40        [V45,T25] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
+;  V45 tmp40        [V45,T24] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
 ;* V46 tmp41        [V46    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp42        [V47    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.String>
-;  V48 tmp43        [V48,T16] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "Inline stloc first use temp" <System.String>
+;  V48 tmp43        [V48,T15] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V49 tmp44        [V49    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V50 tmp45        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp46        [V51,T03] (  3,  2   )   byref  ->  x20         "field V09._reference (fldOffset=0x0)" P-INDEP
@@ -65,8 +65,8 @@
 ;  V54 tmp49        [V54,T08] (  2,  1   )     int  ->  x21         "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V55 tmp50        [V55    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V56 tmp51        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
-;  V57 tmp52        [V57,T17] (  3,  0   )   byref  ->   x1         "field V23._reference (fldOffset=0x0)" P-INDEP
-;  V58 tmp53        [V58,T20] (  3,  0   )     int  ->   x2         "field V23._length (fldOffset=0x8)" P-INDEP
+;  V57 tmp52        [V57,T16] (  3,  0   )   byref  ->   x1         "field V23._reference (fldOffset=0x0)" P-INDEP
+;  V58 tmp53        [V58,T19] (  3,  0   )     int  ->   x2         "field V23._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp54        [V59    ] (  0,  0   )   byref  ->  zero-ref    "field V24._reference (fldOffset=0x0)" P-INDEP
 ;* V60 tmp55        [V60    ] (  0,  0   )     int  ->  zero-ref    "field V24._length (fldOffset=0x8)" P-INDEP
 ;* V61 tmp56        [V61    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V26._reference (fldOffset=0x0)" P-INDEP
@@ -79,11 +79,10 @@
 ;* V68 tmp63        [V68    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V69 tmp64        [V69    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V70 tmp65        [V70    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
-;  V71 tmp66        [V71,T26] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V72 tmp67        [V72,T27] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V73 tmp68        [V73,T28] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
-;  V74 tmp69        [V74,T29] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V75 cse0         [V75,T09] (  6,  0   )     ref  ->   x1         multi-def "CSE - moderate"
+;  V71 tmp66        [V71,T25] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V72 tmp67        [V72,T26] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V73 tmp68        [V73,T27] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
+;  V74 tmp69        [V74,T28] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
@@ -255,18 +254,18 @@ G_M11178_IG14:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
             ; byrRegs -[x1]
             sub     w22, w1, w0
             tbz     w22, #31, G_M11178_IG15
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
-                       ;; size=92 bbWeight=0 PerfScore 0.00
+                       ;; size=100 bbWeight=0 PerfScore 0.00
 G_M11178_IG15:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
             cbz     w22, G_M11178_IG16
             movz    x0, #0xD1FFAB1E
@@ -324,18 +323,18 @@ G_M11178_IG19:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; byrRegs -[x0]
             sub     w20, w0, w20
             tbz     w20, #31, G_M11178_IG20
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M11178_IG20:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
             cbz     w20, G_M11178_IG21
             movz    x0, #0xD1FFAB1E
@@ -434,7 +433,7 @@ G_M11178_IG24:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             brk_unix #0
                        ;; size=136 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 940, prolog size 32, PerfScore 44.75, instruction count 235, allocated bytes for code 940 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
+Total bytes of code 956, prolog size 32, PerfScore 44.75, instruction count 239, allocated bytes for code 956 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -445,7 +444,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 235 (0x000eb) Actual length = 940 (0x0003ac)
+  Function Length   : 239 (0x000ef) Actual length = 956 (0x0003bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+1.70%) : 301015.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)

@@ -10,13 +10,13 @@
 ;
 ;  V00 arg0         [V00,T01] ( 10,  5   )     ref  ->  x19         class-hnd single-def <System.String>
 ;  V01 loc0         [V01,T02] (  4,  2   )     int  ->   x0        
-;  V02 loc1         [V02,T11] (  4,  0   )  ushort  ->  x20         ld-addr-op
+;  V02 loc1         [V02,T10] (  4,  0   )  ushort  ->  x20         ld-addr-op
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.String>
 ;  V04 loc3         [V04    ] ( 22,  0   )  struct (40) [fp+0x18]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V07 tmp2         [V07,T14] (  3,  0   )     ref  ->  x20        
-;  V08 tmp3         [V08,T15] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V07 tmp2         [V07,T13] (  3,  0   )     ref  ->  x20        
+;  V08 tmp3         [V08,T14] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
@@ -26,37 +26,37 @@
 ;* V15 tmp10        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V16 tmp11        [V16,T00] (  4,  8   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V18 tmp13        [V18,T21] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <<unknown class>>
-;  V19 tmp14        [V19,T10] (  5,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <ushort[]>
+;  V18 tmp13        [V18,T20] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <<unknown class>>
+;  V19 tmp14        [V19,T09] (  5,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <ushort[]>
 ;* V20 tmp15        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V21 tmp16        [V21,T32] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V21 tmp16        [V21,T31] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp18        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V24 tmp19        [V24    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V25 tmp20        [V25,T12] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V25 tmp20        [V25,T11] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V27 tmp22        [V27,T18] (  3,  0   )     int  ->  x22         "Inlining Arg"
-;  V28 tmp23        [V28,T22] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
+;  V27 tmp22        [V27,T17] (  3,  0   )     int  ->  x22         "Inlining Arg"
+;  V28 tmp23        [V28,T21] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
 ;* V29 tmp24        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp25        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V31 tmp26        [V31,T30] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V31 tmp26        [V31,T29] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V32 tmp27        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V34 tmp29        [V34,T23] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
+;  V34 tmp29        [V34,T22] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
 ;* V35 tmp30        [V35    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V36 tmp31        [V36,T13] (  4,  0   )     int  ->  x20         "Inlining Arg"
+;  V36 tmp31        [V36,T12] (  4,  0   )     int  ->  x20         "Inlining Arg"
 ;* V37 tmp32        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V38 tmp33        [V38,T19] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V39 tmp34        [V39,T24] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
+;  V38 tmp33        [V38,T18] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V39 tmp34        [V39,T23] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
 ;* V40 tmp35        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp36        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V42 tmp37        [V42,T31] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V42 tmp37        [V42,T30] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V43 tmp38        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V44 tmp39        [V44    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V45 tmp40        [V45,T25] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
+;  V45 tmp40        [V45,T24] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
 ;* V46 tmp41        [V46    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp42        [V47    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.String>
-;  V48 tmp43        [V48,T16] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "Inline stloc first use temp" <System.String>
+;  V48 tmp43        [V48,T15] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V49 tmp44        [V49    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V50 tmp45        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp46        [V51,T03] (  3,  2   )   byref  ->  x20         "field V09._reference (fldOffset=0x0)" P-INDEP
@@ -65,8 +65,8 @@
 ;  V54 tmp49        [V54,T08] (  2,  1   )     int  ->  x21         "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V55 tmp50        [V55    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V56 tmp51        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
-;  V57 tmp52        [V57,T17] (  3,  0   )   byref  ->   x1         "field V23._reference (fldOffset=0x0)" P-INDEP
-;  V58 tmp53        [V58,T20] (  3,  0   )     int  ->   x2         "field V23._length (fldOffset=0x8)" P-INDEP
+;  V57 tmp52        [V57,T16] (  3,  0   )   byref  ->   x1         "field V23._reference (fldOffset=0x0)" P-INDEP
+;  V58 tmp53        [V58,T19] (  3,  0   )     int  ->   x2         "field V23._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp54        [V59    ] (  0,  0   )   byref  ->  zero-ref    "field V24._reference (fldOffset=0x0)" P-INDEP
 ;* V60 tmp55        [V60    ] (  0,  0   )     int  ->  zero-ref    "field V24._length (fldOffset=0x8)" P-INDEP
 ;* V61 tmp56        [V61    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V26._reference (fldOffset=0x0)" P-INDEP
@@ -79,11 +79,10 @@
 ;* V68 tmp63        [V68    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V69 tmp64        [V69    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V70 tmp65        [V70    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
-;  V71 tmp66        [V71,T26] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V72 tmp67        [V72,T27] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V73 tmp68        [V73,T28] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
-;  V74 tmp69        [V74,T29] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V75 cse0         [V75,T09] (  6,  0   )     ref  ->   x1         multi-def "CSE - moderate"
+;  V71 tmp66        [V71,T25] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V72 tmp67        [V72,T26] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V73 tmp68        [V73,T27] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
+;  V74 tmp69        [V74,T28] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
@@ -255,18 +254,18 @@ G_M11178_IG14:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
             ; byrRegs -[x1]
             sub     w22, w1, w0
             tbz     w22, #31, G_M11178_IG15
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
-                       ;; size=92 bbWeight=0 PerfScore 0.00
+                       ;; size=100 bbWeight=0 PerfScore 0.00
 G_M11178_IG15:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
             cbz     w22, G_M11178_IG16
             movz    x0, #0xD1FFAB1E
@@ -324,18 +323,18 @@ G_M11178_IG19:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; byrRegs -[x0]
             sub     w20, w0, w20
             tbz     w20, #31, G_M11178_IG20
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M11178_IG20:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
             cbz     w20, G_M11178_IG21
             movz    x0, #0xD1FFAB1E
@@ -434,7 +433,7 @@ G_M11178_IG24:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             brk_unix #0
                        ;; size=136 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 940, prolog size 32, PerfScore 44.75, instruction count 235, allocated bytes for code 940 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
+Total bytes of code 956, prolog size 32, PerfScore 44.75, instruction count 239, allocated bytes for code 956 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -445,7 +444,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 235 (0x000eb) Actual length = 940 (0x0003ac)
+  Function Length   : 239 (0x000ef) Actual length = 956 (0x0003bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+1.70%) : 309763.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)

@@ -10,13 +10,13 @@
 ;
 ;  V00 arg0         [V00,T01] ( 10,  5   )     ref  ->  x19         class-hnd single-def <System.String>
 ;  V01 loc0         [V01,T02] (  4,  2   )     int  ->   x0        
-;  V02 loc1         [V02,T11] (  4,  0   )  ushort  ->  x20         ld-addr-op
+;  V02 loc1         [V02,T10] (  4,  0   )  ushort  ->  x20         ld-addr-op
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.String>
 ;  V04 loc3         [V04    ] ( 22,  0   )  struct (40) [fp+0x18]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V07 tmp2         [V07,T14] (  3,  0   )     ref  ->  x20        
-;  V08 tmp3         [V08,T15] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V07 tmp2         [V07,T13] (  3,  0   )     ref  ->  x20        
+;  V08 tmp3         [V08,T14] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
@@ -26,37 +26,37 @@
 ;* V15 tmp10        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V16 tmp11        [V16,T00] (  4,  8   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Buffers.SearchValues`1[ushort]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V18 tmp13        [V18,T21] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <<unknown class>>
-;  V19 tmp14        [V19,T10] (  5,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <ushort[]>
+;  V18 tmp13        [V18,T20] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <<unknown class>>
+;  V19 tmp14        [V19,T09] (  5,  0   )     ref  ->   x0         class-hnd single-def "dup spill" <ushort[]>
 ;* V20 tmp15        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V21 tmp16        [V21,T32] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V21 tmp16        [V21,T31] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp17        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp18        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V24 tmp19        [V24    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V25 tmp20        [V25,T12] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V25 tmp20        [V25,T11] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V27 tmp22        [V27,T18] (  3,  0   )     int  ->  x22         "Inlining Arg"
-;  V28 tmp23        [V28,T22] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
+;  V27 tmp22        [V27,T17] (  3,  0   )     int  ->  x22         "Inlining Arg"
+;  V28 tmp23        [V28,T21] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
 ;* V29 tmp24        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp25        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V31 tmp26        [V31,T30] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V31 tmp26        [V31,T29] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V32 tmp27        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V33 tmp28        [V33    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V34 tmp29        [V34,T23] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
+;  V34 tmp29        [V34,T22] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
 ;* V35 tmp30        [V35    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V36 tmp31        [V36,T13] (  4,  0   )     int  ->  x20         "Inlining Arg"
+;  V36 tmp31        [V36,T12] (  4,  0   )     int  ->  x20         "Inlining Arg"
 ;* V37 tmp32        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V38 tmp33        [V38,T19] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V39 tmp34        [V39,T24] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
+;  V38 tmp33        [V38,T18] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V39 tmp34        [V39,T23] (  2,  0   )   byref  ->  x21         single-def "Inlining Arg"
 ;* V40 tmp35        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp36        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V42 tmp37        [V42,T31] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V42 tmp37        [V42,T30] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V43 tmp38        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V44 tmp39        [V44    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V45 tmp40        [V45,T25] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
+;  V45 tmp40        [V45,T24] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
 ;* V46 tmp41        [V46    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp42        [V47    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.String>
-;  V48 tmp43        [V48,T16] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "Inline stloc first use temp" <System.String>
+;  V48 tmp43        [V48,T15] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V49 tmp44        [V49    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V50 tmp45        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;  V51 tmp46        [V51,T03] (  3,  2   )   byref  ->  x20         "field V09._reference (fldOffset=0x0)" P-INDEP
@@ -65,8 +65,8 @@
 ;  V54 tmp49        [V54,T08] (  2,  1   )     int  ->  x21         "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V55 tmp50        [V55    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V56 tmp51        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
-;  V57 tmp52        [V57,T17] (  3,  0   )   byref  ->   x1         "field V23._reference (fldOffset=0x0)" P-INDEP
-;  V58 tmp53        [V58,T20] (  3,  0   )     int  ->   x2         "field V23._length (fldOffset=0x8)" P-INDEP
+;  V57 tmp52        [V57,T16] (  3,  0   )   byref  ->   x1         "field V23._reference (fldOffset=0x0)" P-INDEP
+;  V58 tmp53        [V58,T19] (  3,  0   )     int  ->   x2         "field V23._length (fldOffset=0x8)" P-INDEP
 ;* V59 tmp54        [V59    ] (  0,  0   )   byref  ->  zero-ref    "field V24._reference (fldOffset=0x0)" P-INDEP
 ;* V60 tmp55        [V60    ] (  0,  0   )     int  ->  zero-ref    "field V24._length (fldOffset=0x8)" P-INDEP
 ;* V61 tmp56        [V61    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V26._reference (fldOffset=0x0)" P-INDEP
@@ -79,11 +79,10 @@
 ;* V68 tmp63        [V68    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V69 tmp64        [V69    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V70 tmp65        [V70    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
-;  V71 tmp66        [V71,T26] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V72 tmp67        [V72,T27] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V73 tmp68        [V73,T28] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
-;  V74 tmp69        [V74,T29] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V75 cse0         [V75,T09] (  6,  0   )     ref  ->   x1         multi-def "CSE - moderate"
+;  V71 tmp66        [V71,T25] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V72 tmp67        [V72,T26] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V73 tmp68        [V73,T27] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
+;  V74 tmp69        [V74,T28] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
@@ -255,18 +254,18 @@ G_M11178_IG14:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1},
             ; byrRegs -[x1]
             sub     w22, w1, w0
             tbz     w22, #31, G_M11178_IG15
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
-                       ;; size=92 bbWeight=0 PerfScore 0.00
+                       ;; size=100 bbWeight=0 PerfScore 0.00
 G_M11178_IG15:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
             cbz     w22, G_M11178_IG16
             movz    x0, #0xD1FFAB1E
@@ -324,18 +323,18 @@ G_M11178_IG19:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; byrRegs -[x0]
             sub     w20, w0, w20
             tbz     w20, #31, G_M11178_IG20
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M11178_IG20:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
             cbz     w20, G_M11178_IG21
             movz    x0, #0xD1FFAB1E
@@ -434,7 +433,7 @@ G_M11178_IG24:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             brk_unix #0
                        ;; size=136 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 940, prolog size 32, PerfScore 44.75, instruction count 235, allocated bytes for code 940 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
+Total bytes of code 956, prolog size 32, PerfScore 44.75, instruction count 239, allocated bytes for code 956 (MethodHash=0a78d455) for method System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -445,7 +444,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 235 (0x000eb) Actual length = 940 (0x0003ac)
+  Function Length   : 239 (0x000ef) Actual length = 956 (0x0003bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+1.89%) : 204429.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)

@@ -20,8 +20,8 @@
 ;  V09 loc6         [V09,T02] (  7, 17   )     int  ->  x24        
 ;  V10 loc7         [V10,T03] (  6, 16   )     ref  ->  x19         class-hnd exact <System.String>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T29] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T30] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T28] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T29] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;  V15 tmp4         [V15,T22] (  3,  2   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V16 tmp5         [V16,T20] (  2,  3   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
@@ -33,51 +33,51 @@
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp12        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V25 tmp14        [V25,T25] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V25 tmp14        [V25,T24] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V26 tmp15        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V27 tmp16        [V27,T31] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V28 tmp17        [V28,T35] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V27 tmp16        [V27,T30] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V28 tmp17        [V28,T34] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp19        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V31 tmp20        [V31,T45] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V31 tmp20        [V31,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V32 tmp21        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V33 tmp22        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V34 tmp23        [V34,T36] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V34 tmp23        [V34,T35] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V36 tmp25        [V36,T26] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V36 tmp25        [V36,T25] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V37 tmp26        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V38 tmp27        [V38,T32] (  3,  0   )     int  ->  x23         "Inlining Arg"
-;  V39 tmp28        [V39,T37] (  2,  0   )   byref  ->  x22         "Inlining Arg"
+;  V38 tmp27        [V38,T31] (  3,  0   )     int  ->  x23         "Inlining Arg"
+;  V39 tmp28        [V39,T36] (  2,  0   )   byref  ->  x22         "Inlining Arg"
 ;* V40 tmp29        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp30        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V42 tmp31        [V42,T46] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V42 tmp31        [V42,T45] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V43 tmp32        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V44 tmp33        [V44    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V45 tmp34        [V45,T38] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V45 tmp34        [V45,T37] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V47 tmp36        [V47    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V49 tmp38        [V49,T27] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V49 tmp38        [V49,T26] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V50 tmp39        [V50    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V51 tmp40        [V51,T33] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V52 tmp41        [V52,T39] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V51 tmp40        [V51,T32] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V52 tmp41        [V52,T38] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp43        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V55 tmp44        [V55,T47] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V55 tmp44        [V55,T46] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V56 tmp45        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V57 tmp46        [V57    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V58 tmp47        [V58,T40] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V58 tmp47        [V58,T39] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V60 tmp49        [V60,T28] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V60 tmp49        [V60,T27] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V61 tmp50        [V61    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V62 tmp51        [V62,T34] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V63 tmp52        [V63,T41] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V62 tmp51        [V62,T33] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V63 tmp52        [V63,T40] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V64 tmp53        [V64    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V65 tmp54        [V65    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V66 tmp55        [V66,T48] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V66 tmp55        [V66,T47] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V67 tmp56        [V67    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V68 tmp57        [V68    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V69 tmp58        [V69,T42] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V69 tmp58        [V69,T41] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V70 tmp59        [V70,T11] (  3,  8   )   ubyte  ->  x21         "Inline return value spill temp"
 ;  V71 tmp60        [V71,T04] (  4, 12   )     int  ->  x25         "Inline stloc first use temp"
 ;  V72 tmp61        [V72,T00] (  5, 20   )     ref  ->   x2         class-hnd exact "Inlining Arg" <System.String>
@@ -113,14 +113,13 @@
 ;* V102 tmp91       [V102    ] (  0,  0   )   byref  ->  zero-ref    "field V67._reference (fldOffset=0x0)" P-INDEP
 ;* V103 tmp92       [V103    ] (  0,  0   )     int  ->  zero-ref    "field V67._length (fldOffset=0x8)" P-INDEP
 ;  V104 tmp93       [V104,T06] (  3, 12   )     ref  ->   x2         "arr expr"
-;  V105 tmp94       [V105,T43] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V106 tmp95       [V106,T44] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V105 tmp94       [V105,T42] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V106 tmp95       [V106,T43] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V107 cse0        [V107,T19] (  3,  3   )     int  ->   x1         "CSE - moderate"
 ;  V108 cse1        [V108,T18] (  3,  3   )     ref  ->   x0         "CSE - moderate"
-;  V109 cse2        [V109,T24] ( 12,  0   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V110 cse3        [V110,T09] (  4,  9   )   byref  ->  x23         hoist multi-def "CSE - aggressive"
-;  V111 cse4        [V111,T08] (  6, 10   )     int  ->  x22         multi-def "CSE - aggressive"
-;  V112 cse5        [V112,T16] (  3,  6   )     int  ->   x1         "CSE - moderate"
+;  V109 cse2        [V109,T09] (  4,  9   )   byref  ->  x23         hoist multi-def "CSE - aggressive"
+;  V110 cse3        [V110,T08] (  6, 10   )     int  ->  x22         multi-def "CSE - aggressive"
+;  V111 cse4        [V111,T16] (  3,  6   )     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -440,19 +439,19 @@ G_M38326_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M38326_IG30
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M38326_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M38326_IG31
@@ -503,19 +502,19 @@ G_M38326_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w23, w1, w0
             tbz     w23, #31, G_M38326_IG33
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=104 bbWeight=0 PerfScore 0.00
+                       ;; size=112 bbWeight=0 PerfScore 0.00
 G_M38326_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
             cbz     w23, G_M38326_IG34
             movz    x0, #0xD1FFAB1E
@@ -611,19 +610,19 @@ G_M38326_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M38326_IG38
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M38326_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M38326_IG39
@@ -685,19 +684,19 @@ G_M38326_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M38326_IG43
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M38326_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M38326_IG44
             movz    x0, #0xD1FFAB1E
@@ -759,7 +758,7 @@ G_M38326_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1692, prolog size 52, PerfScore 289.00, instruction count 423, allocated bytes for code 1692 (MethodHash=a0a76a49) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
+Total bytes of code 1724, prolog size 52, PerfScore 289.00, instruction count 431, allocated bytes for code 1724 (MethodHash=a0a76a49) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -770,7 +769,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 423 (0x001a7) Actual length = 1692 (0x00069c)
+  Function Length   : 431 (0x001af) Actual length = 1724 (0x0006bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+2.02%) : 204430.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  x24        
 ;  V10 loc7         [V10,T07] (  3, 12   )     ref  ->   x2         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T26] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T27] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T25] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T26] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V17 tmp6         [V17,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T28] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V20 tmp9         [V20,T32] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V19 tmp8         [V19,T27] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V20 tmp9         [V20,T31] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T33] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V26 tmp15        [V26,T32] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T23] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V28 tmp17        [V28,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T29] (  3,  0   )     int  ->  x23         "Inlining Arg"
-;  V31 tmp20        [V31,T34] (  2,  0   )   byref  ->  x22         "Inlining Arg"
+;  V30 tmp19        [V30,T28] (  3,  0   )     int  ->  x23         "Inlining Arg"
+;  V31 tmp20        [V31,T33] (  2,  0   )   byref  ->  x22         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T35] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V37 tmp26        [V37,T34] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T24] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V41 tmp30        [V41,T23] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T30] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V44 tmp33        [V44,T36] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V43 tmp32        [V43,T29] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V44 tmp33        [V44,T35] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T37] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V50 tmp39        [V50,T36] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T25] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V52 tmp41        [V52,T24] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T31] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V55 tmp44        [V55,T38] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V54 tmp43        [V54,T30] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V55 tmp44        [V55,T37] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T45] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T39] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V61 tmp50        [V61,T38] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V62 tmp51        [V62,T12] (  3,  8   )   ubyte  ->  x21         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T05] (  4, 12   )     int  ->  x25         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 28   )     ref  ->  x19         class-hnd exact "Inlining Arg" <System.String>
@@ -106,13 +106,12 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T08] (  3, 12   )     ref  ->   x2         "arr expr"
-;  V98 tmp87        [V98,T40] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V99 tmp88        [V99,T41] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V98 tmp87        [V98,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V99 tmp88        [V99,T40] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V100 cse0        [V100,T19] (  3,  3   )     ref  ->   x0         "CSE - moderate"
-;  V101 cse1        [V101,T21] ( 12,  0   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V102 cse2        [V102,T10] (  4,  9   )   byref  ->  x23         hoist multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T09] (  6, 10   )     int  ->  x22         multi-def "CSE - aggressive"
-;  V104 cse4        [V104,T17] (  3,  6   )     int  ->   x1         "CSE - moderate"
+;  V101 cse1        [V101,T10] (  4,  9   )   byref  ->  x23         hoist multi-def "CSE - aggressive"
+;  V102 cse2        [V102,T09] (  6, 10   )     int  ->  x22         multi-def "CSE - aggressive"
+;  V103 cse3        [V103,T17] (  3,  6   )     int  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -393,19 +392,19 @@ G_M45430_IG24:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG25
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG25:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG26
@@ -456,19 +455,19 @@ G_M45430_IG27:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w23, w1, w0
             tbz     w23, #31, G_M45430_IG28
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=104 bbWeight=0 PerfScore 0.00
+                       ;; size=112 bbWeight=0 PerfScore 0.00
 G_M45430_IG28:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
             cbz     w23, G_M45430_IG29
             movz    x0, #0xD1FFAB1E
@@ -564,19 +563,19 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG33
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG34
@@ -638,19 +637,19 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M45430_IG38
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M45430_IG39
             movz    x0, #0xD1FFAB1E
@@ -712,7 +711,7 @@ G_M45430_IG40:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1584, prolog size 48, PerfScore 301.25, instruction count 396, allocated bytes for code 1584 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1616, prolog size 48, PerfScore 301.25, instruction count 404, allocated bytes for code 1616 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -723,7 +722,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 396 (0x0018c) Actual length = 1584 (0x000630)
+  Function Length   : 404 (0x00194) Actual length = 1616 (0x000650)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries_tests.run.osx.arm64.Release.mch

-4 (-1.45%) : 90383.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)

@@ -40,7 +40,6 @@
 ;* V28 tmp26        [V28    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V14.array (fldOffset=0x0)" P-DEP
 ;* V29 tmp27        [V29    ] (  0,  0   )     ref  ->  zero-ref    "field V15.array (fldOffset=0x0)" P-INDEP
 ;* V30 tmp28        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V23.array (fldOffset=0x0)" P-INDEP
-;  V31 cse0         [V31,T10] (  2,  0   )    long  ->   x0         "CSE - conservative"
 ;
 ; Lcl frame size = 0
 
@@ -108,7 +107,6 @@ G_M22152_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
-            add     x0, x0, #0xD1FFAB1E
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             mov     x20, x0
@@ -136,7 +134,7 @@ G_M22152_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             b       G_M22152_IG03
-                       ;; size=100 bbWeight=0 PerfScore 0.00
+                       ;; size=96 bbWeight=0 PerfScore 0.00
 G_M22152_IG08:        ; bbWeight=0, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21] +[x1]
             ldr     x0, [x20, #0x08]
@@ -160,7 +158,7 @@ G_M22152_IG09:        ; bbWeight=0, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}
             b       G_M22152_IG05
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 276, prolog size 16, PerfScore 31.00, instruction count 69, allocated bytes for code 276 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
+Total bytes of code 272, prolog size 16, PerfScore 31.00, instruction count 68, allocated bytes for code 272 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -171,7 +169,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 69 (0x00045) Actual length = 276 (0x000114)
+  Function Length   : 68 (0x00044) Actual length = 272 (0x000110)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-36 (-0.87%) : 351036.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)

@@ -9,14 +9,14 @@
 ; 41 inlinees with PGO data; 77 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T27] ( 21,  6.78)   byref  ->  x19         this single-def
-;  V01 arg1         [V01,T32] ( 12,  5   )     ref  ->  x20         class-hnd single-def <ubyte[]>
-;  V02 loc0         [V02    ] (  9,  6   )  struct (24) [fp+0x68]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Formats.Asn1.AsnValueReader>
-;  V03 loc1         [V03    ] (  5,  0   )  struct (16) [fp+0x58]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
+;  V00 this         [V00,T28] ( 21,  6.78)   byref  ->  x19         this single-def
+;  V01 arg1         [V01,T33] ( 12,  5   )     ref  ->  x20         class-hnd single-def <ubyte[]>
+;  V02 loc0         [V02    ] (  9,  6   )  struct (24) [fp+0x48]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Formats.Asn1.AsnValueReader>
+;  V03 loc1         [V03    ] (  5,  0   )  struct (16) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;* V04 loc2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Formats.Asn1.AsnWriter>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
-;  V06 loc4         [V06,T37] (  3,  4.78)     ref  ->  x21         class-hnd exact single-def <<unknown class>>
-;  V07 loc5         [V07,T10] (  5, 19.10)     int  ->  x22        
+;  V06 loc4         [V06,T22] (  4,  9.55)     ref  ->  x20         class-hnd exact single-def <<unknown class>>
+;  V07 loc5         [V07,T10] (  5, 19.10)     int  ->  x21        
 ;* V08 loc6         [V08    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op <System.Security.Cryptography.Asn1.X509ExtensionAsn>
 ;* V09 loc7         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Security.Cryptography.X509Certificates.X509Extension>
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -26,69 +26,69 @@
 ;* V14 tmp4         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V15 tmp5         [V15    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V16 tmp6         [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V17 tmp7         [V17,T94] (  3,  0   )     ref  ->   x0        
-;  V18 tmp8         [V18,T78] (  4,  0   )     ref  ->  x23         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
+;  V17 tmp7         [V17,T91] (  3,  0   )     ref  ->   x0        
+;  V18 tmp8         [V18,T75] (  4,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
 ;* V19 tmp9         [V19    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V20 tmp10        [V20,T79] (  4,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
+;  V20 tmp10        [V20,T76] (  4,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
 ;* V21 tmp11        [V21    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V22 tmp12        [V22,T69] (  7,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnWriter>
-;  V23 tmp13        [V23,T95] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V22 tmp12        [V22,T66] (  7,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnWriter>
+;  V23 tmp13        [V23,T92] (  3,  0   )     ref  ->   x0         class-hnd exact single-def "dup spill" <<unknown class>>
 ;* V24 tmp14        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def
 ;* V25 tmp15        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp16        [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
 ;* V27 tmp17        [V27    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V28 tmp18        [V28    ] (  0,  0   )  struct ( 8) zero-ref    <System.Nullable`1[int]>
-;  V29 tmp19        [V29,T80] (  4,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V30 tmp20        [V30,T00] (  8, 57.31)     ref  ->  x25         class-hnd exact "impAppendStmt" <System.String>
-;  V31 tmp21        [V31,T01] (  7, 57.30)     ref  ->  x27         class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X509Extension>
+;  V29 tmp19        [V29,T77] (  4,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V30 tmp20        [V30,T00] (  8, 57.31)     ref  ->  x22         class-hnd exact "impAppendStmt" <System.String>
+;  V31 tmp21        [V31,T01] (  7, 57.30)     ref  ->  x26         class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.X509Certificates.X509Extension>
 ;* V32 tmp22        [V32    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V33 tmp23        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V34 tmp24        [V34    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V35 tmp25        [V35    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
-;  V36 tmp26        [V36,T89] (  4,  0   )     int  ->  x21         ld-addr-op "Inline ldloca(s) first use temp"
+;  V36 tmp26        [V36,T86] (  4,  0   )     int  ->  x21         ld-addr-op "Inline ldloca(s) first use temp"
 ;* V37 tmp27        [V37    ] (  0,  0   )  struct ( 8) zero-ref    "location for address-of(RValue)" <System.Formats.Asn1.Asn1Tag>
-;  V38 tmp28        [V38,T28] (  9,  8.26)     int  ->  x25         "Inlining Arg"
+;  V38 tmp28        [V38,T29] (  9,  8.26)     int  ->  x25         "Inlining Arg"
 ;* V39 tmp29        [V39    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V40 tmp30        [V40    ] (  3,  2   )     int  ->  [fp+0x50]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;  V40 tmp30        [V40    ] (  3,  2   )     int  ->  [fp+0x30]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;* V41 tmp31        [V41    ] (  0,  0   )  struct ( 8) zero-ref    "Inline stloc first use temp" <System.Formats.Asn1.Asn1Tag>
-;  V42 tmp32        [V42,T43] ( 12,  2.80)     int  ->   x1         ld-addr-op "Inline ldloca(s) first use temp"
+;  V42 tmp32        [V42,T40] ( 12,  2.80)     int  ->   x1         ld-addr-op "Inline ldloca(s) first use temp"
 ;* V43 tmp33        [V43    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V44 tmp34        [V44    ] (  0,  0   )  struct ( 8) zero-ref    "Inline stloc first use temp" <System.Nullable`1[int]>
-;  V45 tmp35        [V45,T76] (  5,  0   )     int  ->  x21         "Inline stloc first use temp"
+;  V45 tmp35        [V45,T73] (  5,  0   )     int  ->  x21         "Inline stloc first use temp"
 ;* V46 tmp36        [V46    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
-;  V47 tmp37        [V47,T72] (  6,  0   )     int  ->   x3         ld-addr-op "Inline ldloca(s) first use temp"
+;  V47 tmp37        [V47,T69] (  6,  0   )     int  ->   x3         ld-addr-op "Inline ldloca(s) first use temp"
 ;* V48 tmp38        [V48    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V49 tmp39        [V49    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V50 tmp40        [V50,T96] (  3,  0   )     ref  ->  x25         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V50 tmp40        [V50,T93] (  3,  0   )     ref  ->  x25         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V51 tmp41        [V51    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V52 tmp42        [V52    ] (  2,  2   )  struct ( 8) [fp+0x48]  do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Formats.Asn1.Asn1Tag>
-;  V53 tmp43        [V53,T97] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V54 tmp44        [V54,T29] (  4,  8   )     int  ->   x0         "Inlining Arg"
+;  V52 tmp42        [V52    ] (  2,  2   )  struct ( 8) [fp+0x28]  do-not-enreg[XS] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Formats.Asn1.Asn1Tag>
+;  V53 tmp43        [V53,T94] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V54 tmp44        [V54,T30] (  4,  8   )     int  ->   x0         "Inlining Arg"
 ;* V55 tmp45        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V56 tmp46        [V56,T30] (  3,  6   )     int  ->  x22         "Inlining Arg"
-;  V57 tmp47        [V57,T33] (  2,  4   )   byref  ->  x21         single-def "Inlining Arg"
+;  V56 tmp46        [V56,T31] (  3,  6   )     int  ->  x22         "Inlining Arg"
+;  V57 tmp47        [V57,T34] (  2,  4   )   byref  ->  x21         single-def "Inlining Arg"
 ;* V58 tmp48        [V58    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]>
 ;* V59 tmp49        [V59    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V60 tmp50        [V60,T98] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V61 tmp51        [V61,T99] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V62 tmp52        [V62,T100] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V63 tmp53        [V63,T68] (  8,  0   )     int  ->   x2         "Inline return value spill temp"
+;  V60 tmp50        [V60,T95] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V61 tmp51        [V61,T96] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V62 tmp52        [V62,T97] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V63 tmp53        [V63,T65] (  8,  0   )     int  ->   x2         "Inline return value spill temp"
 ;* V64 tmp54        [V64    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V65 tmp55        [V65    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
-;  V66 tmp56        [V66,T40] (  6,  4.11)   ubyte  ->   x0         "Inline stloc first use temp"
-;  V67 tmp57        [V67,T57] (  6,  0.63)   ubyte  ->   x0         "Inline stloc first use temp"
-;  V68 tmp58        [V68,T60] (  3,  0.22)     int  ->   x2        
-;  V69 tmp59        [V69,T58] (  5,  0.54)   ubyte  ->   x2         "Inline stloc first use temp"
-;  V70 tmp60        [V70,T51] (  7,  1.02)     int  ->   x3         "Inline stloc first use temp"
-;  V71 tmp61        [V71,T56] (  5,  0.72)     int  ->   x4         "Inline stloc first use temp"
+;  V66 tmp56        [V66,T37] (  6,  4.11)   ubyte  ->   x0         "Inline stloc first use temp"
+;  V67 tmp57        [V67,T54] (  6,  0.63)   ubyte  ->   x0         "Inline stloc first use temp"
+;  V68 tmp58        [V68,T57] (  3,  0.22)     int  ->   x2        
+;  V69 tmp59        [V69,T55] (  5,  0.54)   ubyte  ->   x2         "Inline stloc first use temp"
+;  V70 tmp60        [V70,T48] (  7,  1.02)     int  ->   x3         "Inline stloc first use temp"
+;  V71 tmp61        [V71,T53] (  5,  0.72)     int  ->   x4         "Inline stloc first use temp"
 ;* V72 tmp62        [V72    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
-;  V73 tmp63        [V73,T59] (  4,  0.51)   ubyte  ->   x5         "Inline stloc first use temp"
+;  V73 tmp63        [V73,T56] (  4,  0.51)   ubyte  ->   x5         "Inline stloc first use temp"
 ;* V74 tmp64        [V74    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
 ;* V75 tmp65        [V75    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
 ;* V76 tmp66        [V76    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V77 tmp67        [V77,T90] (  4,  0   )     int  ->  x23         "Inlining Arg"
-;  V78 tmp68        [V78,T125] (  2,  0   )   byref  ->  x22         single-def "Inlining Arg"
-;  V79 tmp69        [V79,T73] (  6,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V77 tmp67        [V77,T87] (  4,  0   )     int  ->  x23         "Inlining Arg"
+;  V78 tmp68        [V78,T122] (  2,  0   )   byref  ->  x22         single-def "Inlining Arg"
+;  V79 tmp69        [V79,T70] (  6,  0   )     int  ->   x0         "Inline return value spill temp"
 ;* V80 tmp70        [V80    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Formats.Asn1.Asn1Tag>
 ;* V81 tmp71        [V81    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Nullable`1[int]>
 ;* V82 tmp72        [V82    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
@@ -97,145 +97,145 @@
 ;* V85 tmp75        [V85    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V86 tmp76        [V86    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp77        [V87    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V88 tmp78        [V88,T126] (  2,  0   )   byref  ->  x22         single-def "Inlining Arg"
-;  V89 tmp79        [V89    ] (  8,  0   )  struct (16) [fp+0x38]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-;  V90 tmp80        [V90,T67] (  8,  0   )   byref  ->  x21         single-def "Inlining Arg"
-;  V91 tmp81        [V91,T101] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V92 tmp82        [V92,T102] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V93 tmp83        [V93,T103] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V88 tmp78        [V88,T123] (  2,  0   )   byref  ->  x22         single-def "Inlining Arg"
+;  V89 tmp79        [V89    ] (  8,  0   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;  V90 tmp80        [V90,T64] (  8,  0   )   byref  ->  x21         single-def "Inlining Arg"
+;  V91 tmp81        [V91,T98] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V92 tmp82        [V92,T99] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V93 tmp83        [V93,T100] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V94 tmp84        [V94    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V95 tmp85        [V95    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V96 tmp86        [V96    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V97 tmp87        [V97,T117] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
+;  V97 tmp87        [V97,T114] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
 ;* V98 tmp88        [V98    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V99 tmp89        [V99    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V100 tmp90       [V100    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-;  V101 tmp91       [V101,T70] (  6,  0   )   byref  ->  x21         "Inline stloc first use temp"
-;  V102 tmp92       [V102,T65] (  9,  0   )     int  ->  x22         "Inline stloc first use temp"
-;  V103 tmp93       [V103,T81] (  4,  0   )   byref  ->  x20         single-def "Inlining Arg"
-;  V104 tmp94       [V104,T63] (  9,  0   )     ref  ->  x23         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V101 tmp91       [V101,T67] (  6,  0   )   byref  ->  x21         "Inline stloc first use temp"
+;  V102 tmp92       [V102,T62] (  9,  0   )     int  ->  x22         "Inline stloc first use temp"
+;  V103 tmp93       [V103,T78] (  4,  0   )   byref  ->  x20         single-def "Inlining Arg"
+;  V104 tmp94       [V104,T60] (  9,  0   )     ref  ->  x23         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V105 tmp95       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V106 tmp96       [V106    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <<unknown class>>
 ;* V107 tmp97       [V107    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V108 tmp98       [V108    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-;  V109 tmp99       [V109,T118] (  3,  0   )    long  ->   x0         "Inline stloc first use temp"
-;  V110 tmp100      [V110,T119] (  3,  0   )     int  ->   x1         "Inline stloc first use temp"
+;  V109 tmp99       [V109,T115] (  3,  0   )    long  ->   x0         "Inline stloc first use temp"
+;  V110 tmp100      [V110,T116] (  3,  0   )     int  ->   x1         "Inline stloc first use temp"
 ;* V111 tmp101      [V111    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
 ;* V112 tmp102      [V112    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
-;  V113 tmp103      [V113,T127] (  2,  0   )   byref  ->   x1         single-def "Inlining Arg"
+;  V113 tmp103      [V113,T124] (  2,  0   )   byref  ->   x1         single-def "Inlining Arg"
 ;* V114 tmp104      [V114    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V115 tmp105      [V115,T74] (  5,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.Oid>
+;  V115 tmp105      [V115,T71] (  5,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.Oid>
 ;* V116 tmp106      [V116    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V117 tmp107      [V117,T104] (  3,  0   )     ref  ->  x15         class-hnd "Inline return value spill temp" <ubyte[]>
-;  V118 tmp108      [V118,T105] (  3,  0   )     ref  ->  x25         class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
-;  V119 tmp109      [V119,T128] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
+;  V117 tmp107      [V117,T101] (  3,  0   )     ref  ->  x15         class-hnd "Inline return value spill temp" <ubyte[]>
+;  V118 tmp108      [V118,T102] (  3,  0   )     ref  ->  x23         class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
+;  V119 tmp109      [V119,T125] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
 ;* V120 tmp110      [V120    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V121 tmp111      [V121,T152] (  2,  0   )    long  ->   x2         "Inlining Arg"
+;  V121 tmp111      [V121,T149] (  2,  0   )    long  ->   x2         "Inlining Arg"
 ;* V122 tmp112      [V122    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-;  V123 tmp113      [V123,T71] (  6,  0   )   byref  ->  x22         "Inline stloc first use temp"
-;  V124 tmp114      [V124,T66] (  9,  0   )     int  ->  x23         "Inline stloc first use temp"
-;  V125 tmp115      [V125,T82] (  4,  0   )   byref  ->  x21         single-def "Inlining Arg"
-;  V126 tmp116      [V126,T64] (  9,  0   )     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V123 tmp113      [V123,T68] (  6,  0   )   byref  ->  x21         "Inline stloc first use temp"
+;  V124 tmp114      [V124,T63] (  9,  0   )     int  ->  x22         "Inline stloc first use temp"
+;  V125 tmp115      [V125,T79] (  4,  0   )   byref  ->  x20         single-def "Inlining Arg"
+;  V126 tmp116      [V126,T61] (  9,  0   )     ref  ->  x23         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V127 tmp117      [V127    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V128 tmp118      [V128    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <<unknown class>>
 ;* V129 tmp119      [V129    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V130 tmp120      [V130    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-;  V131 tmp121      [V131,T120] (  3,  0   )    long  ->   x0         "Inline stloc first use temp"
-;  V132 tmp122      [V132,T121] (  3,  0   )     int  ->   x1         "Inline stloc first use temp"
+;  V131 tmp121      [V131,T117] (  3,  0   )    long  ->   x0         "Inline stloc first use temp"
+;  V132 tmp122      [V132,T118] (  3,  0   )     int  ->   x1         "Inline stloc first use temp"
 ;* V133 tmp123      [V133    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
 ;* V134 tmp124      [V134    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
-;  V135 tmp125      [V135,T129] (  2,  0   )   byref  ->   x1         single-def "Inlining Arg"
+;  V135 tmp125      [V135,T126] (  2,  0   )   byref  ->   x1         single-def "Inlining Arg"
 ;* V136 tmp126      [V136    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V137 tmp127      [V137,T75] (  5,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.Oid>
+;  V137 tmp127      [V137,T72] (  5,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.Oid>
 ;* V138 tmp128      [V138    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V139 tmp129      [V139,T106] (  3,  0   )     ref  ->  x15         class-hnd "Inline return value spill temp" <ubyte[]>
-;  V140 tmp130      [V140,T107] (  3,  0   )     ref  ->  x25         class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
-;  V141 tmp131      [V141,T130] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
+;  V139 tmp129      [V139,T103] (  3,  0   )     ref  ->  x15         class-hnd "Inline return value spill temp" <ubyte[]>
+;  V140 tmp130      [V140,T104] (  3,  0   )     ref  ->  x23         class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
+;  V141 tmp131      [V141,T127] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
 ;* V142 tmp132      [V142    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V143 tmp133      [V143,T153] (  2,  0   )    long  ->   x2         "Inlining Arg"
+;  V143 tmp133      [V143,T150] (  2,  0   )    long  ->   x2         "Inlining Arg"
 ;* V144 tmp134      [V144    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
-;  V145 tmp135      [V145,T83] (  4,  0   )     ref  ->  x21         class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
-;  V146 tmp136      [V146,T131] (  2,  0   )     ref  ->  x15         class-hnd exact single-def "dup spill" <System.String>
-;  V147 tmp137      [V147,T84] (  4,  0   )     ref  ->  x15        
+;  V145 tmp135      [V145,T80] (  4,  0   )     ref  ->  x20         class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
+;  V146 tmp136      [V146,T128] (  2,  0   )     ref  ->  x15         class-hnd exact single-def "dup spill" <System.String>
+;  V147 tmp137      [V147,T81] (  4,  0   )     ref  ->  x15        
 ;* V148 tmp138      [V148    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V149 tmp139      [V149    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
-;* V150 tmp140      [V150,T162] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Security.Cryptography.X509Certificates.X509Pal+AppleX509Pal>
-;  V151 tmp141      [V151,T132] (  2,  0   )     ref  ->   x0         class-hnd single-def "spilling ret_expr" <ubyte[]>
-;  V152 tmp142      [V152,T108] (  3,  0   )     ref  ->   x0         "guarded devirt return temp"
+;* V150 tmp140      [V150,T159] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Security.Cryptography.X509Certificates.X509Pal+AppleX509Pal>
+;  V151 tmp141      [V151,T129] (  2,  0   )     ref  ->   x0         class-hnd single-def "spilling ret_expr" <ubyte[]>
+;  V152 tmp142      [V152,T105] (  3,  0   )     ref  ->   x0         "guarded devirt return temp"
 ;* V153 tmp143      [V153    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Security.Cryptography.X509Certificates.X509Pal+AppleX509Pal>
 ;* V154 tmp144      [V154    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V155 tmp145      [V155    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V156 tmp146      [V156    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.ArgumentException>
 ;* V157 tmp147      [V157    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
-;  V158 tmp148      [V158,T85] (  4,  0   )     ref  ->  x21         class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
-;  V159 tmp149      [V159,T133] (  2,  0   )     ref  ->  x15         class-hnd exact single-def "dup spill" <System.String>
-;  V160 tmp150      [V160,T86] (  4,  0   )     ref  ->  x15        
+;  V158 tmp148      [V158,T82] (  4,  0   )     ref  ->  x20         class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.X509Certificates.X500DistinguishedName>
+;  V159 tmp149      [V159,T130] (  2,  0   )     ref  ->  x15         class-hnd exact single-def "dup spill" <System.String>
+;  V160 tmp150      [V160,T83] (  4,  0   )     ref  ->  x15        
 ;* V161 tmp151      [V161    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V162 tmp152      [V162    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
-;* V163 tmp153      [V163,T163] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Security.Cryptography.X509Certificates.X509Pal+AppleX509Pal>
-;  V164 tmp154      [V164,T134] (  2,  0   )     ref  ->   x0         class-hnd single-def "spilling ret_expr" <ubyte[]>
-;  V165 tmp155      [V165,T109] (  3,  0   )     ref  ->   x0         "guarded devirt return temp"
+;* V163 tmp153      [V163,T160] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Security.Cryptography.X509Certificates.X509Pal+AppleX509Pal>
+;  V164 tmp154      [V164,T131] (  2,  0   )     ref  ->   x0         class-hnd single-def "spilling ret_expr" <ubyte[]>
+;  V165 tmp155      [V165,T106] (  3,  0   )     ref  ->   x0         "guarded devirt return temp"
...

-16 (-0.79%) : 608088.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)

@@ -68,11 +68,11 @@
 ;* V56 tmp46        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp47        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V58 tmp48        [V58    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.Ecma335.SignatureTypeEncoder>
-;  V59 tmp49        [V59,T74] (  4,  0   )     ref  ->  x27         class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
-;  V60 tmp50        [V60,T78] (  3,  0   )     int  ->   x0         "Inline stloc first use temp"
+;  V59 tmp49        [V59,T73] (  4,  0   )     ref  ->  x27         class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
+;  V60 tmp50        [V60,T77] (  3,  0   )     int  ->   x0         "Inline stloc first use temp"
 ;* V61 tmp51        [V61    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <ubyte[]>
-;  V62 tmp52        [V62,T75] (  4,  0   )     ref  ->  x27         class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
-;  V63 tmp53        [V63,T79] (  3,  0   )     int  ->   x0         "Inline stloc first use temp"
+;  V62 tmp52        [V62,T74] (  4,  0   )     ref  ->  x27         class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
+;  V63 tmp53        [V63,T78] (  3,  0   )     int  ->   x0         "Inline stloc first use temp"
 ;* V64 tmp54        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <ubyte[]>
 ;  V65 tmp55        [V65,T07] (  2,  7.71)     ref  ->  x28         class-hnd "Inlining Arg" <System.Reflection.Metadata.BlobBuilder>
 ;  V66 tmp56        [V66,T13] (  4,  6.12)     int  ->   x3         "Inline stloc first use temp"
@@ -162,8 +162,8 @@
 ;* V150 tmp140      [V150    ] (  0,  0   )     ref  ->  zero-ref    "field V43.array (fldOffset=0x0)" P-INDEP
 ;  V151 tmp141      [V151    ] (  5,  3.86)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V44.<Builder>k__BackingField (fldOffset=0x0)" P-DEP
 ;* V152 tmp142      [V152    ] (  0,  0   )     ref  ->  zero-ref    "field V46.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V153 tmp143      [V153,T80] (  2,  0   )     ref  ->  x28         "field V47.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V154 tmp144      [V154,T81] (  2,  0   )     ref  ->   x2         "field V48.array (fldOffset=0x0)" P-INDEP
+;  V153 tmp143      [V153,T79] (  2,  0   )     ref  ->  x28         "field V47.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V154 tmp144      [V154,T80] (  2,  0   )     ref  ->   x2         "field V48.array (fldOffset=0x0)" P-INDEP
 ;  V155 tmp145      [V155,T20] (  3,  3.86)     ref  ->  x27         "field V49.array (fldOffset=0x0)" P-INDEP
 ;  V156 tmp146      [V156,T21] (  2,  3.86)     ref  ->  x28         "field V58.<Builder>k__BackingField (fldOffset=0x0)" P-INDEP
 ;  V157 tmp147      [V157,T41] (  5,  0.99)     int  ->  x25         single-def "field V67._value (fldOffset=0x0)" P-INDEP
@@ -218,14 +218,13 @@
 ;  V206 tmp196      [V206,T49] (  2,  0.66)     int  ->  x19         single-def "field V131._rowId (fldOffset=0x0)" P-INDEP
 ;  V207 tmp197      [V207,T30] (  3,  1.98)     ref  ->   x0         single-def "arr expr"
 ;  V208 tmp198      [V208,T33] (  3,  1.84)     ref  ->   x0         single-def "arr expr"
-;  V209 tmp199      [V209,T76] (  3,  0   )     ref  ->   x1         "arr expr"
-;  V210 tmp200      [V210,T77] (  3,  0   )     ref  ->  x11         "arr expr"
+;  V209 tmp199      [V209,T75] (  3,  0   )     ref  ->   x1         "arr expr"
+;  V210 tmp200      [V210,T76] (  3,  0   )     ref  ->  x11         "arr expr"
 ;  V211 cse0        [V211,T15] (  3,  5.79)     int  ->   x0         "CSE - moderate"
 ;  V212 cse1        [V212,T11] (  2,  6.69)     int  ->   x1         hoist "CSE - aggressive"
 ;  V213 cse2        [V213,T16] (  5,  4.59)     int  ->  x21         "CSE - aggressive"
 ;  V214 cse3        [V214,T04] (  4,  7.71)    long  ->  x25         "CSE - aggressive"
 ;  V215 cse4        [V215,T05] (  4,  7.71)    long  ->  x26         "CSE - moderate"
-;  V216 cse5        [V216,T73] ( 11,  0   )    long  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 16
 
@@ -253,17 +252,16 @@ G_M099_IG02:        ; bbWeight=1, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, b
 G_M099_IG03:        ; bbWeight=0, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
             mov     x0, x1
             ; gcrRegs +[x0]
-            movz    x23, #0xD1FFAB1E      // code for <unknown method>
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #1 LSL #32
-            mov     x11, x23
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #1 LSL #32
             ldr     x1, [x11]
             ; gcrRegs -[x1]
             blr     x1
             ; gcr arg pop 0
             mov     x20, x0
             ; gcrRegs +[x20]
-                       ;; size=32 bbWeight=0 PerfScore 0.00
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M099_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     w21, [x20, #0x08]
@@ -497,17 +495,15 @@ G_M099_IG29:        ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs
             ; byrRegs -[x0]
             mov     x0, x24
             ; gcrRegs +[x0]
-            movz    x11, #0xD1FFAB1E
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
             movk    x11, #0xD1FFAB1E LSL #16
             movk    x11, #1 LSL #32
-            mov     x27, x11
-            add     x11, x27, #8
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
             mov     x27, x0
             ; gcrRegs +[x27]
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M099_IG30:        ; bbWeight=1.93, gcrefRegs=9980000 {x19 x20 x23 x24 x27}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     w0, [x27, #0x08]
@@ -534,17 +530,16 @@ G_M099_IG32:        ; bbWeight=1.93, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefR
 G_M099_IG33:        ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref
             mov     x0, x24
             ; gcrRegs +[x0]
-            movz    x27, #0xD1FFAB1E
-            movk    x27, #0xD1FFAB1E LSL #16
-            movk    x27, #1 LSL #32
-            add     x11, x27, #16
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #1 LSL #32
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
             sxtw    w28, w0
             b       G_M099_IG72
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=32 bbWeight=0 PerfScore 0.00
 G_M099_IG34:        ; bbWeight=1.93, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
             ldrb    w0, [x24, #0x28]
             and     w28, w0, #1
@@ -620,17 +615,16 @@ G_M099_IG39:        ; bbWeight=1.93, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefR
 G_M099_IG40:        ; bbWeight=0, gcrefRegs=11980000 {x19 x20 x23 x24 x28}, byrefRegs=0000 {}, byref
             mov     x0, x24
             ; gcrRegs +[x0]
-            movz    x27, #0xD1FFAB1E
-            movk    x27, #0xD1FFAB1E LSL #16
-            movk    x27, #1 LSL #32
-            add     x11, x27, #32
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #1 LSL #32
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs -[x24]
             ; gcr arg pop 0
             mov     x2, x0
             ; gcrRegs +[x2]
-                       ;; size=32 bbWeight=0 PerfScore 0.00
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M099_IG41:        ; bbWeight=1.93, gcrefRegs=10980004 {x2 x19 x20 x23 x28}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             mov     x0, x19
@@ -997,10 +991,9 @@ G_M099_IG71:        ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs
             mov     x28, x0
             ; gcrRegs +[x28]
             mov     x0, x24
-            movz    x27, #0xD1FFAB1E
-            movk    x27, #0xD1FFAB1E LSL #16
-            movk    x27, #1 LSL #32
-            add     x11, x27, #8
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #1 LSL #32
             ldr     x1, [x11]
             blr     x1
             ; gcr arg pop 0
@@ -1017,11 +1010,13 @@ G_M099_IG71:        ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs
             ; gcrRegs -[x0-x2 x28]
             ; gcr arg pop 0
             b       G_M099_IG32
-                       ;; size=92 bbWeight=0 PerfScore 0.00
+                       ;; size=88 bbWeight=0 PerfScore 0.00
 G_M099_IG72:        ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
             mov     x0, x24
             ; gcrRegs +[x0]
-            add     x11, x27, #24
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #1 LSL #32
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs -[x0]
@@ -1029,7 +1024,7 @@ G_M099_IG72:        ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs
             sxtw    w4, w0
             tst     w4, #255
             beq     G_M099_IG37
-                       ;; size=28 bbWeight=0 PerfScore 0.00
+                       ;; size=36 bbWeight=0 PerfScore 0.00
 G_M099_IG73:        ; bbWeight=0, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
             ldr     x27, [fp, #0x18]   // [V151 tmp141]
             ; gcrRegs +[x27]
@@ -1094,7 +1089,7 @@ G_M099_IG75:        ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000
             b       G_M099_IG65
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 2020, prolog size 36, PerfScore 245.67, instruction count 505, allocated bytes for code 2020 (MethodHash=4a3bff9c) for method Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
+Total bytes of code 2004, prolog size 36, PerfScore 245.67, instruction count 501, allocated bytes for code 2004 (MethodHash=4a3bff9c) for method Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -1105,7 +1100,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 505 (0x001f9) Actual length = 2020 (0x0007e4)
+  Function Length   : 501 (0x001f5) Actual length = 2004 (0x0007d4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+4.88%) : 476023.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)

@@ -11,38 +11,36 @@
 ;
 ;  V00 this         [V00,T14] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Array>
-;  V02 loc1         [V02,T18] (  3,  1   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V02 loc1         [V02,T02] (  7, 14   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
 ;  V03 loc2         [V03,T01] (  7, 14.89)     int  ->  x20        
-;  V04 loc3         [V04,T04] (  4, 10.67)     int  ->  x21        
+;  V04 loc3         [V04,T05] (  4, 10.67)     int  ->  x21        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
-;  V07 tmp2         [V07,T08] (  2, 10.22)     int  ->  x20         "dup spill"
+;  V07 tmp2         [V07,T09] (  2, 10.22)     int  ->  x20         "dup spill"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T19] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V09 tmp4         [V09,T17] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V10 tmp5         [V10,T11] (  4,  6   )     int  ->  x20         "dup spill"
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V13 tmp8         [V13,T03] (  4, 11.22)     ref  ->  x24         class-hnd "Inline stloc first use temp" <System.Array>
-;  V14 tmp9         [V14,T00] (  7, 48.22)     ref  ->  x23         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V15 tmp10        [V15,T05] (  3, 10.33)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V16 tmp11        [V16,T02] (  4, 13.78)     int  ->   x1         "Inline stloc first use temp"
-;  V17 cse0         [V17,T17] (  3,  3   )    long  ->   x0         "CSE - aggressive"
-;  V18 cse1         [V18,T07] (  3, 10.33)    long  ->   x2         "CSE - aggressive"
-;  V19 cse2         [V19,T09] (  5,  9.56)     int  ->  x22         "CSE - aggressive"
-;  V20 cse3         [V20,T10] (  2,  6.89)     int  ->   x2         "CSE - aggressive"
-;  V21 cse4         [V21,T16] (  2,  3.44)   byref  ->  x19         hoist "CSE - aggressive"
-;  V22 cse5         [V22,T06] (  3, 10.33)   byref  ->   x0         "CSE - aggressive"
-;  V23 rat0         [V23,T15] (  3,  4   )    long  ->   x0         "TLS field access"
-;  V24 rat1         [V24,T12] (  3,  6   )    long  ->   x0         "TLS access"
-;  V25 rat2         [V25,T13] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
+;  V13 tmp8         [V13,T04] (  4, 11.22)     ref  ->  x23         class-hnd "Inline stloc first use temp" <System.Array>
+;  V14 tmp9         [V14,T00] (  7, 48.22)     ref  ->  x22         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V15 tmp10        [V15,T06] (  3, 10.33)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp11        [V16,T03] (  4, 13.78)     int  ->   x1         "Inline stloc first use temp"
+;  V17 cse0         [V17,T16] (  3,  3   )    long  ->   x0         "CSE - aggressive"
+;  V18 cse1         [V18,T08] (  3, 10.33)    long  ->   x2         "CSE - aggressive"
+;  V19 cse2         [V19,T10] (  2,  6.89)     int  ->   x2         "CSE - aggressive"
+;  V20 cse3         [V20,T07] (  3, 10.33)   byref  ->   x0         "CSE - aggressive"
+;  V21 rat0         [V21,T15] (  3,  4   )    long  ->   x0         "TLS field access"
+;  V22 rat1         [V22,T12] (  3,  6   )    long  ->   x0         "TLS access"
+;  V23 rat2         [V23,T13] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M10734_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            str     x23, [sp, #0x38]
             mov     fp, sp
                        ;; size=20 bbWeight=1 PerfScore 4.50
 G_M10734_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -88,29 +86,31 @@ G_M10734_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M10734_IG06:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             and     w20, w0, #7
             mov     w21, wzr
-            ldr     w22, [x19, #0x08]
-            cmp     w22, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             ble     G_M10734_IG12
-            add     x19, x19, #16
-            ; gcrRegs -[x19]
-            ; byrRegs +[x19]
+            ldr     wzr, [x19, #0x08]
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M10734_IG07:        ; bbWeight=3.44, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            cmp     w20, w22
+G_M10734_IG07:        ; bbWeight=3.44, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x19, #0x08]
+            cmp     w20, w0
             bhs     G_M10734_IG16
-            ldr     x23, [x19, w20, UXTW #3]
+            add     x0, x19, #16
+            ; byrRegs +[x0]
+            ldr     x22, [x0, w20, UXTW #3]
+            ; gcrRegs +[x22]
+            ldrsb   wzr, [x22]
+            mov     x23, xzr
             ; gcrRegs +[x23]
-            ldrsb   wzr, [x23]
-            mov     x24, xzr
-            ; gcrRegs +[x24]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
+            ; byrRegs -[x0]
             bl      <unknown method>
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [x23, #0x08]
+            ldr     x0, [x22, #0x08]
             ; gcrRegs +[x0]
-            ldr     w1, [x23, #0x14]
+            ldr     w1, [x22, #0x14]
             sub     w1, w1, #1
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
@@ -119,58 +119,60 @@ G_M10734_IG07:        ; bbWeight=3.44, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ubfiz   x2, x1, #3, #32
-            ldr     x24, [x0, x2]
+            ldr     x23, [x0, x2]
             str     xzr, [x0, x2]
-            str     w1, [x23, #0x14]
-                       ;; size=72 bbWeight=3.44 PerfScore 93.00
-G_M10734_IG08:        ; bbWeight=3.44, gcrefRegs=1800000 {x23 x24}, byrefRegs=80000 {x19}, byref, isz
+            str     w1, [x22, #0x14]
+                       ;; size=80 bbWeight=3.44 PerfScore 105.06
+G_M10734_IG08:        ; bbWeight=3.44, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0 x23]
+            ; gcrRegs -[x0 x22]
             ; gcr arg pop 0
-            cbnz    x24, G_M10734_IG14
+            cbnz    x23, G_M10734_IG14
                        ;; size=12 bbWeight=3.44 PerfScore 8.61
-G_M10734_IG09:        ; bbWeight=2.56, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            ; gcrRegs -[x24]
+G_M10734_IG09:        ; bbWeight=2.56, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x23]
             add     w20, w20, #1
-            cmp     w22, w20
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w20
             bne     G_M10734_IG11
-                       ;; size=12 bbWeight=2.56 PerfScore 5.11
-G_M10734_IG10:        ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+                       ;; size=16 bbWeight=2.56 PerfScore 12.78
+G_M10734_IG10:        ; bbWeight=0.33, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             mov     w20, wzr
                        ;; size=4 bbWeight=0.33 PerfScore 0.17
-G_M10734_IG11:        ; bbWeight=3.56, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG11:        ; bbWeight=3.56, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     w21, w21, #1
-            cmp     w22, w21
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w21
             bgt     G_M10734_IG07
-                       ;; size=12 bbWeight=3.56 PerfScore 7.11
+                       ;; size=16 bbWeight=3.56 PerfScore 17.78
 G_M10734_IG12:        ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x19]
+            ; gcrRegs -[x19]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.11 PerfScore 0.06
 G_M10734_IG13:        ; bbWeight=0.11, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.11 PerfScore 0.56
-G_M10734_IG14:        ; bbWeight=0.89, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x24]
-            mov     x0, x24
+                       ;; size=20 bbWeight=0.11 PerfScore 0.67
+G_M10734_IG14:        ; bbWeight=0.89, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x23]
+            mov     x0, x23
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.89 PerfScore 0.44
 G_M10734_IG15:        ; bbWeight=0.89, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.89 PerfScore 4.44
+                       ;; size=20 bbWeight=0.89 PerfScore 5.33
 G_M10734_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x24]
+            ; gcrRegs -[x0 x23]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
@@ -182,7 +184,7 @@ G_M10734_IG17:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             b       G_M10734_IG03
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 328, prolog size 20, PerfScore 151.50, instruction count 82, allocated bytes for code 328 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 344, prolog size 20, PerfScore 182.89, instruction count 86, allocated bytes for code 344 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -193,7 +195,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 82 (0x00052) Actual length = 328 (0x000148)
+  Function Length   : 86 (0x00056) Actual length = 344 (0x000158)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -204,10 +206,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D1 07       save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
     E6          save_next
-    E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
-    E4          end
 

+16 (+4.88%) : 466892.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)

@@ -9,40 +9,38 @@
 ; 2 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T11] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
+;  V00 this         [V00,T12] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Array>
-;  V02 loc1         [V02,T18] (  3,  1   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
-;  V03 loc2         [V03,T03] (  7,  6.31)     int  ->  x20        
-;  V04 loc3         [V04,T07] (  4,  5.58)     int  ->  x21        
+;  V02 loc1         [V02,T01] (  7,  7.33)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V03 loc2         [V03,T04] (  7,  6.31)     int  ->  x20        
+;  V04 loc3         [V04,T08] (  4,  5.58)     int  ->  x21        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
 ;  V07 tmp2         [V07,T15] (  2,  3.44)     int  ->  x20         "dup spill"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T19] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
-;  V10 tmp5         [V10,T04] (  4,  6   )     int  ->  x20         "dup spill"
+;  V09 tmp4         [V09,T17] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V10 tmp5         [V10,T05] (  4,  6   )     int  ->  x20         "dup spill"
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V13 tmp8         [V13,T02] (  4,  6.36)     ref  ->  x24         class-hnd "Inline stloc first use temp" <System.Array>
-;  V14 tmp9         [V14,T00] (  7, 25.28)     ref  ->  x23         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V15 tmp10        [V15,T08] (  3,  5.42)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V16 tmp11        [V16,T01] (  4,  7.22)     int  ->   x1         "Inline stloc first use temp"
+;  V13 tmp8         [V13,T03] (  4,  6.36)     ref  ->  x23         class-hnd "Inline stloc first use temp" <System.Array>
+;  V14 tmp9         [V14,T00] (  7, 25.28)     ref  ->  x22         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V15 tmp10        [V15,T09] (  3,  5.42)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp11        [V16,T02] (  4,  7.22)     int  ->   x1         "Inline stloc first use temp"
 ;  V17 cse0         [V17,T16] (  3,  3   )    long  ->   x0         "CSE - aggressive"
-;  V18 cse1         [V18,T10] (  3,  5.42)    long  ->   x2         "CSE - aggressive"
-;  V19 cse2         [V19,T12] (  5,  4.53)     int  ->  x22         "CSE - aggressive"
-;  V20 cse3         [V20,T14] (  2,  3.61)     int  ->   x2         "CSE - aggressive"
-;  V21 cse4         [V21,T17] (  2,  1.81)   byref  ->  x19         hoist "CSE - moderate"
-;  V22 cse5         [V22,T09] (  3,  5.42)   byref  ->   x0         "CSE - aggressive"
-;  V23 rat0         [V23,T13] (  3,  4   )    long  ->   x0         "TLS field access"
-;  V24 rat1         [V24,T05] (  3,  6   )    long  ->   x0         "TLS access"
-;  V25 rat2         [V25,T06] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
+;  V18 cse1         [V18,T11] (  3,  5.42)    long  ->   x2         "CSE - aggressive"
+;  V19 cse2         [V19,T14] (  2,  3.61)     int  ->   x2         "CSE - aggressive"
+;  V20 cse3         [V20,T10] (  3,  5.42)   byref  ->   x0         "CSE - aggressive"
+;  V21 rat0         [V21,T13] (  3,  4   )    long  ->   x0         "TLS field access"
+;  V22 rat1         [V22,T06] (  3,  6   )    long  ->   x0         "TLS access"
+;  V23 rat2         [V23,T07] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M10734_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            str     x23, [sp, #0x38]
             mov     fp, sp
                        ;; size=20 bbWeight=1 PerfScore 4.50
 G_M10734_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -88,29 +86,31 @@ G_M10734_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M10734_IG06:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             and     w20, w0, #7
             mov     w21, wzr
-            ldr     w22, [x19, #0x08]
-            cmp     w22, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             ble     G_M10734_IG12
-            add     x19, x19, #16
-            ; gcrRegs -[x19]
-            ; byrRegs +[x19]
+            ldr     wzr, [x19, #0x08]
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M10734_IG07:        ; bbWeight=1.81, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            cmp     w20, w22
+G_M10734_IG07:        ; bbWeight=1.81, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x19, #0x08]
+            cmp     w20, w0
             bhs     G_M10734_IG16
-            ldr     x23, [x19, w20, UXTW #3]
+            add     x0, x19, #16
+            ; byrRegs +[x0]
+            ldr     x22, [x0, w20, UXTW #3]
+            ; gcrRegs +[x22]
+            ldrsb   wzr, [x22]
+            mov     x23, xzr
             ; gcrRegs +[x23]
-            ldrsb   wzr, [x23]
-            mov     x24, xzr
-            ; gcrRegs +[x24]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
+            ; byrRegs -[x0]
             bl      <unknown method>
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [x23, #0x08]
+            ldr     x0, [x22, #0x08]
             ; gcrRegs +[x0]
-            ldr     w1, [x23, #0x14]
+            ldr     w1, [x22, #0x14]
             sub     w1, w1, #1
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
@@ -119,58 +119,60 @@ G_M10734_IG07:        ; bbWeight=1.81, gcrefRegs=0000 {}, byrefRegs=80000 {x19},
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ubfiz   x2, x1, #3, #32
-            ldr     x24, [x0, x2]
+            ldr     x23, [x0, x2]
             str     xzr, [x0, x2]
-            str     w1, [x23, #0x14]
-                       ;; size=72 bbWeight=1.81 PerfScore 48.75
-G_M10734_IG08:        ; bbWeight=1.81, gcrefRegs=1800000 {x23 x24}, byrefRegs=80000 {x19}, byref, isz
+            str     w1, [x22, #0x14]
+                       ;; size=80 bbWeight=1.81 PerfScore 55.07
+G_M10734_IG08:        ; bbWeight=1.81, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0 x23]
+            ; gcrRegs -[x0 x22]
             ; gcr arg pop 0
-            cbnz    x24, G_M10734_IG14
+            cbnz    x23, G_M10734_IG14
                        ;; size=12 bbWeight=1.81 PerfScore 4.51
-G_M10734_IG09:        ; bbWeight=0.86, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            ; gcrRegs -[x24]
+G_M10734_IG09:        ; bbWeight=0.86, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x23]
             add     w20, w20, #1
-            cmp     w22, w20
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w20
             bne     G_M10734_IG11
-                       ;; size=12 bbWeight=0.86 PerfScore 1.72
-G_M10734_IG10:        ; bbWeight=0.11, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+                       ;; size=16 bbWeight=0.86 PerfScore 4.31
+G_M10734_IG10:        ; bbWeight=0.11, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             mov     w20, wzr
                        ;; size=4 bbWeight=0.11 PerfScore 0.06
-G_M10734_IG11:        ; bbWeight=1.86, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG11:        ; bbWeight=1.86, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     w21, w21, #1
-            cmp     w22, w21
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w21
             bgt     G_M10734_IG07
-                       ;; size=12 bbWeight=1.86 PerfScore 3.72
+                       ;; size=16 bbWeight=1.86 PerfScore 9.31
 G_M10734_IG12:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x19]
+            ; gcrRegs -[x19]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.06 PerfScore 0.03
 G_M10734_IG13:        ; bbWeight=0.06, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.06 PerfScore 0.28
-G_M10734_IG14:        ; bbWeight=0.94, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x24]
-            mov     x0, x24
+                       ;; size=20 bbWeight=0.06 PerfScore 0.33
+G_M10734_IG14:        ; bbWeight=0.94, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x23]
+            mov     x0, x23
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.94 PerfScore 0.47
 G_M10734_IG15:        ; bbWeight=0.94, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.94 PerfScore 4.72
+                       ;; size=20 bbWeight=0.94 PerfScore 5.67
 G_M10734_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x24]
+            ; gcrRegs -[x0 x23]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
@@ -182,7 +184,7 @@ G_M10734_IG17:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             b       G_M10734_IG03
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 328, prolog size 20, PerfScore 96.26, instruction count 82, allocated bytes for code 328 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 344, prolog size 20, PerfScore 111.75, instruction count 86, allocated bytes for code 344 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -193,7 +195,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 82 (0x00052) Actual length = 328 (0x000148)
+  Function Length   : 86 (0x00056) Actual length = 344 (0x000158)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -204,10 +206,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D1 07       save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
     E6          save_next
-    E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
-    E4          end
 

+16 (+4.88%) : 487720.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)

@@ -11,38 +11,36 @@
 ;
 ;  V00 this         [V00,T11] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Array>
-;  V02 loc1         [V02,T18] (  3,  1   )     ref  ->  x19         class-hnd exact single-def <<unknown class>>
-;  V03 loc2         [V03,T01] (  7,  8.78)     int  ->  x20        
-;  V04 loc3         [V04,T02] (  4,  7.15)     int  ->  x21        
+;  V02 loc1         [V02,T01] (  7,  9.23)     ref  ->  x19         class-hnd exact single-def <<unknown class>>
+;  V03 loc2         [V03,T02] (  7,  8.78)     int  ->  x20        
+;  V04 loc3         [V04,T03] (  4,  7.15)     int  ->  x21        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
 ;  V07 tmp2         [V07,T09] (  2,  5.54)     int  ->  x20         "dup spill"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T19] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V09 tmp4         [V09,T17] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V10 tmp5         [V10,T06] (  4,  6   )     int  ->  x20         "dup spill"
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V13 tmp8         [V13,T04] (  4,  6.21)     ref  ->  x24         class-hnd "Inline stloc first use temp" <System.Array>
-;  V14 tmp9         [V14,T00] (  7, 28.57)     ref  ->  x23         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V13 tmp8         [V13,T05] (  4,  6.21)     ref  ->  x23         class-hnd "Inline stloc first use temp" <System.Array>
+;  V14 tmp9         [V14,T00] (  7, 28.57)     ref  ->  x22         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V15 tmp10        [V15,T10] (  3,  5.36)     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V16 tmp11        [V16,T03] (  4,  6.26)     int  ->   x1         "Inline stloc first use temp"
+;  V16 tmp11        [V16,T04] (  4,  6.26)     int  ->   x1         "Inline stloc first use temp"
 ;  V17 cse0         [V17,T14] (  3,  3   )    long  ->   x0         "CSE - aggressive"
 ;  V18 cse1         [V18,T16] (  3,  2.70)    long  ->   x2         "CSE - aggressive"
-;  V19 cse2         [V19,T05] (  5,  6   )     int  ->  x22         "CSE - aggressive"
-;  V20 cse3         [V20,T17] (  2,  2.23)   byref  ->  x19         hoist "CSE - moderate"
-;  V21 cse4         [V21,T12] (  2,  4.46)     int  ->   x2         "CSE - aggressive"
-;  V22 cse5         [V22,T15] (  3,  2.70)   byref  ->   x0         "CSE - moderate"
-;  V23 rat0         [V23,T13] (  3,  4   )    long  ->   x0         "TLS field access"
-;  V24 rat1         [V24,T07] (  3,  6   )    long  ->   x0         "TLS access"
-;  V25 rat2         [V25,T08] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
+;  V19 cse2         [V19,T12] (  2,  4.46)     int  ->   x2         "CSE - aggressive"
+;  V20 cse3         [V20,T15] (  3,  2.70)   byref  ->   x0         "CSE - aggressive"
+;  V21 rat0         [V21,T13] (  3,  4   )    long  ->   x0         "TLS field access"
+;  V22 rat1         [V22,T07] (  3,  6   )    long  ->   x0         "TLS access"
+;  V23 rat2         [V23,T08] (  3,  6   )    long  ->   x0         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M10734_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
-            stp     x23, x24, [sp, #0x30]
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            str     x23, [sp, #0x38]
             mov     fp, sp
                        ;; size=20 bbWeight=1 PerfScore 4.50
 G_M10734_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
@@ -88,93 +86,97 @@ G_M10734_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M10734_IG06:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             and     w20, w0, #7
             mov     w21, wzr
-            ldr     w22, [x19, #0x08]
-            cmp     w22, #0
+            ldr     w0, [x19, #0x08]
+            cmp     w0, #0
             ble     G_M10734_IG13
-            add     x19, x19, #16
-            ; gcrRegs -[x19]
-            ; byrRegs +[x19]
+            ldr     wzr, [x19, #0x08]
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M10734_IG07:        ; bbWeight=2.23, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            cmp     w20, w22
+G_M10734_IG07:        ; bbWeight=2.23, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     w0, [x19, #0x08]
+            cmp     w20, w0
             bhs     G_M10734_IG17
-            ldr     x23, [x19, w20, UXTW #3]
+            add     x0, x19, #16
+            ; byrRegs +[x0]
+            ldr     x22, [x0, w20, UXTW #3]
+            ; gcrRegs +[x22]
+            ldrsb   wzr, [x22]
+            mov     x23, xzr
             ; gcrRegs +[x23]
-            ldrsb   wzr, [x23]
-            mov     x24, xzr
-            ; gcrRegs +[x24]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
+            ; byrRegs -[x0]
             bl      <unknown method>
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [x23, #0x08]
+            ldr     x0, [x22, #0x08]
             ; gcrRegs +[x0]
-            ldr     w1, [x23, #0x14]
+            ldr     w1, [x22, #0x14]
             sub     w1, w1, #1
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
             bls     G_M10734_IG09
-                       ;; size=52 bbWeight=2.23 PerfScore 45.73
-G_M10734_IG08:        ; bbWeight=0.90, gcrefRegs=800001 {x0 x23}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x24]
+                       ;; size=60 bbWeight=2.23 PerfScore 53.54
+G_M10734_IG08:        ; bbWeight=0.90, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x23]
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ubfiz   x2, x1, #3, #32
-            ldr     x24, [x0, x2]
-            ; gcrRegs +[x24]
+            ldr     x23, [x0, x2]
+            ; gcrRegs +[x23]
             str     xzr, [x0, x2]
-            str     w1, [x23, #0x14]
+            str     w1, [x22, #0x14]
                        ;; size=20 bbWeight=0.90 PerfScore 5.85
-G_M10734_IG09:        ; bbWeight=2.23, gcrefRegs=1800000 {x23 x24}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG09:        ; bbWeight=2.23, gcrefRegs=C80000 {x19 x22 x23}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
-            mov     x0, x23
+            mov     x0, x22
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0 x23]
+            ; gcrRegs -[x0 x22]
             ; gcr arg pop 0
-            cbnz    x24, G_M10734_IG15
+            cbnz    x23, G_M10734_IG15
                        ;; size=12 bbWeight=2.23 PerfScore 5.58
-G_M10734_IG10:        ; bbWeight=1.38, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
-            ; gcrRegs -[x24]
+G_M10734_IG10:        ; bbWeight=1.38, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[x23]
             add     w20, w20, #1
-            cmp     w22, w20
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w20
             bne     G_M10734_IG12
-                       ;; size=12 bbWeight=1.38 PerfScore 2.77
-G_M10734_IG11:        ; bbWeight=0.17, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+                       ;; size=16 bbWeight=1.38 PerfScore 6.92
+G_M10734_IG11:        ; bbWeight=0.17, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             mov     w20, wzr
                        ;; size=4 bbWeight=0.17 PerfScore 0.08
-G_M10734_IG12:        ; bbWeight=2.38, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
+G_M10734_IG12:        ; bbWeight=2.38, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     w21, w21, #1
-            cmp     w22, w21
+            ldr     w0, [x19, #0x08]
+            cmp     w0, w21
             bgt     G_M10734_IG07
-                       ;; size=12 bbWeight=2.38 PerfScore 4.77
+                       ;; size=16 bbWeight=2.38 PerfScore 11.92
 G_M10734_IG13:        ; bbWeight=0.15, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x19]
+            ; gcrRegs -[x19]
             mov     x0, xzr
                        ;; size=4 bbWeight=0.15 PerfScore 0.08
 G_M10734_IG14:        ; bbWeight=0.15, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.15 PerfScore 0.77
-G_M10734_IG15:        ; bbWeight=0.85, gcVars=0000000000000000 {}, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x24]
-            mov     x0, x24
+                       ;; size=20 bbWeight=0.15 PerfScore 0.92
+G_M10734_IG15:        ; bbWeight=0.85, gcVars=0000000000000000 {}, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[x23]
+            mov     x0, x23
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.85 PerfScore 0.42
 G_M10734_IG16:        ; bbWeight=0.85, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x30]
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=20 bbWeight=0.85 PerfScore 4.23
+                       ;; size=20 bbWeight=0.85 PerfScore 5.08
 G_M10734_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[x0 x24]
+            ; gcrRegs -[x0 x23]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
@@ -186,7 +188,7 @@ G_M10734_IG18:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             b       G_M10734_IG03
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 328, prolog size 20, PerfScore 102.28, instruction count 82, allocated bytes for code 328 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
+Total bytes of code 344, prolog size 20, PerfScore 122.40, instruction count 86, allocated bytes for code 344 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -197,7 +199,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 82 (0x00052) Actual length = 328 (0x000148)
+  Function Length   : 86 (0x00056) Actual length = 344 (0x000158)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -208,10 +210,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D1 07       save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
     E6          save_next
-    E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
-    E4          end
 

librariestestsnotieredcompilation.run.osx.arm64.Release.mch

-4 (-2.94%) : 143744.dasm - System.SpanTests.ReadOnlySpanTests+<>cDisplayClass21_0:b9():this (FullOpts)

@@ -35,24 +35,24 @@
 ;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V25 tmp24        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp25        [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V27 tmp26        [V27,T07] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V28 tmp27        [V28,T03] (  2,  2   )     int  ->   x2         "Inline stloc first use temp"
+;* V27 tmp26        [V27,T06] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V28 tmp27        [V28,T03] (  3,  3   )     int  ->   x1         "Inline stloc first use temp"
 ;* V29 tmp28        [V29    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp29        [V30    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp30        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp31        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp32        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V02._value (fldOffset=0x0)" P-INDEP
-;* V34 tmp33        [V34,T08] (  0,  0   )     int  ->  zero-ref    "field V04._value (fldOffset=0x0)" P-INDEP
+;* V34 tmp33        [V34,T07] (  0,  0   )     int  ->  zero-ref    "field V04._value (fldOffset=0x0)" P-INDEP
 ;* V35 tmp34        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V05._value (fldOffset=0x0)" P-INDEP
 ;* V36 tmp35        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V06.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V37 tmp36        [V37,T09] (  0,  0   )     int  ->  zero-ref    "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V37 tmp36        [V37,T08] (  0,  0   )     int  ->  zero-ref    "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V38 tmp37        [V38    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp38        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V40 tmp39        [V40    ] (  0,  0   )     int  ->  zero-ref    "field V08._value (fldOffset=0x0)" P-INDEP
 ;* V41 tmp40        [V41    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V42 tmp41        [V42    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V43 tmp42        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V10.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V44 tmp43        [V44,T10] (  0,  0   )     int  ->  zero-ref    "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V44 tmp43        [V44,T09] (  0,  0   )     int  ->  zero-ref    "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V45 tmp44        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V11.Item1 (fldOffset=0x0)" P-INDEP
 ;* V46 tmp45        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V11.Item2 (fldOffset=0x4)" P-INDEP
 ;* V47 tmp46        [V47    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
@@ -67,9 +67,8 @@
 ;* V56 tmp55        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V21._value (fldOffset=0x0)" P-INDEP
 ;* V57 tmp56        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V22._value (fldOffset=0x0)" P-INDEP
 ;* V58 tmp57        [V58    ] (  0,  0   )     int  ->  zero-ref    "field V26.Item1 (fldOffset=0x0)" P-INDEP
-;  V59 tmp58        [V59,T05] (  2,  2   )     int  ->   x1         "field V26.Item2 (fldOffset=0x4)" P-INDEP
-;  V60 cse0         [V60,T04] (  3,  3   )     int  ->   x1         "CSE - moderate"
-;  V61 cse1         [V61,T06] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
+;  V59 tmp58        [V59,T04] (  2,  2   )     int  ->   x1         "field V26.Item2 (fldOffset=0x4)" P-INDEP
+;  V60 cse0         [V60,T05] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -84,11 +83,10 @@ G_M60991_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     w0, [x0, #0x08]
             ; gcrRegs -[x0]
             sxtw    w1, w0
-            sxtw    w2, w1
-            cmp     w2, w0
+            cmp     w1, w0
             bhi     G_M60991_IG06
             tbz     w1, #31, G_M60991_IG04
-                       ;; size=32 bbWeight=1 PerfScore 10.50
+                       ;; size=28 bbWeight=1 PerfScore 10.00
 G_M60991_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -124,7 +122,7 @@ G_M60991_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 136, prolog size 8, PerfScore 17.75, instruction count 34, allocated bytes for code 136 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
+Total bytes of code 132, prolog size 8, PerfScore 17.25, instruction count 33, allocated bytes for code 132 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -135,7 +133,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
+  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-2.24%) : 291488.dasm - System.Threading.Channels.Tests.ChannelTests+TestChannelWriter1[int]:WaitToWriteAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask1[ubyte]:this (FullOpts)

@@ -11,26 +11,26 @@
 ;  V00 this         [V00,T00] (  5,  4.50)     ref  ->   x0         this class-hnd single-def <System.Threading.Channels.Tests.ChannelTests+TestChannelWriter`1[int]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Threading.CancellationToken>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03    ] (  5,  5   )  struct (16) [fp+0x38]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+;  V03 tmp1         [V03    ] (  5,  5   )  struct (16) [fp+0x30]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
 ;  V04 tmp2         [V04,T09] (  2,  2   )     ref  ->   x1         class-hnd single-def "dup spill" <System.Func`2[System.Threading.Tasks.Task,ubyte]>
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;  V07 tmp5         [V07,T08] (  4,  2   )     ref  ->   x1        
-;  V08 tmp6         [V08    ] (  5,  5   )  struct (16) [fp+0x28]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+;  V08 tmp6         [V08    ] (  5,  5   )  struct (16) [fp+0x20]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
 ;  V09 tmp7         [V09,T01] (  5,  5   )     ref  ->   x1         class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Threading.Tasks.Task,ubyte]>
-;  V10 tmp8         [V10    ] (  5,  5   )  struct (16) [fp+0x18]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+;  V10 tmp8         [V10    ] (  5,  5   )  struct (16) [fp+0x10]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte]>
 ;* V12 tmp10        [V12    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V13 tmp11        [V13,T24] (  2,  1   )     ref  ->   x0         single-def
+;  V13 tmp11        [V13,T23] (  2,  1   )     ref  ->   x0         single-def
 ;* V14 tmp12        [V14    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[ubyte]>
 ;* V15 tmp13        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V16 tmp14        [V16    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V17 tmp15        [V17,T25] (  2,  1   )     ref  ->  x21         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+;  V17 tmp15        [V17,T24] (  2,  1   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V18 tmp16        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;  V19 tmp17        [V19,T10] (  2,  2   )     ref  ->  x19         class-hnd single-def "Inlining Arg" <System.TimeProvider>
 ;* V20 tmp18        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V21 tmp19        [V21,T03] (  3,  3   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V22 tmp20        [V22,T30] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;  V21 tmp19        [V21,T03] (  3,  3   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V22 tmp20        [V22,T29] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V23 tmp21        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V24 tmp22        [V24    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V25 tmp23        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -70,24 +70,24 @@
 ;  V59 tmp57        [V59,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[ubyte]>
 ;* V60 tmp58        [V60    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte]>
 ;* V61 tmp59        [V61    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V62 tmp60        [V62,T26] (  2,  1   )     ref  ->   x0         single-def
+;  V62 tmp60        [V62,T25] (  2,  1   )     ref  ->   x0         single-def
 ;* V63 tmp61        [V63    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[ubyte]>
 ;  V64 tmp62        [V64,T07] (  1,  1   )     ref  ->   x1         single-def "field V01._source (fldOffset=0x0)" P-INDEP
-;  V65 tmp63        [V65,T12] (  2,  1.50)     ref  ->  [fp+0x38]  do-not-enreg[] single-def "field V03._obj (fldOffset=0x0)" P-DEP
-;  V66 tmp64        [V66,T15] (  2,  1.50)   short  ->  [fp+0x40]  do-not-enreg[] single-def "field V03._token (fldOffset=0x8)" P-DEP
-;  V67 tmp65        [V67,T16] (  2,  1.50)   ubyte  ->  [fp+0x42]  do-not-enreg[] single-def "field V03._result (fldOffset=0xa)" P-DEP
-;  V68 tmp66        [V68,T17] (  2,  1.50)   ubyte  ->  [fp+0x43]  do-not-enreg[] single-def "field V03._continueOnCapturedContext (fldOffset=0xb)" P-DEP
-;  V69 tmp67        [V69,T13] (  2,  1.50)     ref  ->  [fp+0x28]  do-not-enreg[] single-def "field V08._obj (fldOffset=0x0)" P-DEP
-;  V70 tmp68        [V70,T18] (  2,  1.50)   short  ->  [fp+0x30]  do-not-enreg[] single-def "field V08._token (fldOffset=0x8)" P-DEP
-;  V71 tmp69        [V71,T19] (  2,  1.50)   ubyte  ->  [fp+0x32]  do-not-enreg[] single-def "field V08._result (fldOffset=0xa)" P-DEP
-;  V72 tmp70        [V72,T20] (  2,  1.50)   ubyte  ->  [fp+0x33]  do-not-enreg[] single-def "field V08._continueOnCapturedContext (fldOffset=0xb)" P-DEP
-;  V73 tmp71        [V73,T14] (  2,  1.50)     ref  ->  [fp+0x18]  do-not-enreg[] single-def "field V10._obj (fldOffset=0x0)" P-DEP
-;  V74 tmp72        [V74,T21] (  2,  1.50)   short  ->  [fp+0x20]  do-not-enreg[] single-def "field V10._token (fldOffset=0x8)" P-DEP
-;  V75 tmp73        [V75,T22] (  2,  1.50)   ubyte  ->  [fp+0x22]  do-not-enreg[] single-def "field V10._result (fldOffset=0xa)" P-DEP
-;  V76 tmp74        [V76,T23] (  2,  1.50)   ubyte  ->  [fp+0x23]  do-not-enreg[] single-def "field V10._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+;  V65 tmp63        [V65,T11] (  2,  1.50)     ref  ->  [fp+0x30]  do-not-enreg[] single-def "field V03._obj (fldOffset=0x0)" P-DEP
+;  V66 tmp64        [V66,T14] (  2,  1.50)   short  ->  [fp+0x38]  do-not-enreg[] single-def "field V03._token (fldOffset=0x8)" P-DEP
+;  V67 tmp65        [V67,T15] (  2,  1.50)   ubyte  ->  [fp+0x3A]  do-not-enreg[] single-def "field V03._result (fldOffset=0xa)" P-DEP
+;  V68 tmp66        [V68,T16] (  2,  1.50)   ubyte  ->  [fp+0x3B]  do-not-enreg[] single-def "field V03._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+;  V69 tmp67        [V69,T12] (  2,  1.50)     ref  ->  [fp+0x20]  do-not-enreg[] single-def "field V08._obj (fldOffset=0x0)" P-DEP
+;  V70 tmp68        [V70,T17] (  2,  1.50)   short  ->  [fp+0x28]  do-not-enreg[] single-def "field V08._token (fldOffset=0x8)" P-DEP
+;  V71 tmp69        [V71,T18] (  2,  1.50)   ubyte  ->  [fp+0x2A]  do-not-enreg[] single-def "field V08._result (fldOffset=0xa)" P-DEP
+;  V72 tmp70        [V72,T19] (  2,  1.50)   ubyte  ->  [fp+0x2B]  do-not-enreg[] single-def "field V08._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+;  V73 tmp71        [V73,T13] (  2,  1.50)     ref  ->  [fp+0x10]  do-not-enreg[] single-def "field V10._obj (fldOffset=0x0)" P-DEP
+;  V74 tmp72        [V74,T20] (  2,  1.50)   short  ->  [fp+0x18]  do-not-enreg[] single-def "field V10._token (fldOffset=0x8)" P-DEP
+;  V75 tmp73        [V75,T21] (  2,  1.50)   ubyte  ->  [fp+0x1A]  do-not-enreg[] single-def "field V10._result (fldOffset=0xa)" P-DEP
+;  V76 tmp74        [V76,T22] (  2,  1.50)   ubyte  ->  [fp+0x1B]  do-not-enreg[] single-def "field V10._continueOnCapturedContext (fldOffset=0xb)" P-DEP
 ;* V77 tmp75        [V77    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V15._source (fldOffset=0x0)" P-INDEP
 ;* V78 tmp76        [V78    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V16._source (fldOffset=0x0)" P-INDEP
-;* V79 tmp77        [V79,T29] (  0,  0   )     ref  ->  zero-ref    single-def "field V18._source (fldOffset=0x0)" P-INDEP
+;* V79 tmp77        [V79,T28] (  0,  0   )     ref  ->  zero-ref    single-def "field V18._source (fldOffset=0x0)" P-INDEP
 ;* V80 tmp78        [V80    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V24._source (fldOffset=0x0)" P-DEP
 ;* V81 tmp79        [V81    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V32._node (fldOffset=0x0)" P-DEP
 ;* V82 tmp80        [V82    ] (  0,  0   )    long  ->  zero-ref    single-def "field V32._id (fldOffset=0x8)" P-DEP
@@ -96,24 +96,22 @@
 ;* V85 tmp83        [V85    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V51._node (fldOffset=0x0)" P-INDEP
 ;* V86 tmp84        [V86    ] (  0,  0   )    long  ->  zero-ref    single-def "field V51._id (fldOffset=0x8)" P-INDEP
 ;  V87 tmp85        [V87,T06] (  3,  3   )     ref  ->   x0         single-def "argument with side effect"
-;* V88 cse0         [V88,T31] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
-;  V89 cse1         [V89,T27] (  2,  1   )    long  ->   x0         "CSE - moderate"
+;* V88 cse0         [V88,T30] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
+;  V89 cse1         [V89,T26] (  2,  1   )    long  ->   x0         "CSE - moderate"
 ;  V90 cse2         [V90,T02] (  6,  3   )    long  ->  x19         multi-def "CSE - aggressive"
-;  V91 cse3         [V91,T11] (  3,  1.50)    long  ->  x20         "CSE - conservative"
-;  V92 rat0         [V92,T28] (  2,  1   )    long  ->   x0         "Spilling to split statement for tree"
+;  V91 rat0         [V91,T27] (  2,  1   )    long  ->   x0         "Spilling to split statement for tree"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 48
 
 G_M56691_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x60]!
-            stp     x19, x20, [sp, #0x48]
-            str     x21, [sp, #0x58]
+            stp     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x40]
             mov     fp, sp
-            add     x9, fp, #24
+            add     x9, fp, #16
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     xzr, xzr, [x9, #0x20]
-                       ;; size=32 bbWeight=1 PerfScore 6.50
+                       ;; size=28 bbWeight=1 PerfScore 5.50
 G_M56691_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldp     w2, w1, [x0, #0x10]
@@ -135,21 +133,20 @@ G_M56691_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
             movk    x19, #1 LSL #32
             ldr     x0, [x19, #0xD1FFAB1E]
             ; gcrRegs +[x0]
-            str     x0, [fp, #0x18]    // [V73 tmp71]
-            strb    wzr, [fp, #0x22]   // [V75 tmp73]
+            str     x0, [fp, #0x10]    // [V73 tmp71]
+            strb    wzr, [fp, #0x1A]   // [V75 tmp73]
             mov     w0, #1
             ; gcrRegs -[x0]
-            strb    w0, [fp, #0x23]    // [V76 tmp74]
-            strh    wzr, [fp, #0x20]   // [V74 tmp72]
-            ldp     x0, x1, [fp, #0x18]    // [V10 tmp8], [V10 tmp8+0x08]
+            strb    w0, [fp, #0x1B]    // [V76 tmp74]
+            strh    wzr, [fp, #0x18]   // [V74 tmp72]
+            ldp     x0, x1, [fp, #0x10]    // [V10 tmp8], [V10 tmp8+0x08]
             ; gcrRegs +[x0]
                        ;; size=72 bbWeight=0.50 PerfScore 13.50
 G_M56691_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x58]
-            ldp     x19, x20, [sp, #0x48]
-            ldp     fp, lr, [sp], #0x60
+            ldp     x19, x20, [sp, #0x40]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 G_M56691_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0]
             movz    x0, #0xD1FFAB1E
@@ -167,14 +164,13 @@ G_M56691_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             movk    x19, #1 LSL #32
             ldr     x19, [x19]
             ; gcrRegs +[x19]
-            movz    x20, #0xD1FFAB1E
-            movk    x20, #0xD1FFAB1E LSL #16
-            movk    x20, #1 LSL #32
-            add     x0, x20, #0xD1FFAB1E
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
-            mov     x21, x0
-            ; gcrRegs +[x21]
+            mov     x20, x0
+            ; gcrRegs +[x20]
             mov     x2, x19
             ; gcrRegs +[x2]
             mov     w1, #1
@@ -195,7 +191,9 @@ G_M56691_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldr     x1, [x0]
             ; gcrRegs +[x1]
             cbnz    x1, G_M56691_IG09
-            mov     x0, x20
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs -[x1] +[x0]
             mov     x1, x0
@@ -206,9 +204,9 @@ G_M56691_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldr     x15, [x14]
             ; gcrRegs +[x15]
             cbnz    x15, G_M56691_IG08
-                       ;; size=140 bbWeight=0.50 PerfScore 15.25
+                       ;; size=144 bbWeight=0.50 PerfScore 15.50
 G_M56691_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0-x1 x15 x21]
+            ; gcrRegs -[x0-x1 x15 x20]
             movz    x0, #0xD1FFAB1E      // code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -216,8 +214,8 @@ G_M56691_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             blr     x0
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M56691_IG08:        ; bbWeight=0.50, gcrefRegs=208002 {x1 x15 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x1 x15 x21]
+G_M56691_IG08:        ; bbWeight=0.50, gcrefRegs=108002 {x1 x15 x20}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x1 x15 x20]
             add     x14, x1, #8
             ; byrRegs +[x14]
             bl      CORINFO_HELP_ASSIGN_REF
@@ -235,31 +233,30 @@ G_M56691_IG08:        ; bbWeight=0.50, gcrefRegs=208002 {x1 x15 x21}, byrefRegs=
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
                        ;; size=44 bbWeight=0.50 PerfScore 3.50
-G_M56691_IG09:        ; bbWeight=0.50, gcrefRegs=200002 {x1 x21}, byrefRegs=0000 {}, byref, isz
-            mov     x0, x21
+G_M56691_IG09:        ; bbWeight=0.50, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x20
             ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:ContinueWith[ubyte](System.Func`2[System.Threading.Tasks.Task,ubyte]):System.Threading.Tasks.Task`1[ubyte]:this
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x1 x21]
+            ; gcrRegs -[x1 x20]
             cbz     x0, G_M56691_IG14
-            str     x0, [fp, #0x28]    // [V69 tmp67]
-            strb    wzr, [fp, #0x32]   // [V71 tmp69]
+            str     x0, [fp, #0x20]    // [V69 tmp67]
+            strb    wzr, [fp, #0x2A]   // [V71 tmp69]
             mov     w0, #1
             ; gcrRegs -[x0]
-            strb    w0, [fp, #0x33]    // [V72 tmp70]
-            strh    wzr, [fp, #0x30]   // [V70 tmp68]
-            ldp     x0, x1, [fp, #0x28]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    w0, [fp, #0x2B]    // [V72 tmp70]
+            strh    wzr, [fp, #0x28]   // [V70 tmp68]
+            ldp     x0, x1, [fp, #0x20]    // [V08 tmp6], [V08 tmp6+0x08]
             ; gcrRegs +[x0]
                        ;; size=52 bbWeight=0.50 PerfScore 7.25
 G_M56691_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x58]
-            ldp     x19, x20, [sp, #0x48]
-            ldp     fp, lr, [sp], #0x60
+            ldp     x19, x20, [sp, #0x40]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 G_M56691_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             movz    x19, #0xD1FFAB1E
@@ -267,21 +264,20 @@ G_M56691_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x19, #1 LSL #32
             ldr     x0, [x19, #0xD1FFAB1E]
             ; gcrRegs +[x0]
-            str     x0, [fp, #0x38]    // [V65 tmp63]
-            strb    wzr, [fp, #0x42]   // [V67 tmp65]
+            str     x0, [fp, #0x30]    // [V65 tmp63]
+            strb    wzr, [fp, #0x3A]   // [V67 tmp65]
             mov     w0, #1
             ; gcrRegs -[x0]
-            strb    w0, [fp, #0x43]    // [V68 tmp66]
-            strh    wzr, [fp, #0x40]   // [V66 tmp64]
-            ldp     x0, x1, [fp, #0x38]    // [V03 tmp1], [V03 tmp1+0x08]
+            strb    w0, [fp, #0x3B]    // [V68 tmp66]
+            strh    wzr, [fp, #0x38]   // [V66 tmp64]
+            ldp     x0, x1, [fp, #0x30]    // [V03 tmp1], [V03 tmp1+0x08]
             ; gcrRegs +[x0]
...

-4 (-0.77%) : 1876.dasm - Xunit.Sdk.TestFramework+d__13:MoveNext():this (FullOpts)

@@ -15,7 +15,7 @@
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V07 tmp2         [V07,T17] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V07 tmp2         [V07,T16] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
 ;  V10 tmp5         [V10,T07] (  2,  2   )     ref  ->  x21         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
@@ -23,7 +23,7 @@
 ;  V12 tmp7         [V12,T03] (  2,  4   )     ref  ->  x20         class-hnd single-def "Inlining Arg" <System.TimeProvider>
 ;* V13 tmp8         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
 ;  V14 tmp9         [V14,T01] (  3,  6   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V15 tmp10        [V15,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;* V15 tmp10        [V15,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V16 tmp11        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V18 tmp13        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -72,7 +72,7 @@
 ;  V61 tmp56        [V61    ] (  6,  6   )     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V03.m_task (fldOffset=0x0)" P-DEP
 ;* V62 tmp57        [V62    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._source (fldOffset=0x0)" P-INDEP
 ;* V63 tmp58        [V63    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V09._source (fldOffset=0x0)" P-INDEP
-;* V64 tmp59        [V64,T14] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._source (fldOffset=0x0)" P-INDEP
+;* V64 tmp59        [V64,T13] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._source (fldOffset=0x0)" P-INDEP
 ;* V65 tmp60        [V65    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V17._source (fldOffset=0x0)" P-DEP
 ;* V66 tmp61        [V66    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V25._node (fldOffset=0x0)" P-DEP
 ;* V67 tmp62        [V67    ] (  0,  0   )    long  ->  zero-ref    single-def "field V25._id (fldOffset=0x8)" P-DEP
@@ -82,11 +82,10 @@
 ;* V71 tmp66        [V71    ] (  0,  0   )    long  ->  zero-ref    single-def "field V44._id (fldOffset=0x8)" P-INDEP
 ;  V72 tmp67        [V72,T08] (  2,  2   )     ref  ->  x21         single-def "field V51.m_task (fldOffset=0x0)" P-INDEP
 ;  V73 tmp68        [V73,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V74 PSPSym       [V74,T16] (  1,  1   )    long  ->  [fp+0x20]  do-not-enreg[V] "PSPSym"
+;  V74 PSPSym       [V74,T15] (  1,  1   )    long  ->  [fp+0x20]  do-not-enreg[V] "PSPSym"
 ;  V75 cse0         [V75,T10] (  2,  2   )    long  ->   x1         "CSE - aggressive"
 ;  V76 cse1         [V76,T11] (  2,  2   )    long  ->   x1         "CSE - aggressive"
-;  V77 cse2         [V77,T12] (  2,  2   )    long  ->   x1         "CSE - conservative"
-;  V78 rat0         [V78,T13] (  2,  2   )    long  ->   x1         "Spilling to split statement for tree"
+;  V77 rat0         [V77,T12] (  2,  2   )    long  ->   x1         "Spilling to split statement for tree"
 ;
 ; Lcl frame size = 24
 
@@ -125,10 +124,9 @@ G_M64987_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             movk    x1, #1 LSL #32
             ldr     x20, [x1]
             ; gcrRegs +[x20]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #1 LSL #32
-            mov     x0, x1
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -184,7 +182,7 @@ G_M64987_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcrRegs -[x1]
             ; gcr arg pop 0
             b       G_M64987_IG11
-                       ;; size=168 bbWeight=1 PerfScore 42.50
+                       ;; size=164 bbWeight=1 PerfScore 42.00
 G_M64987_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19]
             mov     x0, x1
@@ -305,7 +303,7 @@ G_M64987_IG14:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 520, prolog size 32, PerfScore 111.51, instruction count 130, allocated bytes for code 520 (MethodHash=cff40224) for method Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)
+Total bytes of code 516, prolog size 32, PerfScore 111.01, instruction count 129, allocated bytes for code 516 (MethodHash=cff40224) for method Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -316,7 +314,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 110 (0x0006e) Actual length = 440 (0x0001b8)
+  Function Length   : 109 (0x0006d) Actual length = 436 (0x0001b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+0.43%) : 15380.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Text.TextSpan]:Rent(int):Microsoft.CodeAnalysis.Text.TextSpan[]:this (FullOpts)

@@ -13,14 +13,14 @@
 ;  V02 loc0         [V02,T15] (  8,  4.50)     ref  ->  x21         class-hnd exact single-def <<unknown class>>
 ;  V03 loc1         [V03,T10] ( 14,  7   )     ref  ->  x23         class-hnd <Microsoft.CodeAnalysis.Text.TextSpan[]>
 ;  V04 loc2         [V04,T14] (  9,  5   )     int  ->  x22        
-;  V05 loc3         [V05,T17] (  5,  3.50)     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V06 loc4         [V06,T32] (  3,  1.50)     ref  ->   x0         class-hnd exact single-def <<unknown class>>
-;  V07 loc5         [V07,T33] (  3,  1.50)     ref  ->   x0         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
-;  V08 loc6         [V08,T35] (  3,  1.50)     int  ->  x24        
+;  V05 loc3         [V05,T16] (  5,  3.50)     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V06 loc4         [V06,T31] (  3,  1.50)     ref  ->   x0         class-hnd exact single-def <<unknown class>>
+;  V07 loc5         [V07,T32] (  3,  1.50)     ref  ->   x0         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
+;  V08 loc6         [V08,T34] (  3,  1.50)     int  ->  x24        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T22] (  2,  2   )     int  ->  x20         "impAppendStmt"
-;  V11 tmp2         [V11,T23] (  2,  2   )     int  ->  x20         "impAppendStmt"
-;  V12 tmp3         [V12,T24] (  2,  2   )     int  ->   x3         "impAppendStmt"
+;  V10 tmp1         [V10,T21] (  2,  2   )     int  ->  x20         "impAppendStmt"
+;  V11 tmp2         [V11,T22] (  2,  2   )     int  ->  x20         "impAppendStmt"
+;  V12 tmp3         [V12,T23] (  2,  2   )     int  ->   x3         "impAppendStmt"
 ;* V13 tmp4         [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
@@ -31,65 +31,63 @@
 ;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T39] (  2,  1   )     int  ->   x5        
+;  V23 tmp14        [V23,T38] (  2,  1   )     int  ->   x5        
 ;* V24 tmp15        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <Microsoft.CodeAnalysis.Text.TextSpan[]>
-;  V25 tmp16        [V25,T25] (  2,  2   )     int  ->  x20         "impAppendStmt"
-;  V26 tmp17        [V26,T26] (  2,  2   )     int  ->  x24         "impAppendStmt"
+;  V25 tmp16        [V25,T24] (  2,  2   )     int  ->  x20         "impAppendStmt"
+;  V26 tmp17        [V26,T25] (  2,  2   )     int  ->  x24         "impAppendStmt"
 ;* V27 tmp18        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <Microsoft.CodeAnalysis.Text.TextSpan[]>
-;  V28 tmp19        [V28,T27] (  2,  2   )     int  ->  x20         "impAppendStmt"
-;  V29 tmp20        [V29,T28] (  2,  2   )     int  ->  x24         "impAppendStmt"
+;  V28 tmp19        [V28,T26] (  2,  2   )     int  ->  x20         "impAppendStmt"
+;  V29 tmp20        [V29,T27] (  2,  2   )     int  ->  x24         "impAppendStmt"
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V32 tmp23        [V32,T34] (  3,  1.50)     ref  ->  x23         class-hnd "Inline return value spill temp" <System.Array>
-;  V33 tmp24        [V33,T16] (  3,  4.50)     ref  ->  x23         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V32 tmp23        [V32,T33] (  3,  1.50)     ref  ->  x23         class-hnd "Inline return value spill temp" <System.Array>
+;  V33 tmp24        [V33,T02] (  7, 16.50)     ref  ->  x23         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;  V34 tmp25        [V34,T01] (  7, 22   )     int  ->  x20         "Inline stloc first use temp"
 ;  V35 tmp26        [V35,T04] (  4, 12   )     int  ->  x24         "Inline stloc first use temp"
 ;* V36 tmp27        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
 ;* V37 tmp28        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Array>
-;  V38 tmp29        [V38,T02] (  2, 16   )     int  ->  x20         "dup spill"
+;  V38 tmp29        [V38,T03] (  2, 16   )     int  ->  x20         "dup spill"
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V40 tmp31        [V40,T42] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
-;  V41 tmp32        [V41,T18] (  4,  3   )     int  ->  x24         "dup spill"
+;  V40 tmp31        [V40,T41] (  3,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V41 tmp32        [V41,T17] (  4,  3   )     int  ->  x24         "dup spill"
 ;* V42 tmp33        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V43 tmp34        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V44 tmp35        [V44,T06] (  4, 10.50)     ref  ->  x27         class-hnd "Inline stloc first use temp" <System.Array>
-;  V45 tmp36        [V45,T00] (  7, 52   )     ref  ->  x26         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V44 tmp35        [V44,T06] (  4, 10.50)     ref  ->  x26         class-hnd "Inline stloc first use temp" <System.Array>
+;  V45 tmp36        [V45,T00] (  7, 52   )     ref  ->  x25         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V46 tmp37        [V46,T07] (  3, 10   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V47 tmp38        [V47,T05] (  4, 12   )     int  ->   x1         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T36] (  3,  1.50)     int  ->  x20         "Inline stloc first use temp"
+;  V48 tmp39        [V48,T35] (  3,  1.50)     int  ->  x20         "Inline stloc first use temp"
 ;* V49 tmp40        [V49    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Text.TextSpan[]>
 ;* V50 tmp41        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V51 tmp42        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <Microsoft.CodeAnalysis.Text.TextSpan[]>
-;  V52 tmp43        [V52,T43] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V53 tmp44        [V53,T29] (  2,  2   )     int  ->   x3         "argument with side effect"
-;  V54 tmp45        [V54,T30] (  2,  2   )     int  ->   x3         "argument with side effect"
-;  V55 tmp46        [V55,T31] (  2,  2   )     int  ->   x3         "argument with side effect"
-;  V56 cse0         [V56,T37] (  3,  1.50)    long  ->   x0         "CSE - moderate"
-;  V57 cse1         [V57,T38] (  3,  1.50)    long  ->   x1         "CSE - moderate"
-;  V58 cse2         [V58,T40] (  2,  1   )     int  ->   x1         "CSE - moderate"
+;  V52 tmp43        [V52,T42] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V53 tmp44        [V53,T28] (  2,  2   )     int  ->   x3         "argument with side effect"
+;  V54 tmp45        [V54,T29] (  2,  2   )     int  ->   x3         "argument with side effect"
+;  V55 tmp46        [V55,T30] (  2,  2   )     int  ->   x3         "argument with side effect"
+;  V56 cse0         [V56,T36] (  3,  1.50)    long  ->   x0         "CSE - moderate"
+;  V57 cse1         [V57,T37] (  3,  1.50)    long  ->   x1         "CSE - moderate"
+;  V58 cse2         [V58,T39] (  2,  1   )     int  ->   x1         "CSE - moderate"
 ;  V59 cse3         [V59,T13] (  3,  6   )    long  ->   x2         "CSE - aggressive"
-;  V60 cse4         [V60,T03] (  5, 12   )     int  ->  x25         "CSE - aggressive"
-;  V61 cse5         [V61,T08] (  2,  8   )     int  ->   x2         "CSE - aggressive"
-;  V62 cse6         [V62,T12] (  3,  6   )   byref  ->   x0         "CSE - aggressive"
-;  V63 cse7         [V63,T41] (  2,  1   )     int  ->   x1         "CSE - moderate"
-;  V64 rat0         [V64,T21] (  3,  2   )    long  ->   x0         "TLS field access"
-;  V65 rat1         [V65,T19] (  3,  3   )    long  ->   x0         "TLS access"
-;  V66 rat2         [V66,T20] (  3,  3   )    long  ->   x0         "ThreadStaticBlockBase access"
+;  V60 cse4         [V60,T08] (  2,  8   )     int  ->   x2         "CSE - aggressive"
+;  V61 cse5         [V61,T12] (  3,  6   )   byref  ->   x0         "CSE - aggressive"
+;  V62 cse6         [V62,T40] (  2,  1   )     int  ->   x1         "CSE - moderate"
+;  V63 rat0         [V63,T20] (  3,  2   )    long  ->   x0         "TLS field access"
+;  V64 rat1         [V64,T18] (  3,  3   )    long  ->   x0         "TLS access"
+;  V65 rat2         [V65,T19] (  3,  3   )    long  ->   x0         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M38226_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x60]!
-            stp     x19, x20, [sp, #0x18]
-            stp     x21, x22, [sp, #0x28]
-            stp     x23, x24, [sp, #0x38]
-            stp     x25, x26, [sp, #0x48]
-            str     x27, [sp, #0x58]
+            stp     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x10]
+            stp     x21, x22, [sp, #0x20]
+            stp     x23, x24, [sp, #0x30]
+            stp     x25, x26, [sp, #0x40]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     w20, w1
-                       ;; size=36 bbWeight=1 PerfScore 7.50
+                       ;; size=32 bbWeight=1 PerfScore 6.50
 G_M38226_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -158,14 +156,13 @@ G_M38226_IG04:        ; bbWeight=0.50, gcrefRegs=800000 {x23}, byrefRegs=0000 {}
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M38226_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x27, [sp, #0x58]
-            ldp     x25, x26, [sp, #0x48]
-            ldp     x23, x24, [sp, #0x38]
-            ldp     x21, x22, [sp, #0x28]
-            ldp     x19, x20, [sp, #0x18]
-            ldp     fp, lr, [sp], #0x60
+            ldp     x25, x26, [sp, #0x40]
+            ldp     x23, x24, [sp, #0x30]
+            ldp     x21, x22, [sp, #0x20]
+            ldp     x19, x20, [sp, #0x10]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=28 bbWeight=0.50 PerfScore 4.00
+                       ;; size=24 bbWeight=0.50 PerfScore 3.00
 G_M38226_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0 x23] +[x19 x21]
             ldr     x0, [x19, #0x10]
@@ -221,79 +218,83 @@ G_M38226_IG09:        ; bbWeight=0, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=00
 G_M38226_IG10:        ; bbWeight=0, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz
             and     w20, w0, #7
             mov     w24, wzr
-            ldr     w25, [x23, #0x08]
-            cmp     w25, #0
+            ldr     w0, [x23, #0x08]
+            cmp     w0, #0
             ble     G_M38226_IG16
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+            ldr     wzr, [x23, #0x08]
+                       ;; size=24 bbWeight=0 PerfScore 0.00
 G_M38226_IG11:        ; bbWeight=4, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz
-            cmp     w20, w25
+            ldr     w0, [x23, #0x08]
+            cmp     w20, w0
             bhs     G_M38226_IG24
             add     x0, x23, #16
             ; byrRegs +[x0]
-            ldr     x26, [x0, w20, UXTW #3]
+            ldr     x25, [x0, w20, UXTW #3]
+            ; gcrRegs +[x25]
+            ldrsb   wzr, [x25]
+            mov     x26, xzr
             ; gcrRegs +[x26]
-            ldrsb   wzr, [x26]
-            mov     x27, xzr
-            ; gcrRegs +[x27]
-            mov     x0, x26
+            mov     x0, x25
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
             bl      <unknown method>
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            ldr     x0, [x26, #0x08]
+            ldr     x0, [x25, #0x08]
             ; gcrRegs +[x0]
-            ldr     w1, [x26, #0x14]
+            ldr     w1, [x25, #0x14]
             sub     w1, w1, #1
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
             bls     G_M38226_IG13
-                       ;; size=56 bbWeight=4 PerfScore 84.00
-G_M38226_IG12:        ; bbWeight=2, gcrefRegs=4A80001 {x0 x19 x21 x23 x26}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x27]
+                       ;; size=60 bbWeight=4 PerfScore 96.00
+G_M38226_IG12:        ; bbWeight=2, gcrefRegs=2A80001 {x0 x19 x21 x23 x25}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x26]
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ubfiz   x2, x1, #3, #32
-            ldr     x27, [x0, x2]
-            ; gcrRegs +[x27]
+            ldr     x26, [x0, x2]
+            ; gcrRegs +[x26]
             str     xzr, [x0, x2]
-            str     w1, [x26, #0x14]
+            str     w1, [x25, #0x14]
                        ;; size=20 bbWeight=2 PerfScore 13.00
-G_M38226_IG13:        ; bbWeight=4, gcrefRegs=CA80000 {x19 x21 x23 x26 x27}, byrefRegs=0000 {}, byref, isz
+G_M38226_IG13:        ; bbWeight=4, gcrefRegs=6A80000 {x19 x21 x23 x25 x26}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
-            mov     x0, x26
+            mov     x0, x25
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0 x26]
+            ; gcrRegs -[x0 x25]
             ; gcr arg pop 0
-            cbnz    x27, G_M38226_IG17
+            cbnz    x26, G_M38226_IG17
             add     w20, w20, #1
-            cmp     w25, w20
+            ldr     w0, [x23, #0x08]
+            cmp     w0, w20
             bne     G_M38226_IG15
-                       ;; size=24 bbWeight=4 PerfScore 18.00
+                       ;; size=28 bbWeight=4 PerfScore 30.00
 G_M38226_IG14:        ; bbWeight=2, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x27]
+            ; gcrRegs -[x26]
             mov     w20, wzr
                        ;; size=4 bbWeight=2 PerfScore 1.00
 G_M38226_IG15:        ; bbWeight=4, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref, isz
             add     w24, w24, #1
-            cmp     w25, w24
+            ldr     w0, [x23, #0x08]
+            cmp     w0, w24
             bgt     G_M38226_IG11
-                       ;; size=12 bbWeight=4 PerfScore 8.00
+                       ;; size=16 bbWeight=4 PerfScore 20.00
 G_M38226_IG16:        ; bbWeight=0.50, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x23]
             mov     x23, xzr
             ; gcrRegs +[x23]
             b       G_M38226_IG18
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M38226_IG17:        ; bbWeight=0.50, gcrefRegs=8280000 {x19 x21 x27}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x23] +[x27]
-            mov     x23, x27
+G_M38226_IG17:        ; bbWeight=0.50, gcrefRegs=4280000 {x19 x21 x26}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x23] +[x26]
+            mov     x23, x26
             ; gcrRegs +[x23]
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
...

+8 (+0.77%) : 239213.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTestsDefault+CollectionTestsContextDefault:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)

@@ -15,7 +15,7 @@
 ;  V04 loc1         [V04,T02] (  4, 12   )     ref  ->  x21         class-hnd exact <System.String>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Queue`1+Enumerator[System.String]>
-;  V07 tmp2         [V07,T26] (  2,  0   )     int  ->   x0        
+;  V07 tmp2         [V07,T25] (  2,  0   )     int  ->   x0        
 ;  V08 tmp3         [V08,T23] (  3,  0   )     ref  ->  x21        
 ;  V09 tmp4         [V09,T24] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V10 tmp5         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -68,8 +68,7 @@
 ;  V57 PSPSym       [V57,T20] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;  V58 cse0         [V58,T16] (  4,  2   )     int  ->   x0         "CSE - moderate"
 ;  V59 cse1         [V59,T17] (  4,  2   )     int  ->   x0         "CSE - moderate"
-;  V60 cse2         [V60,T25] (  3,  0   )     ref  ->   x1         "CSE - aggressive"
-;  V61 cse3         [V61,T13] (  3,  5   )    long  ->  x20         "CSE - aggressive"
+;  V60 cse2         [V60,T13] (  3,  5   )    long  ->  x20         "CSE - aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -306,19 +305,19 @@ G_M57976_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             cset    x0, eq
             tst     w0, #255
             bne     G_M57976_IG20
+            movz    x0, #8
+            movk    x0, #155 LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #8
             movk    x1, #155 LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=68 bbWeight=0 PerfScore 0.00
+                       ;; size=76 bbWeight=0 PerfScore 0.00
 G_M57976_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [fp, #0x34]    // [V39 tmp34]
             cmn     w0, #1
@@ -485,7 +484,7 @@ G_M57976_IG33:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1036, prolog size 44, PerfScore 274.00, instruction count 259, allocated bytes for code 1036 (MethodHash=13341d87) for method System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
+Total bytes of code 1044, prolog size 44, PerfScore 274.00, instruction count 261, allocated bytes for code 1044 (MethodHash=13341d87) for method System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -496,7 +495,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 247 (0x000f7) Actual length = 988 (0x0003dc)
+  Function Length   : 249 (0x000f9) Actual length = 996 (0x0003e4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+2.02%) : 100890.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  x24        
 ;  V10 loc7         [V10,T07] (  3, 12   )     ref  ->   x2         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T25] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T26] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T27] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V20 tmp9         [V20,T31] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T32] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T28] (  3,  0   )     int  ->  x23         "Inlining Arg"
-;  V31 tmp20        [V31,T33] (  2,  0   )   byref  ->  x22         "Inlining Arg"
+;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  x23         "Inlining Arg"
+;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  x22         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T34] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T23] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T29] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V44 tmp33        [V44,T35] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T36] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T24] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T30] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V55 tmp44        [V55,T37] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T38] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  x21         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T05] (  4, 12   )     int  ->  x25         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.46)     ref  ->  x19         class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T08] (  3, 12   )     ref  ->   x2         "arr expr"
-;  V98 tmp87        [V98,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V99 tmp88        [V99,T40] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V100 cse0        [V100,T18] (  3,  3   )     ref  ->   x0         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  4,  9   )   byref  ->  x23         hoist multi-def "CSE - aggressive"
 ;  V102 cse2        [V102,T09] (  6, 10   )     int  ->  x22         multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T20] ( 12,  0   )     ref  ->   x1         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -409,19 +408,19 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG30
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG31
@@ -472,19 +471,19 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w23, w1, w0
             tbz     w23, #31, G_M45430_IG33
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=104 bbWeight=0 PerfScore 0.00
+                       ;; size=112 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
             cbz     w23, G_M45430_IG34
             movz    x0, #0xD1FFAB1E
@@ -580,19 +579,19 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG38
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG39
@@ -654,19 +653,19 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M45430_IG43
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #1 LSL #32
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M45430_IG44
             movz    x0, #0xD1FFAB1E
@@ -728,7 +727,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1588, prolog size 48, PerfScore 291.15, instruction count 397, allocated bytes for code 1588 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1620, prolog size 48, PerfScore 291.15, instruction count 405, allocated bytes for code 1620 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -739,7 +738,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 397 (0x0018d) Actual length = 1588 (0x000634)
+  Function Length   : 405 (0x00195) Actual length = 1620 (0x000654)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.osx.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.osx.arm64.checked.mch 35 12 23 0 -488 +280
benchmarks.run_tiered.osx.arm64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.osx.arm64.checked.mch 70 13 54 3 -104 +332
libraries.crossgen2.osx.arm64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.osx.arm64.checked.mch 5 0 5 0 -0 +112
libraries_tests.run.osx.arm64.Release.mch 442 99 302 41 -1,092 +2,544
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 36 26 5 5 -124 +52
realworld.run.osx.arm64.checked.mch 0 0 0 0 -0 +0
588 150 389 49 -1,808 +3,320

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.osx.arm64.checked.mch 24,855 4 24,851 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.osx.arm64.checked.mch 84,589 48,412 36,177 84 (0.10%) 85 (0.10%)
benchmarks.run_tiered.osx.arm64.checked.mch 48,261 37,318 10,943 0 (0.00%) 0 (0.00%)
coreclr_tests.run.osx.arm64.checked.mch 585,893 357,177 228,716 326 (0.06%) 328 (0.06%)
libraries.crossgen2.osx.arm64.checked.mch 233,353 15 233,338 0 (0.00%) 0 (0.00%)
libraries.pmi.osx.arm64.checked.mch 314,713 18 314,695 0 (0.00%) 3 (0.00%)
libraries_tests.run.osx.arm64.Release.mch 637,357 466,371 170,986 2,509 (0.39%) 2,509 (0.39%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 302,467 21,558 280,909 6 (0.00%) 8 (0.00%)
realworld.run.osx.arm64.checked.mch 31,544 3 31,541 0 (0.00%) 0 (0.00%)
2,263,032 930,876 1,332,156 2,925 (0.13%) 2,933 (0.13%)

jit-analyze output

benchmarks.run_pgo.osx.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 34569912 (overridden on cmd)
Total bytes of diff: 34569704 (overridden on cmd)
Total bytes of delta: -208 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -5104 : 37383.dasm (-100.00 % of base)
       -5024 : 31955.dasm (-100.00 % of base)
       -5024 : 68634.dasm (-100.00 % of base)
       -5024 : 59348.dasm (-100.00 % of base)
       -4356 : 58605.dasm (-100.00 % of base)
       -4144 : 58660.dasm (-100.00 % of base)
       -3888 : 60756.dasm (-100.00 % of base)
       -3764 : 58662.dasm (-100.00 % of base)
       -3128 : 37380.dasm (-100.00 % of base)
       -3128 : 59345.dasm (-100.00 % of base)
       -3128 : 31952.dasm (-100.00 % of base)
       -2832 : 58665.dasm (-100.00 % of base)
       -2200 : 27458.dasm (-100.00 % of base)
       -2200 : 61286.dasm (-100.00 % of base)
       -1928 : 37371.dasm (-100.00 % of base)
       -1912 : 33895.dasm (-100.00 % of base)
       -1908 : 67336.dasm (-100.00 % of base)
       -1908 : 31900.dasm (-100.00 % of base)
       -1884 : 60244.dasm (-100.00 % of base)
       -1884 : 81979.dasm (-100.00 % of base)

35 total files with Code Size differences (35 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -5104 (-100.00 % of base) : 37383.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
       -5024 (-100.00 % of base) : 31955.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
       -5024 (-100.00 % of base) : 68634.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
       -5024 (-100.00 % of base) : 59348.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
       -4356 (-100.00 % of base) : 58605.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BinaryOperatorOverloadResolution(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult:this (Tier1)
       -4144 (-100.00 % of base) : 58660.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,byref,ubyte):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
       -3888 (-100.00 % of base) : 60756.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -3764 (-100.00 % of base) : 58662.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyImplicitConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
       -3128 (-100.00 % of base) : 37380.dasm - System.Security.Cryptography.X509Certificates.AppleCertificatePal:EnsureCertData():this (Tier1)
       -3128 (-100.00 % of base) : 59345.dasm - System.Security.Cryptography.X509Certificates.AppleCertificatePal:EnsureCertData():this (Tier1)
       -3128 (-100.00 % of base) : 31952.dasm - System.Security.Cryptography.X509Certificates.AppleCertificatePal:EnsureCertData():this (Tier1)
       -2832 (-100.00 % of base) : 58665.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyImplicitBuiltInConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
       -2200 (-100.00 % of base) : 27458.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -2200 (-100.00 % of base) : 61286.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -1928 (-100.00 % of base) : 37371.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
       -1912 (-100.00 % of base) : 33895.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
       -1908 (-100.00 % of base) : 67336.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
       -1908 (-100.00 % of base) : 31900.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
       -1884 (-100.00 % of base) : 60244.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
       -1884 (-100.00 % of base) : 81979.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)

Top method improvements (percentages):
       -4356 (-100.00 % of base) : 58605.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BinaryOperatorOverloadResolution(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult:this (Tier1)
       -4144 (-100.00 % of base) : 58660.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,byref,ubyte):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
       -2832 (-100.00 % of base) : 58665.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyImplicitBuiltInConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
       -3764 (-100.00 % of base) : 58662.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:ClassifyImplicitConversionFromExpression(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.Conversion:this (Tier1)
       -1692 (-100.00 % of base) : 77153.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -3888 (-100.00 % of base) : 60756.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
        -888 (-100.00 % of base) : 75306.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
       -1576 (-100.00 % of base) : 75321.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
       -1908 (-100.00 % of base) : 67336.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
       -1912 (-100.00 % of base) : 33895.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
       -1928 (-100.00 % of base) : 37371.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
       -1908 (-100.00 % of base) : 31900.dasm - System.Formats.Asn1.AsnWriter:WriteBitStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte],int):this (Tier1)
       -1392 (-100.00 % of base) : 33924.dasm - System.Formats.Asn1.AsnWriter:WriteNonNegativeIntegerCore(System.Formats.Asn1.Asn1Tag,ulong):this (Tier1)
       -1392 (-100.00 % of base) : 44348.dasm - System.Formats.Asn1.AsnWriter:WriteNonNegativeIntegerCore(System.Formats.Asn1.Asn1Tag,ulong):this (Tier1)
       -1388 (-100.00 % of base) : 31671.dasm - System.Formats.Asn1.AsnWriter:WriteNonNegativeIntegerCore(System.Formats.Asn1.Asn1Tag,ulong):this (Tier1)
       -1388 (-100.00 % of base) : 62160.dasm - System.Formats.Asn1.AsnWriter:WriteNonNegativeIntegerCore(System.Formats.Asn1.Asn1Tag,ulong):this (Tier1)
       -1400 (-100.00 % of base) : 84562.dasm - System.Formats.Asn1.AsnWriter:WriteNonNegativeIntegerCore(System.Formats.Asn1.Asn1Tag,ulong):this (Tier1)
       -1816 (-100.00 % of base) : 31610.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
       -1820 (-100.00 % of base) : 33882.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
       -1472 (-100.00 % of base) : 31613.dasm - System.Formats.Asn1.AsnWriter:WriteOctetStringCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ubyte]):this (Tier1)

35 total methods with Code Size differences (35 improved, 0 regressed).


coreclr_tests.run.osx.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 485471332 (overridden on cmd)
Total bytes of diff: 485471560 (overridden on cmd)
Total bytes of delta: 228 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -7568 : 384979.dasm (-100.00 % of base)
       -7568 : 382810.dasm (-100.00 % of base)
       -2928 : 383655.dasm (-100.00 % of base)
       -2776 : 387514.dasm (-100.00 % of base)
       -2196 : 275155.dasm (-100.00 % of base)
       -2168 : 261382.dasm (-100.00 % of base)
       -2164 : 507318.dasm (-100.00 % of base)
       -2060 : 249352.dasm (-100.00 % of base)
       -2060 : 249358.dasm (-100.00 % of base)
       -1952 : 382598.dasm (-100.00 % of base)
       -1952 : 384923.dasm (-100.00 % of base)
       -1824 : 485803.dasm (-100.00 % of base)
       -1588 : 488213.dasm (-100.00 % of base)
       -1524 : 260586.dasm (-100.00 % of base)
       -1368 : 228205.dasm (-100.00 % of base)
       -1348 : 1191.dasm (-100.00 % of base)
       -1312 : 247572.dasm (-100.00 % of base)
       -1312 : 168306.dasm (-100.00 % of base)
       -1292 : 1913.dasm (-100.00 % of base)
       -1284 : 1916.dasm (-100.00 % of base)

52 total files with Code Size differences (52 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -7568 (-100.00 % of base) : 384979.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
       -7568 (-100.00 % of base) : 382810.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
       -2928 (-100.00 % of base) : 383655.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
       -2776 (-100.00 % of base) : 387514.dasm - Gen`1[System.__Canon]:ThreadPoolTest() (Tier1)
       -2196 (-100.00 % of base) : 275155.dasm - System.Text.RegularExpressions.RegexReplacement:ReplaceSimpleText(System.Text.RegularExpressions.Regex,System.String,System.String,int,int):System.String (Tier1)
       -2168 (-100.00 % of base) : 261382.dasm - BinderTracingTests.HandlerInvocation:ToString():System.String:this (Tier1)
       -2164 (-100.00 % of base) : 507318.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
       -2060 (-100.00 % of base) : 249352.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -2060 (-100.00 % of base) : 249358.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -1952 (-100.00 % of base) : 382598.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -1952 (-100.00 % of base) : 384923.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -1824 (-100.00 % of base) : 485803.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
       -1588 (-100.00 % of base) : 488213.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1524 (-100.00 % of base) : 260586.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
       -1368 (-100.00 % of base) : 228205.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (Instrumented Tier1)
       -1348 (-100.00 % of base) : 1191.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Instrumented Tier1)
       -1312 (-100.00 % of base) : 247572.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Instrumented Tier1)
       -1312 (-100.00 % of base) : 168306.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
       -1292 (-100.00 % of base) : 1913.dasm - System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this (Instrumented Tier1)
       -1284 (-100.00 % of base) : 1885.dasm - System.Buffers.SharedArrayPool`1[int]:Return(int[],ubyte):this (Instrumented Tier1)

Top method improvements (percentages):
       -2168 (-100.00 % of base) : 261382.dasm - BinderTracingTests.HandlerInvocation:ToString():System.String:this (Tier1)
       -2164 (-100.00 % of base) : 507318.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
        -392 (-100.00 % of base) : 249231.dasm - Fourier:Run():double:this (Tier1)
       -2776 (-100.00 % of base) : 387514.dasm - Gen`1[System.__Canon]:ThreadPoolTest() (Tier1)
       -2060 (-100.00 % of base) : 249352.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -2060 (-100.00 % of base) : 249358.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -1952 (-100.00 % of base) : 382598.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -1952 (-100.00 % of base) : 384923.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -2928 (-100.00 % of base) : 383655.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.TypeValidationChecker+<CanSkipValidationInstance>d__7:MoveNext():this (Tier1)
       -7568 (-100.00 % of base) : 384979.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
       -7568 (-100.00 % of base) : 382810.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier1-OSR)
        -808 (-100.00 % of base) : 381894.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
        -376 (-100.00 % of base) : 300284.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
        -476 (-100.00 % of base) : 249011.dasm - NumericSortRect:Run():double:this (Tier1)
       -1824 (-100.00 % of base) : 485803.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
        -332 (-100.00 % of base) : 296299.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
        -332 (-100.00 % of base) : 525747.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
       -1048 (-100.00 % of base) : 407272.dasm - System.Buffers.SharedArrayPool`1[byte]:Return(byte[],ubyte):this (FullOpts)
       -1312 (-100.00 % of base) : 247572.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Instrumented Tier1)
       -1284 (-100.00 % of base) : 1885.dasm - System.Buffers.SharedArrayPool`1[int]:Return(int[],ubyte):this (Instrumented Tier1)


libraries.pmi.osx.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 79954016 (overridden on cmd)
Total bytes of diff: 79954128 (overridden on cmd)
Total bytes of delta: 112 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -1692 : 204429.dasm (-100.00 % of base)
       -1584 : 204430.dasm (-100.00 % of base)
        -940 : 301015.dasm (-100.00 % of base)
        -940 : 308181.dasm (-100.00 % of base)
        -940 : 309763.dasm (-100.00 % of base)

5 total files with Code Size differences (5 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -1692 (-100.00 % of base) : 204429.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1584 (-100.00 % of base) : 204430.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -940 (-100.00 % of base) : 301015.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
        -940 (-100.00 % of base) : 308181.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
        -940 (-100.00 % of base) : 309763.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)

Top method improvements (percentages):
        -940 (-100.00 % of base) : 301015.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
        -940 (-100.00 % of base) : 308181.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
        -940 (-100.00 % of base) : 309763.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts)
       -1692 (-100.00 % of base) : 204429.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1584 (-100.00 % of base) : 204430.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

5 total methods with Code Size differences (5 improved, 0 regressed).


libraries_tests.run.osx.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 312684004 (overridden on cmd)
Total bytes of diff: 312685456 (overridden on cmd)
Total bytes of delta: 1452 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
      -19724 : 57298.dasm (-100.00 % of base)
      -19272 : 66126.dasm (-100.00 % of base)
      -16872 : 57310.dasm (-100.00 % of base)
      -11000 : 466890.dasm (-100.00 % of base)
      -10908 : 476069.dasm (-100.00 % of base)
       -9548 : 57335.dasm (-100.00 % of base)
       -8192 : 57348.dasm (-100.00 % of base)
       -7312 : 597566.dasm (-100.00 % of base)
       -5856 : 489716.dasm (-100.00 % of base)
       -5636 : 587992.dasm (-100.00 % of base)
       -4968 : 393286.dasm (-100.00 % of base)
       -4120 : 351036.dasm (-100.00 % of base)
       -4028 : 57333.dasm (-100.00 % of base)
       -3940 : 486058.dasm (-100.00 % of base)
       -3856 : 466916.dasm (-100.00 % of base)
       -3616 : 59913.dasm (-100.00 % of base)
       -3584 : 637870.dasm (-100.00 % of base)
       -3420 : 382878.dasm (-100.00 % of base)
       -3324 : 488736.dasm (-100.00 % of base)
       -3092 : 391005.dasm (-100.00 % of base)

94 total files with Code Size differences (94 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
      -19724 (-100.00 % of base) : 57298.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
      -19272 (-100.00 % of base) : 66126.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -16872 (-100.00 % of base) : 57310.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
      -11000 (-100.00 % of base) : 466890.dasm - System.Numerics.BigIntegerCalculator:PowCore(System.Span`1[uint],int,System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint],System.Span`1[uint]) (Tier1)
      -10908 (-100.00 % of base) : 476069.dasm - System.Numerics.BigIntegerCalculator:PowCore(System.Span`1[uint],int,System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint],System.Span`1[uint]) (Tier1)
       -9548 (-100.00 % of base) : 57335.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -8192 (-100.00 % of base) : 57348.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
       -7312 (-100.00 % of base) : 597566.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -5856 (-100.00 % of base) : 489716.dasm - System.Security.Cryptography.Tests.HashAlgorithmTestDriver`1[System.__Canon]:VerifyTransformBlockHash(ubyte[],ubyte[],ubyte[],ubyte[]):this (Tier1)
       -5636 (-100.00 % of base) : 587992.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1-OSR)
       -4968 (-100.00 % of base) : 393286.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -4120 (-100.00 % of base) : 351036.dasm - System.Security.Cryptography.X509Certificates.CertificateData:.ctor(ubyte[]):this (Tier1)
       -4028 (-100.00 % of base) : 57333.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ObjectCreationOverloadResolution(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],byref):this (Tier1)
       -3940 (-100.00 % of base) : 486058.dasm - System.IO.File:ReadAllBytesUnknownLength(Microsoft.Win32.SafeHandles.SafeFileHandle):ubyte[] (Tier1)
       -3856 (-100.00 % of base) : 466916.dasm - System.Security.Cryptography.KeyFormatHelper:WriteEncryptedPkcs8(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Formats.Asn1.AsnWriter,System.Security.Cryptography.PbeParameters):System.Formats.Asn1.AsnWriter (Tier1)
       -3616 (-100.00 % of base) : 59913.dasm - Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:.ctor(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzersOptions):this (Tier1)
       -3584 (-100.00 % of base) : 637870.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
       -3420 (-100.00 % of base) : 382878.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
       -3324 (-100.00 % of base) : 488736.dasm - System.Security.Cryptography.X509Certificates.CertificateRequest:LoadSigningRequestPem(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.HashAlgorithmName,int,System.Security.Cryptography.RSASignaturePadding):System.Security.Cryptography.X509Certificates.CertificateRequest (Tier1)
       -3092 (-100.00 % of base) : 391005.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)

Top method improvements (percentages):
       -4968 (-100.00 % of base) : 393286.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -3092 (-100.00 % of base) : 391005.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -1964 (-100.00 % of base) : 475609.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal:OpenAlgorithm(System.String):System.Security.Cryptography.SymmetricAlgorithm (Tier1)
       -2020 (-100.00 % of base) : 608088.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
        -972 (-100.00 % of base) : 88679.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (Tier1)
      -19724 (-100.00 % of base) : 57298.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
      -19272 (-100.00 % of base) : 66126.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -16872 (-100.00 % of base) : 57310.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
       -9548 (-100.00 % of base) : 57335.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -8192 (-100.00 % of base) : 57348.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
       -4028 (-100.00 % of base) : 57333.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ObjectCreationOverloadResolution(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],byref):this (Tier1)
        -628 (-100.00 % of base) : 58186.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:get_DeclaredAccessibility():int:this (Tier1)
        -276 (-100.00 % of base) : 90383.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
       -7312 (-100.00 % of base) : 597566.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
        -580 (-100.00 % of base) : 159169.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
       -3616 (-100.00 % of base) : 59913.dasm - Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:.ctor(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzersOptions):this (Tier1)
       -5636 (-100.00 % of base) : 587992.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1-OSR)
        -720 (-100.00 % of base) : 127240.dasm - Microsoft.Extensions.Primitives.ChangeToken+ChangeTokenRegistration`1[System.__Canon]:RegisterChangeTokenCallback(Microsoft.Extensions.Primitives.IChangeToken):this (Tier1)
        -928 (-100.00 % of base) : 429963.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Tier1)
        -928 (-100.00 % of base) : 526859.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)


librariestestsnotieredcompilation.run.osx.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 160787844 (overridden on cmd)
Total bytes of diff: 160787772 (overridden on cmd)
Total bytes of delta: -72 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -5352 : 36636.dasm (-100.00 % of base)
       -2412 : 23862.dasm (-100.00 % of base)
       -2260 : 210797.dasm (-100.00 % of base)
       -2040 : 142803.dasm (-100.00 % of base)
       -2000 : 298336.dasm (-100.00 % of base)
       -1588 : 100890.dasm (-100.00 % of base)
       -1544 : 151717.dasm (-100.00 % of base)
       -1448 : 193736.dasm (-100.00 % of base)
       -1364 : 195564.dasm (-100.00 % of base)
       -1136 : 258870.dasm (-100.00 % of base)
       -1120 : 193919.dasm (-100.00 % of base)
       -1116 : 195518.dasm (-100.00 % of base)
       -1104 : 119155.dasm (-100.00 % of base)
       -1072 : 195545.dasm (-100.00 % of base)
       -1068 : 193934.dasm (-100.00 % of base)
       -1036 : 239213.dasm (-100.00 % of base)
       -1028 : 9792.dasm (-100.00 % of base)
       -1000 : 127198.dasm (-100.00 % of base)
        -992 : 15381.dasm (-100.00 % of base)
        -980 : 9840.dasm (-100.00 % of base)

36 total files with Code Size differences (36 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -5352 (-100.00 % of base) : 36636.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
       -2412 (-100.00 % of base) : 23862.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<ReuseInstanceWithResets_Success>d__0:MoveNext():this (FullOpts)
       -2260 (-100.00 % of base) : 210797.dasm - System.Threading.Tests.PeriodicTimerTests+<WaitForNextTickAsync_TimerFires_ReturnsTrue>d__6:MoveNext():this (FullOpts)
       -2040 (-100.00 % of base) : 142803.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
       -2000 (-100.00 % of base) : 298336.dasm - System.Threading.Tests.BarrierTests+<RemovingWaitingParticipants>d__11:MoveNext():this (FullOpts)
       -1588 (-100.00 % of base) : 100890.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1544 (-100.00 % of base) : 151717.dasm - System.Net.Tests.FileWebRequestTestBase+<BeginGetResponse_OnNonexistentFile_ShouldNotCrashApplication>d__8:MoveNext():this (FullOpts)
       -1448 (-100.00 % of base) : 193736.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
       -1364 (-100.00 % of base) : 195564.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
       -1136 (-100.00 % of base) : 258870.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<>c__DisplayClass3_0+<<WriteAsyncEnumerable_CancellationToken_IsPassedToAsyncEnumerator>g__CreateEnumerable|0>d:MoveNext():this (FullOpts)
       -1120 (-100.00 % of base) : 193919.dasm - XmlDictionaryWriterTest+MemoryStreamWithBlockAsync+<WriteAsync>d__2:MoveNext():this (FullOpts)
       -1116 (-100.00 % of base) : 195518.dasm - XmlDictionaryWriterTest+AsyncMemoryStream+<WriteAsync>d__0:MoveNext():this (FullOpts)
       -1104 (-100.00 % of base) : 119155.dasm - System.Globalization.Tests.CultureInfoAsync+<>c__DisplayClass1_0+<<TestCurrentCulturesWithAwait>g__MainAsync|0>d:MoveNext():this (FullOpts)
       -1072 (-100.00 % of base) : 195545.dasm - XmlDictionaryWriterTest+MemoryStreamWithBlockAsync+<WriteAsync>d__2:MoveNext():this (FullOpts)
       -1068 (-100.00 % of base) : 193934.dasm - XmlDictionaryWriterTest+AsyncMemoryStream+<WriteAsync>d__0:MoveNext():this (FullOpts)
       -1036 (-100.00 % of base) : 239213.dasm - System.Text.Json.SourceGeneration.Tests.CollectionTests_Default+CollectionTestsContext_Default:StringQueueWrapperSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.StringQueueWrapper):this (FullOpts)
       -1028 (-100.00 % of base) : 9792.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Rent(int):System.Collections.Immutable.ImmutableArray`1[System.__Canon][]:this (FullOpts)
       -1000 (-100.00 % of base) : 127198.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<>c__DisplayClass16_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
        -992 (-100.00 % of base) : 15381.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Text.TextSpan]:Return(Microsoft.CodeAnalysis.Text.TextSpan[],ubyte):this (FullOpts)
        -980 (-100.00 % of base) : 9840.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Return(System.Collections.Immutable.ImmutableArray`1[System.__Canon][],ubyte):this (FullOpts)

Top method improvements (percentages):
       -5352 (-100.00 % of base) : 36636.dasm - Microsoft.DotNet.RemoteExecutor.RemoteInvokeHandle:Dispose(ubyte):this (FullOpts)
        -796 (-100.00 % of base) : 41075.dasm - Microsoft.Extensions.DependencyInjection.HttpClientFactoryServiceCollectionExtensionsTest+<>c+<<AddHttpClient_GetAwaiterAndResult_InSingleThreadedSynchronizationContext_ShouldNotHangs>b__44_3>d:MoveNext():this (FullOpts)
        -940 (-100.00 % of base) : 15380.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Text.TextSpan]:Rent(int):Microsoft.CodeAnalysis.Text.TextSpan[]:this (FullOpts)
        -992 (-100.00 % of base) : 15381.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Text.TextSpan]:Return(Microsoft.CodeAnalysis.Text.TextSpan[],ubyte):this (FullOpts)
       -1028 (-100.00 % of base) : 9792.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Rent(int):System.Collections.Immutable.ImmutableArray`1[System.__Canon][]:this (FullOpts)
        -980 (-100.00 % of base) : 9840.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Return(System.Collections.Immutable.ImmutableArray`1[System.__Canon][],ubyte):this (FullOpts)
        -164 (-100.00 % of base) : 82217.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
        -644 (-100.00 % of base) : 82234.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -224 (-100.00 % of base) : 82299.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
        -668 (-100.00 % of base) : 81068.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -224 (-100.00 % of base) : 82205.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
       -1104 (-100.00 % of base) : 119155.dasm - System.Globalization.Tests.CultureInfoAsync+<>c__DisplayClass1_0+<<TestCurrentCulturesWithAwait>g__MainAsync|0>d:MoveNext():this (FullOpts)
        -952 (-100.00 % of base) : 127616.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<>c__DisplayClass20_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
       -1000 (-100.00 % of base) : 127198.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<>c__DisplayClass16_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
       -1544 (-100.00 % of base) : 151717.dasm - System.Net.Tests.FileWebRequestTestBase+<BeginGetResponse_OnNonexistentFile_ShouldNotCrashApplication>d__8:MoveNext():this (FullOpts)
        -612 (-100.00 % of base) : 23789.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<DisposeAsync>d__8[int]:MoveNext():this (FullOpts)
       -2040 (-100.00 % of base) : 142803.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
        -136 (-100.00 % of base) : 143744.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
        -620 (-100.00 % of base) : 263827.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<<RegressionTest_DisposingEnumeratorOnPendingMoveNextAsyncOperation>g__GetNumbersAsync|20_1>d:MoveNext():this (FullOpts)
       -1136 (-100.00 % of base) : 258870.dasm - System.Text.Json.Serialization.Tests.CollectionTests+<>c__DisplayClass3_0+<<WriteAsyncEnumerable_CancellationToken_IsPassedToAsyncEnumerator>g__CreateEnumerable|0>d:MoveNext():this (FullOpts)

36 total methods with Code Size differences (36 improved, 0 regressed).



windows arm64

Diffs are based on 2,318,296 contexts (931,543 MinOpts, 1,386,753 FullOpts).

MISSED contexts: base: 2,587 (0.11%), diff: 2,598 (0.11%)

Overall (-952 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 47,215,296 +104
coreclr_tests.run.windows.arm64.checked.mch 495,322,244 -296
libraries.pmi.windows.arm64.checked.mch 79,562,252 +104
libraries_tests.run.windows.arm64.Release.mch 309,737,828 -728
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 169,000,724 -136

FullOpts (-952 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 30,964,912 +104
coreclr_tests.run.windows.arm64.checked.mch 156,230,716 -296
libraries.pmi.windows.arm64.checked.mch 79,442,268 +104
libraries_tests.run.windows.arm64.Release.mch 108,156,324 -728
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 155,863,260 -136

Example diffs

benchmarks.run_pgo.windows.arm64.checked.mch

-8 (-0.36%) : 42310.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)

@@ -22,16 +22,16 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V11 tmp2         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V12 tmp3         [V12,T52] (  2,  0.37)     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V13 tmp4         [V13,T71] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V13 tmp4         [V13,T70] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V14 tmp5         [V14,T50] (  3,  0.39)     ref  ->  x24        
 ;  V15 tmp6         [V15,T44] (  2,  0.52)     ref  ->  x26         class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
 ;  V16 tmp7         [V16,T28] (  4,  1.05)    long  ->   x1         "spilling ret_expr"
-;  V17 tmp8         [V17,T70] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V17 tmp8         [V17,T69] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V18 tmp9         [V18    ] (  0,  0   )    long  ->  zero-ref    "guarded devirt return temp"
 ;  V19 tmp10        [V19,T29] (  3,  1.05)     ref  ->   x0         single-def "guarded devirt arg temp"
 ;  V20 tmp11        [V20,T30] (  3,  1.05)    long  ->   x2         "guarded devirt arg temp"
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-;  V22 tmp13        [V22,T74] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
+;  V22 tmp13        [V22,T73] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
 ;* V23 tmp14        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
 ;* V24 tmp15        [V24,T32] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V25 tmp16        [V25,T00] ( 11, 15.49)     ref  ->  x24         class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
 ;  V29 tmp20        [V29,T23] ( 12,  2.21)   byref  ->  registers   "Inline stloc first use temp"
 ;  V30 tmp21        [V30,T25] (  4,  2.04)   byref  ->  x24         "Inline stloc first use temp"
 ;  V31 tmp22        [V31,T26] (  4,  1.90)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V32 tmp23        [V32,T64] (  5,  0   )     int  ->  x27         "Inline stloc first use temp"
-;  V33 tmp24        [V33,T62] (  6,  0   )     int  ->  x28         "Inline stloc first use temp"
-;  V34 tmp25        [V34,T65] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V35 tmp26        [V35,T67] (  4,  0   )     int  ->  [fp+0x54]  "Inline stloc first use temp"
+;  V32 tmp23        [V32,T63] (  5,  0   )     int  ->  x26         "Inline stloc first use temp"
+;  V33 tmp24        [V33,T62] (  6,  0   )     int  ->  x27         "Inline stloc first use temp"
+;  V34 tmp25        [V34,T64] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V35 tmp26        [V35,T66] (  4,  0   )     int  ->  x28         "Inline stloc first use temp"
 ;  V36 tmp27        [V36,T10] (  5,  4.49)     int  ->  x25         "Inline stloc first use temp"
 ;  V37 tmp28        [V37,T07] (  6,  5.80)     int  ->   x0         "Inline stloc first use temp"
 ;  V38 tmp29        [V38,T21] (  3,  2.59)     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
 ;* V50 tmp41        [V50    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V51 tmp42        [V51    ] (  0,  0   )  struct (24) zero-ref    "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V52 tmp43        [V52,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V53 tmp44        [V53,T75] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V53 tmp44        [V53,T74] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V54 tmp45        [V54    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V55 tmp46        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V56 tmp47        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp54        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V64 tmp55        [V64,T66] (  4,  0   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V65 tmp56        [V65,T68] (  4,  0   )     int  ->  [fp+0x50]  spill-single-def "Inlining Arg"
-;  V66 tmp57        [V66,T76] (  2,  0   )    long  ->  [fp+0x48]  spill-single-def "Inlining Arg"
-;  V67 tmp58        [V67,T69] (  4,  0   )     int  ->  [fp+0x44]  spill-single-def "Inline stloc first use temp"
+;  V64 tmp55        [V64,T65] (  4,  0   )     ref  ->  x27         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V65 tmp56        [V65,T67] (  4,  0   )     int  ->  x28         "Inlining Arg"
+;  V66 tmp57        [V66,T75] (  2,  0   )    long  ->  [fp+0x50]  spill-single-def "Inlining Arg"
+;  V67 tmp58        [V67,T68] (  4,  0   )     int  ->  [fp+0x4C]  spill-single-def "Inline stloc first use temp"
 ;* V68 tmp59        [V68    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V69 tmp60        [V69,T31] (  2,  1.05)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V70 tmp61        [V70,T41] (  4,  0.78)     ref  ->  x24        
 ;  V71 tmp62        [V71,T45] (  3,  0.51)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V72 tmp63        [V72    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V73 tmp64        [V73,T77] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
+;  V73 tmp64        [V73,T76] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V74 tmp65        [V74,T22] (  4,  2.29)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V75 tmp66        [V75    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V76 tmp67        [V76,T42] (  2,  0.75)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -97,7 +97,7 @@
 ;  V85 tmp76        [V85,T61] (  2,  0.01)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V86 tmp77        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V87 tmp78        [V87,T53] (  2,  0.37)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V88 tmp79        [V88,T72] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V88 tmp79        [V88,T71] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V89 tmp80        [V89,T08] (  3,  5.77)     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V90 tmp81        [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V91 tmp82        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -116,19 +116,18 @@
 ;  V104 tmp95       [V104,T54] (  4,  0.11)     ref  ->   x8         "field V51.Item1 (fldOffset=0x0)" P-INDEP
 ;  V105 tmp96       [V105,T58] (  2,  0.07)    long  ->   x9         "field V51.Item2 (fldOffset=0x8)" P-INDEP
 ;  V106 tmp97       [V106,T59] (  2,  0.07)     int  ->  x10         "field V51.Item3 (fldOffset=0x10)" P-INDEP
-;  V107 tmp98       [V107    ] (  8,  7.69)  struct (24) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99       [V108,T78] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101      [V110,T79] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V107 tmp98       [V107    ] (  8,  7.69)  struct (24) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99       [V108,T77] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101      [V110,T78] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V111 tmp102      [V111,T46] (  2,  0.40)     ref  ->  x24         single-def "argument with side effect"
 ;  V112 tmp103      [V112,T47] (  2,  0.40)     ref  ->   x2         single-def "argument with side effect"
-;  V113 tmp104      [V113,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V113 tmp104      [V113,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
 ;  V114 tmp105      [V114,T13] (  2,  3.85)     ref  ->   x0         single-def "argument with side effect"
 ;  V115 cse0        [V115,T36] (  3,  0.78)     ref  ->   x0         "CSE - conservative"
 ;  V116 cse1        [V116,T17] (  3,  3.21)     int  ->   x5         hoist "CSE - aggressive"
 ;  V117 cse2        [V117,T20] (  8,  2.88)     ref  ->   x1         multi-def "CSE - moderate"
-;  V118 cse3        [V118,T63] (  6,  0   )    long  ->  registers   multi-def "CSE - conservative"
-;  V119 rat0        [V119,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
+;  V118 rat0        [V118,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 96
 
@@ -140,18 +139,19 @@ G_M61086_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x25, x26, [sp, #0xA0]
             stp     x27, x28, [sp, #0xB0]
             mov     fp, sp
-            add     x9, fp, #16
+            add     x9, fp, #24
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
-            stp     q16, q16, [x9, #0x40]
+            stp     xzr, xzr, [x9, #0x40]
+            str     xzr, [x9, #0x50]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x21, x2
             mov     w22, w3
-                       ;; size=64 bbWeight=1 PerfScore 12.50
+                       ;; size=68 bbWeight=1 PerfScore 13.50
 G_M61086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             bl      <unknown method>
             ; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09:        ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
                        ;; size=24 bbWeight=0 PerfScore 0.00
 G_M61086_IG10:        ; bbWeight=0, nogc, extend
             ldp     x0, x1, [fp, #0x58]
-            stp     x0, x1, [fp, #0x28]
+            stp     x0, x1, [fp, #0x30]
             ldr     x0, [fp, #0x68]
-            str     x0, [fp, #0x38]
+            str     x0, [fp, #0x40]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M61086_IG11:        ; bbWeight=0, isz, extend
             mov     x0, x25
             ; gcrRegs +[x0]
-            add     x1, fp, #40    // [V107 tmp98]
-            movz    x26, #0xD1FFAB1E      // code for <unknown method>
-            movk    x26, #0xD1FFAB1E LSL #16
-            movk    x26, #0xD1FFAB1E LSL #32
-            mov     x11, x26
+            add     x1, fp, #48    // [V107 tmp98]
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #0xD1FFAB1E LSL #32
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w27, w0
-            ldr     x28, [x24, #0x08]
-            ; gcrRegs +[x28]
-            ldr     w1, [x28, #0x08]
-            str     w1, [fp, #0x50]    // [V65 tmp56]
-            ldr     x2, [x24, #0x30]
-            str     x2, [fp, #0x48]    // [V66 tmp57]
+            sxtw    w26, w0
+            ldr     x27, [x24, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w28, [x27, #0x08]
+            ldr     x1, [x24, #0x30]
+            str     x1, [fp, #0x50]    // [V66 tmp57]
             mov     w0, #1
-            movz    x3, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-            blr     x3
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            mov     w0, w27
-            ldr     x2, [fp, #0x48]    // [V66 tmp57]
-            mul     x0, x2, x0
+            mov     w0, w26
+            ldr     x1, [fp, #0x50]    // [V66 tmp57]
+            mul     x0, x1, x0
             lsr     x0, x0, #32
             add     x0, x0, #1
-            ldr     w1, [fp, #0x50]    // [V65 tmp56]
-            mov     w2, w1
-            mul     x0, x0, x2
-            lsr     x2, x0, #32
-            str     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w1, #0
+            mov     w1, w28
+            mul     x0, x0, x1
+            lsr     x1, x0, #32
+            str     w1, [fp, #0x4C]    // [V67 tmp58]
+            cmp     w28, #0
             beq     G_M61086_IG54
-            udiv    w0, w27, w1
-            msub    w0, w0, w1, w27
-            cmp     w0, w2
+            udiv    w0, w26, w28
+            msub    w0, w0, w28, w26
+            cmp     w0, w1
             cset    x0, eq
-            movz    x1, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            ldr     x1, [x1]
-            blr     x1
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            ldr     w0, [x28, #0x08]
-            ldr     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w2, w0
+            ldr     w0, [x27, #0x08]
+            ldr     w28, [fp, #0x4C]   // [V67 tmp58]
+            cmp     w28, w0
             bhs     G_M61086_IG53
-            add     x0, x28, #16
+            add     x0, x27, #16
             ; byrRegs +[x0]
-            ldr     w28, [x0, w2, UXTW #2]
-            ; gcrRegs -[x28]
+            ldr     w27, [x0, w28, UXTW #2]
+            ; gcrRegs -[x27]
             ldr     x24, [x24, #0x10]
-            mov     w3, wzr
-            sub     w28, w28, #1
+            mov     w28, wzr
+            sub     w27, w27, #1
             b       G_M61086_IG55
-                       ;; size=204 bbWeight=0 PerfScore 0.00
+                       ;; size=192 bbWeight=0 PerfScore 0.00
 G_M61086_IG12:        ; bbWeight=0.95, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x25]
             ; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28:        ; bbWeight=0.96, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
             ldr     x0, [x19, #0x90]
             ; gcrRegs +[x0]
             ldrsb   wzr, [x0]
-            stp     x20, x21, [fp, #0x28]  // [V107 tmp98], [V107 tmp98+0x08]
-            str     w22, [fp, #0x38]   // [V107 tmp98+0x10]
-            add     x1, fp, #40    // [V107 tmp98]
+            stp     x20, x21, [fp, #0x30]  // [V107 tmp98], [V107 tmp98+0x08]
+            str     w22, [fp, #0x40]   // [V107 tmp98+0x10]
+            add     x1, fp, #48    // [V107 tmp98]
             mov     x2, x24
             ; gcrRegs +[x2]
...

-8 (-0.36%) : 39639.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)

@@ -22,16 +22,16 @@
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V11 tmp2         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V12 tmp3         [V12,T50] (  2,  0.37)     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V13 tmp4         [V13,T70] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V13 tmp4         [V13,T69] (  2,  0   )     ref  ->  x24         class-hnd exact single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V14 tmp5         [V14,T48] (  3,  0.42)     ref  ->  x24        
 ;  V15 tmp6         [V15,T45] (  2,  0.53)     ref  ->  x26         class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.Symbolic.ISolver`1[ulong]>
 ;  V16 tmp7         [V16,T28] (  4,  1.05)    long  ->   x1         "spilling ret_expr"
-;  V17 tmp8         [V17,T69] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V17 tmp8         [V17,T68] (  3,  0   )     ref  ->  x27         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V18 tmp9         [V18    ] (  0,  0   )    long  ->  zero-ref    "guarded devirt return temp"
 ;  V19 tmp10        [V19,T29] (  3,  1.05)     ref  ->   x0         single-def "guarded devirt arg temp"
 ;  V20 tmp11        [V20,T30] (  3,  1.05)    long  ->   x2         "guarded devirt arg temp"
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
-;  V22 tmp13        [V22,T74] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
+;  V22 tmp13        [V22,T73] (  2,  0   )     int  ->   x0         "guarded devirt return temp"
 ;* V23 tmp14        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Text.RegularExpressions.Symbolic.UInt64Solver>
 ;* V24 tmp15        [V24,T32] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V25 tmp16        [V25,T00] ( 11, 15.59)     ref  ->  x24         class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -41,10 +41,10 @@
 ;  V29 tmp20        [V29,T23] ( 12,  2.15)   byref  ->  registers   "Inline stloc first use temp"
 ;  V30 tmp21        [V30,T25] (  4,  2.03)   byref  ->  x24         "Inline stloc first use temp"
 ;  V31 tmp22        [V31,T26] (  4,  1.92)     ref  ->  x25         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V32 tmp23        [V32,T63] (  5,  0   )     int  ->  x27         "Inline stloc first use temp"
-;  V33 tmp24        [V33,T61] (  6,  0   )     int  ->  x28         "Inline stloc first use temp"
-;  V34 tmp25        [V34,T64] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V35 tmp26        [V35,T66] (  4,  0   )     int  ->  [fp+0x54]  "Inline stloc first use temp"
+;  V32 tmp23        [V32,T62] (  5,  0   )     int  ->  x26         "Inline stloc first use temp"
+;  V33 tmp24        [V33,T61] (  6,  0   )     int  ->  x27         "Inline stloc first use temp"
+;  V34 tmp25        [V34,T63] (  4,  0   )     ref  ->  x24         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V35 tmp26        [V35,T65] (  4,  0   )     int  ->  x28         "Inline stloc first use temp"
 ;  V36 tmp27        [V36,T10] (  5,  4.52)     int  ->  x25         "Inline stloc first use temp"
 ;  V37 tmp28        [V37,T08] (  6,  5.84)     int  ->   x0         "Inline stloc first use temp"
 ;  V38 tmp29        [V38,T21] (  3,  2.60)     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
@@ -62,7 +62,7 @@
 ;* V50 tmp41        [V50    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V51 tmp42        [V51    ] (  0,  0   )  struct (24) zero-ref    "Inlining Arg" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
 ;* V52 tmp43        [V52,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V53 tmp44        [V53,T75] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V53 tmp44        [V53,T74] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V54 tmp45        [V54    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V55 tmp46        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V56 tmp47        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -73,16 +73,16 @@
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp54        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V64 tmp55        [V64,T65] (  4,  0   )     ref  ->  x28         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V65 tmp56        [V65,T67] (  4,  0   )     int  ->  [fp+0x50]  spill-single-def "Inlining Arg"
-;  V66 tmp57        [V66,T76] (  2,  0   )    long  ->  [fp+0x48]  spill-single-def "Inlining Arg"
-;  V67 tmp58        [V67,T68] (  4,  0   )     int  ->  [fp+0x44]  spill-single-def "Inline stloc first use temp"
+;  V64 tmp55        [V64,T64] (  4,  0   )     ref  ->  x27         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V65 tmp56        [V65,T66] (  4,  0   )     int  ->  x28         "Inlining Arg"
+;  V66 tmp57        [V66,T75] (  2,  0   )    long  ->  [fp+0x50]  spill-single-def "Inlining Arg"
+;  V67 tmp58        [V67,T67] (  4,  0   )     int  ->  [fp+0x4C]  spill-single-def "Inline stloc first use temp"
 ;* V68 tmp59        [V68    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V69 tmp60        [V69,T31] (  2,  1.05)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V70 tmp61        [V70,T40] (  4,  0.81)     ref  ->  x24        
 ;  V71 tmp62        [V71,T44] (  3,  0.56)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V72 tmp63        [V72    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V73 tmp64        [V73,T77] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
+;  V73 tmp64        [V73,T76] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V74 tmp65        [V74,T22] (  4,  2.35)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V75 tmp66        [V75    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V76 tmp67        [V76,T42] (  2,  0.73)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
@@ -94,10 +94,10 @@
 ;  V82 tmp73        [V82,T49] (  2,  0.42)   ubyte  ->   x0         "Inline return value spill temp"
 ;  V83 tmp74        [V83,T27] (  3,  1.25)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V84 tmp75        [V84    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V85 tmp76        [V85,T71] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V85 tmp76        [V85,T70] (  2,  0   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V86 tmp77        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V87 tmp78        [V87,T51] (  2,  0.37)     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
-;  V88 tmp79        [V88,T72] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
+;  V88 tmp79        [V88,T71] (  2,  0   )     ref  ->   x2         class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;  V89 tmp80        [V89,T07] (  3,  5.85)     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V90 tmp81        [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]>
 ;* V91 tmp82        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -116,19 +116,18 @@
 ;  V104 tmp95       [V104,T54] (  4,  0.07)     ref  ->   x8         "field V51.Item1 (fldOffset=0x0)" P-INDEP
 ;  V105 tmp96       [V105,T58] (  2,  0.05)    long  ->   x9         "field V51.Item2 (fldOffset=0x8)" P-INDEP
 ;  V106 tmp97       [V106,T59] (  2,  0.05)     int  ->  x10         "field V51.Item3 (fldOffset=0x10)" P-INDEP
-;  V107 tmp98       [V107    ] (  8,  7.80)  struct (24) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V108 tmp99       [V108,T78] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
-;* V110 tmp101      [V110,T79] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V107 tmp98       [V107    ] (  8,  7.80)  struct (24) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V108 tmp99       [V108,T77] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V109 tmp100      [V109    ] (  2,  0   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ValueTuple`3[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],ulong,uint]>
+;* V110 tmp101      [V110,T78] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V111 tmp102      [V111,T52] (  2,  0.36)     ref  ->  x24         single-def "argument with side effect"
 ;  V112 tmp103      [V112,T53] (  2,  0.36)     ref  ->   x2         single-def "argument with side effect"
-;  V113 tmp104      [V113,T73] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V113 tmp104      [V113,T72] (  2,  0   )     ref  ->   x0         single-def "argument with side effect"
 ;  V114 tmp105      [V114,T13] (  2,  3.90)     ref  ->   x0         single-def "argument with side effect"
 ;  V115 cse0        [V115,T41] (  3,  0.79)     ref  ->   x0         "CSE - conservative"
 ;  V116 cse1        [V116,T17] (  3,  3.24)     int  ->   x5         hoist "CSE - aggressive"
 ;  V117 cse2        [V117,T19] (  8,  2.92)     ref  ->   x1         multi-def "CSE - moderate"
-;  V118 cse3        [V118,T62] (  6,  0   )    long  ->  registers   multi-def "CSE - conservative"
-;  V119 rat0        [V119,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
+;  V118 rat0        [V118,T06] (  3,  6   )     int  ->  x26         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 96
 
@@ -140,18 +139,19 @@ G_M61086_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x25, x26, [sp, #0xA0]
             stp     x27, x28, [sp, #0xB0]
             mov     fp, sp
-            add     x9, fp, #16
+            add     x9, fp, #24
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
-            stp     q16, q16, [x9, #0x40]
+            stp     xzr, xzr, [x9, #0x40]
+            str     xzr, [x9, #0x50]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
             ; gcrRegs +[x19]
             mov     x21, x2
             mov     w22, w3
-                       ;; size=64 bbWeight=1 PerfScore 12.50
+                       ;; size=68 bbWeight=1 PerfScore 13.50
 G_M61086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             bl      <unknown method>
             ; gcr arg pop 0
@@ -254,71 +254,68 @@ G_M61086_IG09:        ; bbWeight=0, gcrefRegs=3980000 {x19 x20 x23 x24 x25}, byr
                        ;; size=24 bbWeight=0 PerfScore 0.00
 G_M61086_IG10:        ; bbWeight=0, nogc, extend
             ldp     x0, x1, [fp, #0x58]
-            stp     x0, x1, [fp, #0x28]
+            stp     x0, x1, [fp, #0x30]
             ldr     x0, [fp, #0x68]
-            str     x0, [fp, #0x38]
+            str     x0, [fp, #0x40]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M61086_IG11:        ; bbWeight=0, isz, extend
             mov     x0, x25
             ; gcrRegs +[x0]
-            add     x1, fp, #40    // [V107 tmp98]
-            movz    x26, #0xD1FFAB1E      // code for <unknown method>
-            movk    x26, #0xD1FFAB1E LSL #16
-            movk    x26, #0xD1FFAB1E LSL #32
-            mov     x11, x26
+            add     x1, fp, #48    // [V107 tmp98]
+            movz    x11, #0xD1FFAB1E      // code for <unknown method>
+            movk    x11, #0xD1FFAB1E LSL #16
+            movk    x11, #0xD1FFAB1E LSL #32
             ldr     x2, [x11]
             blr     x2
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            sxtw    w27, w0
-            ldr     x28, [x24, #0x08]
-            ; gcrRegs +[x28]
-            ldr     w1, [x28, #0x08]
-            str     w1, [fp, #0x50]    // [V65 tmp56]
-            ldr     x2, [x24, #0x30]
-            str     x2, [fp, #0x48]    // [V66 tmp57]
+            sxtw    w26, w0
+            ldr     x27, [x24, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w28, [x27, #0x08]
+            ldr     x1, [x24, #0x30]
+            str     x1, [fp, #0x50]    // [V66 tmp57]
             mov     w0, #1
-            movz    x3, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x3, #0xD1FFAB1E LSL #16
-            movk    x3, #0xD1FFAB1E LSL #32
-            ldr     x3, [x3]
-            blr     x3
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            mov     w0, w27
-            ldr     x2, [fp, #0x48]    // [V66 tmp57]
-            mul     x0, x2, x0
+            mov     w0, w26
+            ldr     x1, [fp, #0x50]    // [V66 tmp57]
+            mul     x0, x1, x0
             lsr     x0, x0, #32
             add     x0, x0, #1
-            ldr     w1, [fp, #0x50]    // [V65 tmp56]
-            mov     w2, w1
-            mul     x0, x0, x2
-            lsr     x2, x0, #32
-            str     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w1, #0
+            mov     w1, w28
+            mul     x0, x0, x1
+            lsr     x1, x0, #32
+            str     w1, [fp, #0x4C]    // [V67 tmp58]
+            cmp     w28, #0
             beq     G_M61086_IG53
-            udiv    w0, w27, w1
-            msub    w0, w0, w1, w27
-            cmp     w0, w2
+            udiv    w0, w26, w28
+            msub    w0, w0, w28, w26
+            cmp     w0, w1
             cset    x0, eq
-            movz    x1, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            ldr     x1, [x1]
-            blr     x1
+            movz    x2, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            ldr     x2, [x2]
+            blr     x2
             ; gcr arg pop 0
-            ldr     w0, [x28, #0x08]
-            ldr     w2, [fp, #0x44]    // [V67 tmp58]
-            cmp     w2, w0
+            ldr     w0, [x27, #0x08]
+            ldr     w28, [fp, #0x4C]   // [V67 tmp58]
+            cmp     w28, w0
             bhs     G_M61086_IG52
-            add     x0, x28, #16
+            add     x0, x27, #16
             ; byrRegs +[x0]
-            ldr     w28, [x0, w2, UXTW #2]
-            ; gcrRegs -[x28]
+            ldr     w27, [x0, w28, UXTW #2]
+            ; gcrRegs -[x27]
             ldr     x24, [x24, #0x10]
-            mov     w3, wzr
-            sub     w28, w28, #1
+            mov     w28, wzr
+            sub     w27, w27, #1
             b       G_M61086_IG54
-                       ;; size=204 bbWeight=0 PerfScore 0.00
+                       ;; size=192 bbWeight=0 PerfScore 0.00
 G_M61086_IG12:        ; bbWeight=0.96, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x25]
             ; byrRegs -[x0]
@@ -472,9 +469,9 @@ G_M61086_IG28:        ; bbWeight=0.97, gcrefRegs=1180000 {x19 x20 x24}, byrefReg
             ldr     x0, [x19, #0x90]
             ; gcrRegs +[x0]
             ldrsb   wzr, [x0]
-            stp     x20, x21, [fp, #0x28]  // [V107 tmp98], [V107 tmp98+0x08]
-            str     w22, [fp, #0x38]   // [V107 tmp98+0x10]
-            add     x1, fp, #40    // [V107 tmp98]
+            stp     x20, x21, [fp, #0x30]  // [V107 tmp98], [V107 tmp98+0x08]
...

+16 (+0.38%) : 92042.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+d24[System.Canon]:MoveNext():this (Tier1-OSR)

@@ -30,13 +30,13 @@
 ;* V17 tmp6         [V17    ] (  0,        0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V18 tmp7         [V18    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[System.__Canon]>
 ;* V19 tmp8         [V19    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-;  V20 tmp9         [V20,T119] (  2,        0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V20 tmp9         [V20,T118] (  2,        0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;  V21 tmp10        [V21,T77] (  3,      599.34)     ref  ->   x0         class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
 ;* V22 tmp11        [V22    ] (  0,        0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
-;  V23 tmp12        [V23,T114] (  3,        0   )    long  ->   x1         "spilling helperCall"
+;  V23 tmp12        [V23,T113] (  3,        0   )    long  ->   x1         "spilling helperCall"
 ;* V24 tmp13        [V24    ] (  0,        0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V25 tmp14        [V25    ] (  0,        0   )     int  ->  zero-ref    "dup spill"
-;  V26 tmp15        [V26,T115] (  3,        0   )    long  ->   x1         "spilling helperCall"
+;  V26 tmp15        [V26,T114] (  3,        0   )    long  ->   x1         "spilling helperCall"
 ;  V27 tmp16        [V27,T95] (  3,      199.98)     ref  ->   x1         "guarded devirt return temp"
 ;  V28 tmp17        [V28,T76] (  5,      599.94)     ref  ->   x0         "guarded devirt arg temp"
 ;  V29 tmp18        [V29,T85] (  3,      399.96)     int  ->   x1         "guarded devirt arg temp"
@@ -221,7 +221,7 @@
 ;* V208 tmp197      [V208    ] (  0,        0   )     ref  ->  zero-ref   
 ;  V209 tmp198      [V209,T69] (  2,      798.00)     ref  ->  x15        
 ;  V210 tmp199      [V210,T02] (  8,    22742.99)     int  ->  x26         "Inline stloc first use temp"
-;  V211 tmp200      [V211,T111] (  3,        0   )     ref  ->  x24         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V211 tmp200      [V211,T110] (  3,        0   )     ref  ->  x24         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V212 tmp201      [V212    ] (  0,        0   )     ref  ->  zero-ref   
 ;  V213 tmp202      [V213,T70] (  2,      798.00)     ref  ->  x15        
 ;* V214 tmp203      [V214    ] (  0,        0   )     ref  ->  zero-ref   
@@ -241,11 +241,11 @@
 ;* V228 tmp217      [V228    ] (  0,        0   )     ref  ->  zero-ref   
 ;  V229 tmp218      [V229,T72] (  2,      798.00)     ref  ->  x15        
 ;  V230 tmp219      [V230,T03] (  8,    22742.99)     int  ->  x22         "Inline stloc first use temp"
-;  V231 tmp220      [V231,T112] (  3,        0   )     ref  ->  x20         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V231 tmp220      [V231,T111] (  3,        0   )     ref  ->  x20         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V232 tmp221      [V232    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V233 tmp222      [V233    ] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V234 tmp223      [V234    ] (  0,        0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V235 tmp224      [V235,T113] (  3,        0   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V235 tmp224      [V235,T112] (  3,        0   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V236 tmp225      [V236    ] (  0,        0   )     ref  ->  zero-ref    "field V22._obj (fldOffset=0x0)" P-DEP
 ;* V237 tmp226      [V237    ] (  0,        0   )   short  ->  zero-ref    "field V22._token (fldOffset=0x8)" P-DEP
 ;* V238 tmp227      [V238    ] (  0,        0   )   ubyte  ->  zero-ref    "field V22._continueOnCapturedContext (fldOffset=0xa)" P-DEP
@@ -266,7 +266,7 @@
 ;* V253 tmp242      [V253    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V254 tmp243      [V254    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V255 tmp244      [V255,T10] (  2,    12767.99)     ref  ->   x0         "argument with side effect"
-;  V256 tmp245      [V256,T120] (  2,        0   )     ref  ->   x1         "argument with side effect"
+;  V256 tmp245      [V256,T119] (  2,        0   )     ref  ->   x1         "argument with side effect"
 ;* V257 tmp246      [V257    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V258 tmp247      [V258    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V259 tmp248      [V259,T32] (  3,     2394.00)     ref  ->   x0         "arr expr"
@@ -277,7 +277,7 @@
 ;  V264 tmp253      [V264,T80] (  3,      598.50)     ref  ->   x1         "arr expr"
 ;  V265 tmp254      [V265,T05] (  3,    19151.99)     ref  ->  x14         "arr expr"
 ;  V266 tmp255      [V266,T11] (  2,    12767.99)     ref  ->   x0         "argument with side effect"
-;  V267 tmp256      [V267,T121] (  2,        0   )     ref  ->   x1         "argument with side effect"
+;  V267 tmp256      [V267,T120] (  2,        0   )     ref  ->   x1         "argument with side effect"
 ;* V268 tmp257      [V268    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V269 tmp258      [V269    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V270 PSPSym      [V270,T108] (  1,        1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
@@ -296,10 +296,9 @@
 ;  V283 cse12       [V283,T37] (  8,     1695.75)   byref  ->  x23         "CSE - moderate"
 ;  V284 cse13       [V284,T82] (  3,      598.50)     int  ->   x4         "CSE - conservative"
 ;  V285 cse14       [V285,T60] (  3,     1197.00)   byref  ->   x0         "CSE - moderate"
-;  V286 cse15       [V286,T110] ( 18,        0   )     ref  ->   x1         multi-def "CSE - conservative"
-;  V287 rat0        [V287,T116] (  3,        0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;  V288 rat1        [V288,T117] (  3,        0   )    long  ->   x0         "spilling expr"
-;  V289 rat2        [V289,T118] (  3,        0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V286 rat0        [V286,T115] (  3,        0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V287 rat1        [V287,T116] (  3,        0   )    long  ->   x0         "spilling expr"
+;  V288 rat2        [V288,T117] (  3,        0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 32
 
@@ -540,20 +539,20 @@ G_M48189_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 G_M48189_IG18:        ; bbWeight=0, gcrefRegs=D100000 {x20 x24 x26 x27}, byrefRegs=800000 {x23}, byref
             ; gcrRegs +[x20 x24 x26-x27]
             ; byrRegs +[x23]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
             b       G_M48189_IG65
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 G_M48189_IG19:        ; bbWeight=0, gcrefRegs=3100000 {x20 x24 x25}, byrefRegs=800000 {x23}, byref
             ; gcrRegs -[x26-x27] +[x25]
             movz    x0, #0xD1FFAB1E
@@ -593,20 +592,20 @@ G_M48189_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=28 bbWeight=0 PerfScore 0.00
 G_M48189_IG22:        ; bbWeight=0, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x20 x22]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
             b       G_M48189_IG48
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 G_M48189_IG23:        ; bbWeight=0, gcrefRegs=1100000 {x20 x24}, byrefRegs=800000 {x23}, byref
             ; gcrRegs -[x22] +[x24]
             ; byrRegs +[x23]
@@ -2050,7 +2049,7 @@ G_M48189_IG102:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=32 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 4164, prolog size 48, PerfScore 1567486085.21, instruction count 1041, allocated bytes for code 4164 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
+Total bytes of code 4180, prolog size 48, PerfScore 1567486085.21, instruction count 1045, allocated bytes for code 4180 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -2061,7 +2060,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 1011 (0x003f3) Actual length = 4044 (0x000fcc)
+  Function Length   : 1015 (0x003f7) Actual length = 4060 (0x000fdc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+1.25%) : 95909.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+d24[System.Canon]:MoveNext():this (Tier1-OSR)

@@ -30,13 +30,13 @@
 ;* V17 tmp6         [V17    ] (  0,   0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V18 tmp7         [V18    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[System.__Canon]>
 ;* V19 tmp8         [V19    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-;  V20 tmp9         [V20,T35] (  2,   0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V20 tmp9         [V20,T34] (  2,   0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;  V21 tmp10        [V21,T10] (  3, 599.39)     ref  ->   x0         class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
 ;* V22 tmp11        [V22    ] (  0,   0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
 ;  V23 tmp12        [V23,T22] (  3,  48.36)    long  ->   x1         "spilling helperCall"
 ;* V24 tmp13        [V24    ] (  0,   0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V25 tmp14        [V25    ] (  0,   0   )     int  ->  zero-ref    "dup spill"
-;  V26 tmp15        [V26,T32] (  3,   0   )    long  ->   x1         "spilling helperCall"
+;  V26 tmp15        [V26,T31] (  3,   0   )    long  ->   x1         "spilling helperCall"
 ;  V27 tmp16        [V27,T16] (  3, 200.00)     ref  ->   x1         "guarded devirt return temp"
 ;  V28 tmp17        [V28,T09] (  5, 599.99)     ref  ->   x0         "guarded devirt arg temp"
 ;  V29 tmp18        [V29,T12] (  3, 399.99)     int  ->   x1         "guarded devirt arg temp"
@@ -48,7 +48,7 @@
 ;* V35 tmp24        [V35    ] (  0,   0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V36 tmp25        [V36    ] (  0,   0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V37 tmp26        [V37    ] (  0,   0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Threading.CancellationToken>
-;* V38 tmp27        [V38,T38] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;* V38 tmp27        [V38,T37] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V39 tmp28        [V39    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V40 tmp29        [V40    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V41 tmp30        [V41    ] (  0,   0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
@@ -108,7 +108,7 @@
 ;* V95 tmp84        [V95    ] (  0,   0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V96 tmp85        [V96    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V97 tmp86        [V97    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V98 tmp87        [V98,T36] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V98 tmp87        [V98,T35] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
 ;* V99 tmp88        [V99    ] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Exception>
 ;* V100 tmp89       [V100    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.Exception[]>
 ;* V101 tmp90       [V101,T24] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -149,7 +149,7 @@
 ;* V136 tmp125      [V136    ] (  0,   0   )     ref  ->  zero-ref    single-def
 ;* V137 tmp126      [V137    ] (  0,   0   )     ref  ->  zero-ref    single-def
 ;* V138 tmp127      [V138,T23] (  0,   0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V139 tmp128      [V139,T30] (  0,   0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V139 tmp128      [V139,T29] (  0,   0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V140 tmp129      [V140    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V141 tmp130      [V141    ] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V142 tmp131      [V142    ] (  0,   0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -219,7 +219,7 @@
 ;* V206 tmp195      [V206    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V207 tmp196      [V207    ] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V208 tmp197      [V208    ] (  0,   0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V209 tmp198      [V209,T31] (  3,   0   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V209 tmp198      [V209,T30] (  3,   0   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V210 tmp199      [V210    ] (  0,   0   )     ref  ->  zero-ref    "field V22._obj (fldOffset=0x0)" P-DEP
 ;* V211 tmp200      [V211    ] (  0,   0   )   short  ->  zero-ref    "field V22._token (fldOffset=0x8)" P-DEP
 ;* V212 tmp201      [V212    ] (  0,   0   )   ubyte  ->  zero-ref    "field V22._continueOnCapturedContext (fldOffset=0xa)" P-DEP
@@ -242,17 +242,16 @@
 ;* V229 tmp218      [V229    ] (  0,   0   )     ref  ->  zero-ref    "field V178._source (fldOffset=0x0)" P-INDEP
 ;* V230 tmp219      [V230    ] (  0,   0   )     ref  ->  zero-ref    "field V180._source (fldOffset=0x0)" P-INDEP
 ;* V231 tmp220      [V231,T25] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
-;* V232 tmp221      [V232,T37] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
+;* V232 tmp221      [V232,T36] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V233 tmp222      [V233    ] (  0,   0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V234 tmp223      [V234    ] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V235 PSPSym      [V235,T28] (  1,   1   )    long  ->  [fp+0x10]  do-not-enreg[V] "PSPSym"
 ;  V236 cse0        [V236,T20] (  3, 100.83)     int  ->  x21         "CSE - moderate"
 ;  V237 cse1        [V237,T01] (  3,5.3e+09)     int  ->   x2         "CSE - aggressive"
 ;  V238 cse2        [V238,T17] (  2, 199.17)   byref  ->  x14         "CSE - moderate"
-;  V239 cse3        [V239,T29] (  6,   0   )     ref  ->   x1         multi-def "CSE - conservative"
-;  V240 rat0        [V240,T11] (  3, 417.69)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;  V241 rat1        [V241,T33] (  3,   0   )    long  ->   x0         "spilling expr"
-;  V242 rat2        [V242,T34] (  3,   0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V239 rat0        [V239,T11] (  3, 417.69)    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V240 rat1        [V240,T32] (  3,   0   )    long  ->   x0         "spilling expr"
+;  V241 rat2        [V241,T33] (  3,   0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 8
 
@@ -637,36 +636,36 @@ G_M48189_IG26:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M48189_IG27:        ; bbWeight=0, gcrefRegs=900000 {x20 x23}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x20 x23]
             ; byrRegs -[x13-x14]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
             b       G_M48189_IG21
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 G_M48189_IG28:        ; bbWeight=0, gcrefRegs=500000 {x20 x22}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x23] +[x22]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
             b       G_M48189_IG15
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 G_M48189_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x20 x22]
             mov     x0, x19
@@ -782,7 +781,7 @@ G_M48189_IG36:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1280, prolog size 36, PerfScore 10671562539.70, instruction count 320, allocated bytes for code 1280 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
+Total bytes of code 1296, prolog size 36, PerfScore 10671562539.70, instruction count 324, allocated bytes for code 1296 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -793,7 +792,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 294 (0x00126) Actual length = 1176 (0x000498)
+  Function Length   : 298 (0x0012a) Actual length = 1192 (0x0004a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+1.34%) : 92760.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+d__24[ubyte]:MoveNext():this (Tier1-OSR)

@@ -27,7 +27,7 @@
 ;* V14 tmp4         [V14    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[ubyte]>
 ;* V15 tmp5         [V15    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[ubyte]>
 ;* V16 tmp6         [V16    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-;  V17 tmp7         [V17,T33] (  2,   0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V17 tmp7         [V17,T32] (  2,   0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;  V18 tmp8         [V18,T08] (  3, 595.34)     ref  ->   x3         class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[ubyte[]]>
 ;* V19 tmp9         [V19    ] (  0,   0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
 ;* V20 tmp10        [V20    ] (  0,   0   )     int  ->  zero-ref    "dup spill"
@@ -132,7 +132,7 @@
 ;* V119 tmp109      [V119    ] (  0,   0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V120 tmp110      [V120    ] (  0,   0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V121 tmp111      [V121    ] (  0,   0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Threading.CancellationToken>
-;* V122 tmp112      [V122,T34] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;* V122 tmp112      [V122,T33] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V123 tmp113      [V123    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V124 tmp114      [V124    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V125 tmp115      [V125    ] (  0,   0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
@@ -193,7 +193,7 @@
 ;* V180 tmp170      [V180    ] (  0,   0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V181 tmp171      [V181    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V182 tmp172      [V182    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V183 tmp173      [V183,T35] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V183 tmp173      [V183,T34] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
 ;* V184 tmp174      [V184    ] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Exception>
 ;* V185 tmp175      [V185    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.Exception[]>
 ;* V186 tmp176      [V186,T19] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -234,7 +234,7 @@
 ;* V221 tmp211      [V221    ] (  0,   0   )     ref  ->  zero-ref    single-def
 ;* V222 tmp212      [V222    ] (  0,   0   )     ref  ->  zero-ref    single-def
 ;* V223 tmp213      [V223,T17] (  0,   0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V224 tmp214      [V224,T31] (  0,   0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V224 tmp214      [V224,T30] (  0,   0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V225 tmp215      [V225    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V226 tmp216      [V226    ] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V227 tmp217      [V227    ] (  0,   0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -313,7 +313,7 @@
 ;* V300 tmp290      [V300    ] (  0,   0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V301 tmp291      [V301    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V302 tmp292      [V302    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V303 tmp293      [V303,T36] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V303 tmp293      [V303,T35] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
 ;* V304 tmp294      [V304    ] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Exception>
 ;* V305 tmp295      [V305    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.Exception[]>
 ;* V306 tmp296      [V306,T20] (  0,   0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -354,7 +354,7 @@
 ;* V341 tmp331      [V341    ] (  0,   0   )     ref  ->  zero-ref    single-def
 ;* V342 tmp332      [V342    ] (  0,   0   )     ref  ->  zero-ref    single-def
 ;* V343 tmp333      [V343,T18] (  0,   0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V344 tmp334      [V344,T32] (  0,   0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V344 tmp334      [V344,T31] (  0,   0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V345 tmp335      [V345    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V346 tmp336      [V346    ] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V347 tmp337      [V347    ] (  0,   0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -447,7 +447,7 @@
 ;* V434 tmp424      [V434    ] (  0,   0   )     ref  ->  zero-ref    "field V349._source (fldOffset=0x0)" P-INDEP
 ;  V435 tmp425      [V435,T29] (  2,   0.37)     ref  ->   x1         single-def "field V375.m_task (fldOffset=0x0)" P-INDEP
 ;* V436 tmp426      [V436,T21] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
-;* V437 tmp427      [V437,T37] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
+;* V437 tmp427      [V437,T36] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V438 tmp428      [V438    ] (  0,   0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V439 tmp429      [V439    ] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V440 tmp430      [V440    ] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
@@ -455,15 +455,14 @@
 ;* V442 tmp432      [V442    ] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V443 tmp433      [V443    ] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V444 tmp434      [V444,T22] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
-;* V445 tmp435      [V445,T38] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
+;* V445 tmp435      [V445,T37] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V446 tmp436      [V446    ] (  0,   0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V447 tmp437      [V447    ] (  0,   0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V448 tmp438      [V448,T10] (  2, 396.89)     ref  ->   x1         "argument with side effect"
-;  V449 tmp439      [V449,T39] (  2,   0   )     ref  ->   x1         single-def "argument with side effect"
+;  V449 tmp439      [V449,T38] (  2,   0   )     ref  ->   x1         single-def "argument with side effect"
 ;  V450 PSPSym      [V450,T28] (  1,   1   )    long  ->  [fp+0x18]  do-not-enreg[V] "PSPSym"
 ;  V451 cse0        [V451,T15] (  3, 101.01)     int  ->  x20         "CSE - aggressive"
 ;  V452 cse1        [V452,T14] (  2, 198.45)   byref  ->  x14         "CSE - aggressive"
-;  V453 cse2        [V453,T30] (  6,   0   )     ref  ->   x1         multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 16
 
@@ -855,36 +854,36 @@ G_M6180_IG25:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=80 bbWeight=0 PerfScore 0.00
 G_M6180_IG26:        ; bbWeight=0, gcrefRegs=480000 {x19 x22}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19 x22]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
             b       G_M6180_IG21
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 G_M6180_IG27:        ; bbWeight=0, gcrefRegs=280000 {x19 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x22] +[x21]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
             b       G_M6180_IG14
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 G_M6180_IG28:        ; bbWeight=0.18, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x19 x21]
             ldr     x1, [fp, #0xD0]    // [V08 loc7]
@@ -975,7 +974,7 @@ G_M6180_IG33:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1196, prolog size 32, PerfScore 31106.25, instruction count 299, allocated bytes for code 1196 (MethodHash=ca43e7db) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
+Total bytes of code 1212, prolog size 32, PerfScore 31106.25, instruction count 303, allocated bytes for code 1212 (MethodHash=ca43e7db) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -986,7 +985,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 275 (0x00113) Actual length = 1100 (0x00044c)
+  Function Length   : 279 (0x00117) Actual length = 1116 (0x00045c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+24 (+1.42%) : 31646.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues1System.String

@@ -19,17 +19,17 @@
 ;  V07 loc2         [V07,T18] (  5,  3   )     ref  ->   x0         class-hnd <System.Buffers.SearchValues`1[System.String]>
 ;  V08 loc3         [V08,T19] (  3,  2.96)     int  ->   x2        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T44] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-;  V11 tmp2         [V11,T45] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+;  V10 tmp1         [V10,T43] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+;  V11 tmp2         [V11,T44] (  4,  0   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T47] (  3,  0   )     ref  ->  x20        
-;  V15 tmp6         [V15,T46] (  4,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+;  V14 tmp5         [V14,T46] (  3,  0   )     ref  ->  x20        
+;  V15 tmp6         [V15,T45] (  4,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
 ;  V16 tmp7         [V16,T28] (  6,  1.10)     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V18 tmp9         [V18,T48] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V19 tmp10        [V19,T49] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V20 tmp11        [V20,T50] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V18 tmp9         [V18,T47] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V19 tmp10        [V19,T48] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V20 tmp11        [V20,T49] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V21 tmp12        [V21,T04] ( 10, 10.95)     ref  ->  x23         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V23 tmp14        [V23,T09] ( 16,  6.10)     int  ->  registers   ld-addr-op "Inline ldloca(s) first use temp"
@@ -84,9 +84,9 @@
 ;* V72 tmp63        [V72    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V73 tmp64        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V74 tmp65        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V75 tmp66        [V75,T54] (  3,  0   )     int  ->  x22         "Inlining Arg"
-;  V76 tmp67        [V76,T56] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
-;  V77 tmp68        [V77,T58] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V75 tmp66        [V75,T53] (  3,  0   )     int  ->  x22         "Inlining Arg"
+;  V76 tmp67        [V76,T55] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
+;  V77 tmp68        [V77,T57] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V78 tmp69        [V78    ] (  2,  0   )  ushort  ->  [fp+0x24]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V79 tmp70        [V79    ] (  2,  0   )  ushort  ->  [fp+0x20]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V80 tmp71        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -107,8 +107,8 @@
 ;* V95 tmp86        [V95    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V96 tmp87        [V96    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V97 tmp88        [V97    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V98 tmp89        [V98,T59] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
-;  V99 tmp90        [V99,T60] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
+;  V98 tmp89        [V98,T58] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
+;  V99 tmp90        [V99,T59] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
 ;* V100 tmp91       [V100    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V101 tmp92       [V101    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V102 tmp93       [V102    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -123,17 +123,17 @@
 ;* V111 tmp102      [V111    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V112 tmp103      [V112,T37] (  6,  0.82)     ref  ->   x0         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V113 tmp104      [V113    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V114 tmp105      [V114,T51] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V115 tmp106      [V115,T52] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V116 tmp107      [V116,T53] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V114 tmp105      [V114,T50] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V115 tmp106      [V115,T51] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V116 tmp107      [V116,T52] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V117 tmp108      [V117,T22] (  3,  2.47)     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V118 tmp109      [V118    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V119 tmp110      [V119    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V120 tmp111      [V120    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V121 tmp112      [V121    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V122 tmp113      [V122,T55] (  3,  0   )     int  ->  x22         "Inlining Arg"
-;  V123 tmp114      [V123,T57] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
-;  V124 tmp115      [V124,T61] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
+;  V122 tmp113      [V122,T54] (  3,  0   )     int  ->  x22         "Inlining Arg"
+;  V123 tmp114      [V123,T56] (  2,  0   )   byref  ->  x23         single-def "Inlining Arg"
+;  V124 tmp115      [V124,T60] (  2,  0   )     int  ->   x0         "Inline return value spill temp"
 ;  V125 tmp116      [V125    ] (  2,  0   )  ushort  ->  [fp+0x1C]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V126 tmp117      [V126    ] (  2,  0   )  ushort  ->  [fp+0x18]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V127 tmp118      [V127    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -154,8 +154,8 @@
 ;* V142 tmp133      [V142    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V143 tmp134      [V143    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V144 tmp135      [V144    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V145 tmp136      [V145,T62] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
-;  V146 tmp137      [V146,T63] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
+;  V145 tmp136      [V145,T61] (  2,  0   )  ushort  ->   x1         "Inlining Arg"
+;  V146 tmp137      [V146,T62] (  2,  0   )  ushort  ->   x2         "Inlining Arg"
 ;* V147 tmp138      [V147    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V148 tmp139      [V148    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V149 tmp140      [V149    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -238,7 +238,6 @@
 ;* V226 tmp217      [V226    ] (  0,  0   )   byref  ->  zero-ref    "field V158._reference (fldOffset=0x0)" P-INDEP
 ;* V227 tmp218      [V227    ] (  0,  0   )     int  ->  zero-ref    "field V158._length (fldOffset=0x8)" P-INDEP
 ;  V228 cse0        [V228,T08] ( 13,  6.28)     int  ->  x22         "CSE - aggressive"
-;  V229 cse1        [V229,T43] (  9,  0   )     ref  ->   x1         multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 24
 
@@ -471,37 +470,37 @@ G_M46798_IG34:        ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
             cbnz    w24, G_M46798_IG36
                        ;; size=4 bbWeight=0.55 PerfScore 0.55
 G_M46798_IG35:        ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=44 bbWeight=0 PerfScore 0.00
 G_M46798_IG36:        ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
             cmp     w24, w25
             bne     G_M46798_IG38
                        ;; size=8 bbWeight=0.55 PerfScore 0.82
 G_M46798_IG37:        ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=44 bbWeight=0 PerfScore 0.00
 G_M46798_IG38:        ; bbWeight=0.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
             cmp     w25, #0
             ccmp    w25, w24, z, gt
@@ -815,20 +814,20 @@ G_M46798_IG55:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
                        ;; size=4 bbWeight=0 PerfScore 0.00
 G_M46798_IG56:        ; bbWeight=0, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19-x20 x23]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
             b       G_M46798_IG42
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 G_M46798_IG57:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x23]
             movz    x0, #0xD1FFAB1E
@@ -945,7 +944,7 @@ G_M46798_IG60:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
 RWD00      dd  7F7FFFFFh       ; 3.40282e+38
 
 
-; Total bytes of code 1692, prolog size 36, PerfScore 177.75, instruction count 423, allocated bytes for code 1692 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
+Total bytes of code 1716, prolog size 36, PerfScore 177.75, instruction count 429, allocated bytes for code 1716 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -956,7 +955,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 423 (0x001a7) Actual length = 1692 (0x00069c)
+  Function Length   : 429 (0x001ad) Actual length = 1716 (0x0006b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

coreclr_tests.run.windows.arm64.checked.mch

-48 (-16.67%) : 537704.dasm - AA:reset() (FullOpts)

@@ -10,19 +10,22 @@
 ;
 ;# V00 OutArgs      [V00    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V01 tmp1         [V01,T00] (  3,  6   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <AA>
-;  V02 tmp2         [V02,T04] (  2,  4   )     ref  ->  x20         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V03 tmp3         [V03,T01] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <AA>
-;  V04 tmp4         [V04,T05] (  2,  4   )     ref  ->  x19         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V02 tmp2         [V02,T04] (  2,  4   )     ref  ->  x21         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V03 tmp3         [V03,T01] (  3,  6   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <AA>
+;  V04 tmp4         [V04,T05] (  2,  4   )     ref  ->  x20         class-hnd single-def "impAppendStmt" <<unknown class>>
 ;  V05 tmp5         [V05,T02] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <QQ>
 ;  V06 tmp6         [V06,T03] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "NewObj constructor temp" <QQ>
+;  V07 cse0         [V07,T06] (  3,  3   )    long  ->  x20         "CSE - unknown"
+;* V08 cse1         [V08,T07] (  0,  0   )    long  ->  zero-ref    "CSE - unknown"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M27028_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
-            stp     x19, x20, [sp, #0x10]
+            stp     fp, lr, [sp, #-0x30]!
+            stp     x19, x20, [sp, #0x18]
+            str     x21, [sp, #0x28]
             mov     fp, sp
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=16 bbWeight=1 PerfScore 3.50
 G_M27028_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -36,14 +39,14 @@ G_M27028_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     w0, [x0]
-            tbz     w0, #0, G_M27028_IG06
+            tbz     w0, #0, G_M27028_IG05
                        ;; size=40 bbWeight=1 PerfScore 8.50
-G_M27028_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
-            movz    x0, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x20, [x0]
-            ; gcrRegs +[x20]
+G_M27028_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            movz    x20, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
+            movk    x20, #0xD1FFAB1E LSL #16
+            movk    x20, #0xD1FFAB1E LSL #32
+            ldr     x21, [x20]
+            ; gcrRegs +[x21]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -58,6 +61,37 @@ G_M27028_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
+            mov     x0, x21
+            ; gcrRegs +[x0]
+            mov     x2, x19
+            ; gcrRegs +[x2]
+            mov     x1, #100
+            bl      CORINFO_HELP_ARRADDR_ST
+            ; gcrRegs -[x0 x2 x19 x21]
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            bl      CORINFO_HELP_NEWSFAST
+            ; gcrRegs +[x0]
+            mov     x19, x0
+            ; gcrRegs +[x19]
+            ldr     x20, [x20, #0x08]
+            ; gcrRegs +[x20]
+            movz    x0, #0xD1FFAB1E
+            ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            bl      CORINFO_HELP_NEWSFAST
+            ; gcrRegs +[x0]
+            mov     w14, #2
+            str     w14, [x0, #0x08]
+            add     x14, x19, #16
+            ; byrRegs +[x14]
+            mov     x15, x0
+            ; gcrRegs +[x15]
+            bl      CORINFO_HELP_ASSIGN_REF
+            ; gcrRegs -[x0 x15]
+            ; byrRegs -[x14]
             mov     x0, x20
             ; gcrRegs +[x0]
             mov     x2, x19
@@ -65,54 +99,14 @@ G_M27028_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             mov     x1, #100
             bl      CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[x0 x2 x19-x20]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            bl      CORINFO_HELP_NEWSFAST
-            ; gcrRegs +[x0]
-            mov     x20, x0
-            ; gcrRegs +[x20]
-            movz    x0, #0xD1FFAB1E
-            ; gcrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     w0, [x0]
-            tbz     w0, #0, G_M27028_IG07
-                       ;; size=108 bbWeight=1 PerfScore 21.50
-G_M27028_IG04:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x19, [x0]
-            ; gcrRegs +[x19]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            bl      CORINFO_HELP_NEWSFAST
-            ; gcrRegs +[x0]
-            mov     w14, #2
-            str     w14, [x0, #0x08]
-            add     x14, x20, #16
-            ; byrRegs +[x14]
-            mov     x15, x0
-            ; gcrRegs +[x15]
-            bl      CORINFO_HELP_ASSIGN_REF
-            ; gcrRegs -[x0 x15]
-            ; byrRegs -[x14]
-            mov     x0, x19
-            ; gcrRegs +[x0]
-            mov     x2, x20
-            ; gcrRegs +[x2]
-            mov     x1, #100
-            bl      CORINFO_HELP_ARRADDR_ST
-            ; gcrRegs -[x0 x2 x19-x20]
-                       ;; size=68 bbWeight=1 PerfScore 13.00
-G_M27028_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x10]
-            ldp     fp, lr, [sp], #0x20
+                       ;; size=144 bbWeight=1 PerfScore 27.50
+G_M27028_IG04:        ; bbWeight=1, epilog, nogc, extend
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
+            ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 3.00
-G_M27028_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=16 bbWeight=1 PerfScore 5.00
+G_M27028_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -121,17 +115,8 @@ G_M27028_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000
             bl      CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
             b       G_M27028_IG03
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M27028_IG07:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19] +[x20]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            mov     w1, #1
-            bl      CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
-            b       G_M27028_IG04
-                       ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 288, prolog size 12, PerfScore 48.50, instruction count 72, allocated bytes for code 288 (MethodHash=b512966b) for method AA:reset() (FullOpts)
+Total bytes of code 240, prolog size 16, PerfScore 44.50, instruction count 60, allocated bytes for code 240 (MethodHash=b512966b) for method AA:reset() (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -142,7 +127,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 72 (0x00048) Actual length = 288 (0x000120)
+  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -150,10 +135,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
-    E4          end
-    E4          end
+    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
 

-32 (-4.44%) : 382628.dasm - System.Resources.ResourceFallbackManager+d__5:MoveNext():ubyte:this (Tier1)

@@ -13,30 +13,30 @@
 ;  V01 loc0         [V01,T12] (  3,  3   )     int  ->  x14        
 ;  V02 loc1         [V02,T10] (  7,  3   )     ref  ->  x20         class-hnd exact single-def <<unknown class>>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T01] (  6,  9.83)     ref  ->  x22         class-hnd exact "impAppendStmt" <System.String>
+;  V04 tmp1         [V04,T01] (  6,  9.83)     ref  ->  x21         class-hnd exact "impAppendStmt" <System.String>
 ;  V05 tmp2         [V05,T03] (  7,  6.17)     ref  ->   x3         "guarded devirt arg temp"
 ;* V06 tmp3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Globalization.CultureInfo>
 ;  V07 tmp4         [V07,T04] (  6,  4.91)     ref  ->   x4         "guarded devirt return temp"
 ;  V08 tmp5         [V08,T02] (  8,  6.17)     ref  ->   x0         "guarded devirt arg temp"
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Globalization.CultureInfo>
-;  V10 tmp7         [V10,T05] (  2,  4   )     ref  ->  x22         class-hnd exact "dup spill" <System.String>
-;  V11 tmp8         [V11,T08] (  4,  3.04)     ref  ->  x22        
+;  V10 tmp7         [V10,T05] (  2,  4   )     ref  ->  x21         class-hnd exact "dup spill" <System.String>
+;  V11 tmp8         [V11,T08] (  4,  3.04)     ref  ->  x21        
 ;* V12 tmp9         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <System.String>
 ;* V13 tmp10        [V13    ] (  0,  0   )     ref  ->  zero-ref   
-;  V14 tmp11        [V14,T16] (  7,  0.17)     ref  ->  x22        
+;  V14 tmp11        [V14,T16] (  6,  0.26)     ref  ->  x21        
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.String>
 ;* V16 tmp13        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V17 tmp14        [V17,T18] (  2,  0.17)     ref  ->  x22         class-hnd exact "dup spill" <System.String>
-;  V18 tmp15        [V18,T20] (  5,  0.13)     ref  ->  x22        
+;  V17 tmp14        [V17,T20] (  2,  0.17)     ref  ->  x21         class-hnd exact "dup spill" <System.String>
+;  V18 tmp15        [V18,T18] (  5,  0.22)     ref  ->  x21        
 ;  V19 tmp16        [V19,T06] (  2,  4   )     ref  ->   x4         class-hnd exact "dup spill" <System.String>
 ;  V20 tmp17        [V20,T09] (  4,  3.04)     ref  ->   x4        
 ;* V21 tmp18        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <System.String>
 ;* V22 tmp19        [V22    ] (  0,  0   )     ref  ->  zero-ref   
-;  V23 tmp20        [V23,T17] (  7,  0.17)     ref  ->   x4        
+;  V23 tmp20        [V23,T17] (  6,  0.26)     ref  ->   x4        
 ;* V24 tmp21        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.String>
 ;* V25 tmp22        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V26 tmp23        [V26,T19] (  2,  0.17)     ref  ->   x4         class-hnd exact "dup spill" <System.String>
-;  V27 tmp24        [V27,T21] (  5,  0.13)     ref  ->   x4        
+;  V26 tmp23        [V26,T21] (  2,  0.17)     ref  ->   x4         class-hnd exact "dup spill" <System.String>
+;  V27 tmp24        [V27,T19] (  5,  0.22)     ref  ->   x4        
 ;  V28 tmp25        [V28,T15] (  2,  2   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V29 tmp26        [V29,T07] (  2,  4   )   byref  ->   x0         "impAppendStmt"
 ;* V30 tmp27        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -44,18 +44,17 @@
 ;* V32 tmp29        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp30        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp31        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V35 tmp32        [V35,T23] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V35 tmp32        [V35,T22] (  3,  0   )     ref  ->   x0         "argument with side effect"
 ;  V36 cse0         [V36,T11] (  3,  3   )     ref  ->   x0         "CSE - aggressive"
-;  V37 cse1         [V37,T22] (  8,  0   )     ref  ->  registers   multi-def "CSE - moderate"
-;  V38 cse2         [V38,T14] (  3,  2.91)     int  ->   x2         "CSE - aggressive"
-;  V39 cse3         [V39,T13] (  3,  3   )    long  ->  x21         "CSE - aggressive"
+;  V37 cse1         [V37,T14] (  3,  2.91)     int  ->   x2         "CSE - aggressive"
+;  V38 cse2         [V38,T13] (  3,  3   )    long  ->   x2         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M61925_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
+            stp     x19, x20, [sp, #0x18]
+            str     x21, [sp, #0x28]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
@@ -65,7 +64,7 @@ G_M61925_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ldr     x20, [x19, #0x10]
             ; gcrRegs +[x20]
             cmp     w14, #3
-            bhi     G_M61925_IG25
+            bhi     G_M61925_IG23
             mov     w14, w14
             adr     x15, [@RWD00]
             ldr     w15, [x15, x14, LSL #2]
@@ -88,14 +87,14 @@ G_M61925_IG03:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
 G_M61925_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x10]
             ; gcrRegs +[x0]
-            cbz     x0, G_M61925_IG19
+            cbz     x0, G_M61925_IG17
             ldr     x3, [x19, #0x18]
             ; gcrRegs +[x3]
             ldr     x14, [x3]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            cmp     x14, x21
+            movz    x2, #0xD1FFAB1E
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            cmp     x14, x2
             beq     G_M61925_IG06
                        ;; size=36 bbWeight=1 PerfScore 13.00
 G_M61925_IG05:        ; bbWeight=0, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0000 {}, byref
@@ -107,42 +106,45 @@ G_M61925_IG05:        ; bbWeight=0, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=000
             ldr     x1, [x1, #0x38]
             blr     x1
             ; gcrRegs -[x3]
-            mov     x22, x0
-            ; gcrRegs +[x22]
+            mov     x21, x0
+            ; gcrRegs +[x21]
             ldr     x0, [x20, #0x10]
-            b       G_M61925_IG10
+            b       G_M61925_IG09
                        ;; size=32 bbWeight=0 PerfScore 0.00
 G_M61925_IG06:        ; bbWeight=1, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20 x22] +[x3]
-            ldr     x22, [x3, #0x48]
-            ; gcrRegs +[x22]
-            cbnz    x22, G_M61925_IG09
+            ; gcrRegs -[x20-x21] +[x3]
+            ldr     x21, [x3, #0x48]
+            ; gcrRegs +[x21]
+            cbnz    x21, G_M61925_IG08
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M61925_IG07:        ; bbWeight=0.04, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x22]
+G_M61925_IG07:        ; bbWeight=0.04, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x21]
             ldr     x14, [x3, #0x30]
             ; gcrRegs +[x14]
-            ldr     x22, [x14, #0x18]
-            ; gcrRegs +[x22]
-            cbz     x22, G_M61925_IG27
-            cbz     x22, G_M61925_IG28
-                       ;; size=16 bbWeight=0.04 PerfScore 0.35
-G_M61925_IG08:        ; bbWeight=0.04, gcrefRegs=480009 {x0 x3 x19 x22}, byrefRegs=0000 {}, byref
+            ldr     x21, [x14, #0x18]
+            ; gcrRegs +[x21]
+            movz    x14, #8
             ; gcrRegs -[x14]
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #0xD1FFAB1E LSL #32
+            cmp     x21, #0
+            csel    x21, x21, x14, ne
+            cmp     x21, #0
+            csel    x21, x21, x14, ne
             add     x14, x3, #72
             ; byrRegs +[x14]
-            mov     x15, x22
+            mov     x15, x21
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x3 x15]
             ; byrRegs -[x14]
-                       ;; size=12 bbWeight=0.04 PerfScore 0.09
-G_M61925_IG09:        ; bbWeight=1, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+                       ;; size=48 bbWeight=0.04 PerfScore 0.50
+G_M61925_IG08:        ; bbWeight=1, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref, isz
             ldr     x14, [x0]
-            cmp     x14, x21
-            beq     G_M61925_IG12
+            cmp     x14, x2
+            beq     G_M61925_IG11
                        ;; size=12 bbWeight=1 PerfScore 4.50
-G_M61925_IG10:        ; bbWeight=0, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+G_M61925_IG09:        ; bbWeight=0, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
             ldr     x1, [x1, #0x38]
@@ -150,29 +152,32 @@ G_M61925_IG10:        ; bbWeight=0, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=000
             mov     x4, x0
             ; gcrRegs +[x4]
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M61925_IG11:        ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG10:        ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
-            cmp     x22, x4
-            bne     G_M61925_IG18
-            b       G_M61925_IG17
+            cmp     x21, x4
+            bne     G_M61925_IG16
+            b       G_M61925_IG15
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M61925_IG12:        ; bbWeight=1, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG11:        ; bbWeight=1, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x4] +[x0]
             ldr     x4, [x0, #0x48]
             ; gcrRegs +[x4]
-            cbnz    x4, G_M61925_IG15
+            cbnz    x4, G_M61925_IG13
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M61925_IG13:        ; bbWeight=0.04, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG12:        ; bbWeight=0.04, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x4]
             ldr     x14, [x0, #0x30]
             ; gcrRegs +[x14]
             ldr     x4, [x14, #0x18]
             ; gcrRegs +[x4]
-            cbz     x4, G_M61925_IG29
-            cbz     x4, G_M61925_IG30
-                       ;; size=16 bbWeight=0.04 PerfScore 0.35
-G_M61925_IG14:        ; bbWeight=0.04, gcrefRegs=480011 {x0 x4 x19 x22}, byrefRegs=0000 {}, byref
+            movz    x14, #8
             ; gcrRegs -[x14]
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #0xD1FFAB1E LSL #32
+            cmp     x4, #0
+            csel    x4, x4, x14, ne
+            cmp     x4, #0
+            csel    x4, x4, x14, ne
             add     x14, x0, #72
             ; byrRegs +[x14]
             mov     x15, x4
@@ -180,12 +185,12 @@ G_M61925_IG14:        ; bbWeight=0.04, gcrefRegs=480011 {x0 x4 x19 x22}, byrefRe
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
-                       ;; size=12 bbWeight=0.04 PerfScore 0.09
-G_M61925_IG15:        ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref
-            b       G_M61925_IG11
+                       ;; size=48 bbWeight=0.04 PerfScore 0.50
+G_M61925_IG13:        ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref
+            b       G_M61925_IG10
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M61925_IG16:        ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
-            add     x0, x22, #12
+G_M61925_IG14:        ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
+            add     x0, x21, #12
             ; byrRegs +[x0]
             lsl     w2, w2, #1
             mov     w2, w2
@@ -196,25 +201,25 @@ G_M61925_IG16:        ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=000
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcrRegs -[x4 x22]
+            ; gcrRegs -[x4 x21]
             ; byrRegs -[x0-x1]
-            cbz     w0, G_M61925_IG19
-            b       G_M61925_IG22
+            cbz     w0, G_M61925_IG17
+            b       G_M61925_IG20
                        ;; size=44 bbWeight=1 PerfScore 10.00
-G_M61925_IG17:        ; bbWeight=0.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            b       G_M61925_IG22
+G_M61925_IG15:        ; bbWeight=0.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            b       G_M61925_IG20
                        ;; size=4 bbWeight=0.04 PerfScore 0.04
-G_M61925_IG18:        ; bbWeight=0.96, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x4 x22]
-            cbz     x22, G_M61925_IG19
-            cbz     x4, G_M61925_IG19
-            ldr     w2, [x22, #0x08]
+G_M61925_IG16:        ; bbWeight=0.96, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x4 x21]
+            cbz     x21, G_M61925_IG17
+            cbz     x4, G_M61925_IG17
+            ldr     w2, [x21, #0x08]
...

-32 (-4.44%) : 383288.dasm - System.Resources.ResourceFallbackManager+d__5:MoveNext():ubyte:this (Tier1)

@@ -13,30 +13,30 @@
 ;  V01 loc0         [V01,T12] (  3,  3   )     int  ->  x14        
 ;  V02 loc1         [V02,T10] (  7,  3   )     ref  ->  x20         class-hnd exact single-def <<unknown class>>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T01] (  6,  9.83)     ref  ->  x22         class-hnd exact "impAppendStmt" <System.String>
+;  V04 tmp1         [V04,T01] (  6,  9.83)     ref  ->  x21         class-hnd exact "impAppendStmt" <System.String>
 ;  V05 tmp2         [V05,T03] (  7,  6.17)     ref  ->   x3         "guarded devirt arg temp"
 ;* V06 tmp3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Globalization.CultureInfo>
 ;  V07 tmp4         [V07,T04] (  6,  4.91)     ref  ->   x4         "guarded devirt return temp"
 ;  V08 tmp5         [V08,T02] (  8,  6.17)     ref  ->   x0         "guarded devirt arg temp"
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Globalization.CultureInfo>
-;  V10 tmp7         [V10,T05] (  2,  4   )     ref  ->  x22         class-hnd exact "dup spill" <System.String>
-;  V11 tmp8         [V11,T08] (  4,  3.04)     ref  ->  x22        
+;  V10 tmp7         [V10,T05] (  2,  4   )     ref  ->  x21         class-hnd exact "dup spill" <System.String>
+;  V11 tmp8         [V11,T08] (  4,  3.04)     ref  ->  x21        
 ;* V12 tmp9         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <System.String>
 ;* V13 tmp10        [V13    ] (  0,  0   )     ref  ->  zero-ref   
-;  V14 tmp11        [V14,T16] (  7,  0.17)     ref  ->  x22        
+;  V14 tmp11        [V14,T16] (  6,  0.26)     ref  ->  x21        
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.String>
 ;* V16 tmp13        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V17 tmp14        [V17,T18] (  2,  0.17)     ref  ->  x22         class-hnd exact "dup spill" <System.String>
-;  V18 tmp15        [V18,T20] (  5,  0.13)     ref  ->  x22        
+;  V17 tmp14        [V17,T20] (  2,  0.17)     ref  ->  x21         class-hnd exact "dup spill" <System.String>
+;  V18 tmp15        [V18,T18] (  5,  0.22)     ref  ->  x21        
 ;  V19 tmp16        [V19,T06] (  2,  4   )     ref  ->   x4         class-hnd exact "dup spill" <System.String>
 ;  V20 tmp17        [V20,T09] (  4,  3.04)     ref  ->   x4        
 ;* V21 tmp18        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <System.String>
 ;* V22 tmp19        [V22    ] (  0,  0   )     ref  ->  zero-ref   
-;  V23 tmp20        [V23,T17] (  7,  0.17)     ref  ->   x4        
+;  V23 tmp20        [V23,T17] (  6,  0.26)     ref  ->   x4        
 ;* V24 tmp21        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.String>
 ;* V25 tmp22        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V26 tmp23        [V26,T19] (  2,  0.17)     ref  ->   x4         class-hnd exact "dup spill" <System.String>
-;  V27 tmp24        [V27,T21] (  5,  0.13)     ref  ->   x4        
+;  V26 tmp23        [V26,T21] (  2,  0.17)     ref  ->   x4         class-hnd exact "dup spill" <System.String>
+;  V27 tmp24        [V27,T19] (  5,  0.22)     ref  ->   x4        
 ;  V28 tmp25        [V28,T15] (  2,  2   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V29 tmp26        [V29,T07] (  2,  4   )   byref  ->   x0         "impAppendStmt"
 ;* V30 tmp27        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -44,18 +44,17 @@
 ;* V32 tmp29        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp30        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp31        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V35 tmp32        [V35,T23] (  3,  0   )     ref  ->   x0         "argument with side effect"
+;  V35 tmp32        [V35,T22] (  3,  0   )     ref  ->   x0         "argument with side effect"
 ;  V36 cse0         [V36,T11] (  3,  3   )     ref  ->   x0         "CSE - aggressive"
-;  V37 cse1         [V37,T22] (  8,  0   )     ref  ->  registers   multi-def "CSE - moderate"
-;  V38 cse2         [V38,T14] (  3,  2.91)     int  ->   x2         "CSE - aggressive"
-;  V39 cse3         [V39,T13] (  3,  3   )    long  ->  x21         "CSE - aggressive"
+;  V37 cse1         [V37,T14] (  3,  2.91)     int  ->   x2         "CSE - aggressive"
+;  V38 cse2         [V38,T13] (  3,  3   )    long  ->   x2         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M61925_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
+            stp     x19, x20, [sp, #0x18]
+            str     x21, [sp, #0x28]
             mov     fp, sp
             mov     x19, x0
             ; gcrRegs +[x19]
@@ -65,7 +64,7 @@ G_M61925_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ldr     x20, [x19, #0x10]
             ; gcrRegs +[x20]
             cmp     w14, #3
-            bhi     G_M61925_IG25
+            bhi     G_M61925_IG23
             mov     w14, w14
             adr     x15, [@RWD00]
             ldr     w15, [x15, x14, LSL #2]
@@ -88,14 +87,14 @@ G_M61925_IG03:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
 G_M61925_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x0, [x20, #0x10]
             ; gcrRegs +[x0]
-            cbz     x0, G_M61925_IG19
+            cbz     x0, G_M61925_IG17
             ldr     x3, [x19, #0x18]
             ; gcrRegs +[x3]
             ldr     x14, [x3]
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            cmp     x14, x21
+            movz    x2, #0xD1FFAB1E
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            cmp     x14, x2
             beq     G_M61925_IG06
                        ;; size=36 bbWeight=1 PerfScore 13.00
 G_M61925_IG05:        ; bbWeight=0, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0000 {}, byref
@@ -107,42 +106,45 @@ G_M61925_IG05:        ; bbWeight=0, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=000
             ldr     x1, [x1, #0x38]
             blr     x1
             ; gcrRegs -[x3]
-            mov     x22, x0
-            ; gcrRegs +[x22]
+            mov     x21, x0
+            ; gcrRegs +[x21]
             ldr     x0, [x20, #0x10]
-            b       G_M61925_IG10
+            b       G_M61925_IG09
                        ;; size=32 bbWeight=0 PerfScore 0.00
 G_M61925_IG06:        ; bbWeight=1, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x20 x22] +[x3]
-            ldr     x22, [x3, #0x48]
-            ; gcrRegs +[x22]
-            cbnz    x22, G_M61925_IG09
+            ; gcrRegs -[x20-x21] +[x3]
+            ldr     x21, [x3, #0x48]
+            ; gcrRegs +[x21]
+            cbnz    x21, G_M61925_IG08
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M61925_IG07:        ; bbWeight=0.04, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x22]
+G_M61925_IG07:        ; bbWeight=0.04, gcrefRegs=80009 {x0 x3 x19}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x21]
             ldr     x14, [x3, #0x30]
             ; gcrRegs +[x14]
-            ldr     x22, [x14, #0x18]
-            ; gcrRegs +[x22]
-            cbz     x22, G_M61925_IG27
-            cbz     x22, G_M61925_IG28
-                       ;; size=16 bbWeight=0.04 PerfScore 0.35
-G_M61925_IG08:        ; bbWeight=0.04, gcrefRegs=480009 {x0 x3 x19 x22}, byrefRegs=0000 {}, byref
+            ldr     x21, [x14, #0x18]
+            ; gcrRegs +[x21]
+            movz    x14, #8
             ; gcrRegs -[x14]
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #0xD1FFAB1E LSL #32
+            cmp     x21, #0
+            csel    x21, x21, x14, ne
+            cmp     x21, #0
+            csel    x21, x21, x14, ne
             add     x14, x3, #72
             ; byrRegs +[x14]
-            mov     x15, x22
+            mov     x15, x21
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x3 x15]
             ; byrRegs -[x14]
-                       ;; size=12 bbWeight=0.04 PerfScore 0.09
-G_M61925_IG09:        ; bbWeight=1, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+                       ;; size=48 bbWeight=0.04 PerfScore 0.50
+G_M61925_IG08:        ; bbWeight=1, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref, isz
             ldr     x14, [x0]
-            cmp     x14, x21
-            beq     G_M61925_IG12
+            cmp     x14, x2
+            beq     G_M61925_IG11
                        ;; size=12 bbWeight=1 PerfScore 4.50
-G_M61925_IG10:        ; bbWeight=0, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref
+G_M61925_IG09:        ; bbWeight=0, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref
             ldr     x1, [x0]
             ldr     x1, [x1, #0x48]
             ldr     x1, [x1, #0x38]
@@ -150,29 +152,32 @@ G_M61925_IG10:        ; bbWeight=0, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=000
             mov     x4, x0
             ; gcrRegs +[x4]
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M61925_IG11:        ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG10:        ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
-            cmp     x22, x4
-            bne     G_M61925_IG18
-            b       G_M61925_IG17
+            cmp     x21, x4
+            bne     G_M61925_IG16
+            b       G_M61925_IG15
                        ;; size=12 bbWeight=1 PerfScore 2.50
-G_M61925_IG12:        ; bbWeight=1, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG11:        ; bbWeight=1, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x4] +[x0]
             ldr     x4, [x0, #0x48]
             ; gcrRegs +[x4]
-            cbnz    x4, G_M61925_IG15
+            cbnz    x4, G_M61925_IG13
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M61925_IG13:        ; bbWeight=0.04, gcrefRegs=480001 {x0 x19 x22}, byrefRegs=0000 {}, byref, isz
+G_M61925_IG12:        ; bbWeight=0.04, gcrefRegs=280001 {x0 x19 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x4]
             ldr     x14, [x0, #0x30]
             ; gcrRegs +[x14]
             ldr     x4, [x14, #0x18]
             ; gcrRegs +[x4]
-            cbz     x4, G_M61925_IG29
-            cbz     x4, G_M61925_IG30
-                       ;; size=16 bbWeight=0.04 PerfScore 0.35
-G_M61925_IG14:        ; bbWeight=0.04, gcrefRegs=480011 {x0 x4 x19 x22}, byrefRegs=0000 {}, byref
+            movz    x14, #8
             ; gcrRegs -[x14]
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #0xD1FFAB1E LSL #32
+            cmp     x4, #0
+            csel    x4, x4, x14, ne
+            cmp     x4, #0
+            csel    x4, x4, x14, ne
             add     x14, x0, #72
             ; byrRegs +[x14]
             mov     x15, x4
@@ -180,12 +185,12 @@ G_M61925_IG14:        ; bbWeight=0.04, gcrefRegs=480011 {x0 x4 x19 x22}, byrefRe
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14]
-                       ;; size=12 bbWeight=0.04 PerfScore 0.09
-G_M61925_IG15:        ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref
-            b       G_M61925_IG11
+                       ;; size=48 bbWeight=0.04 PerfScore 0.50
+G_M61925_IG13:        ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref
+            b       G_M61925_IG10
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M61925_IG16:        ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
-            add     x0, x22, #12
+G_M61925_IG14:        ; bbWeight=1, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
+            add     x0, x21, #12
             ; byrRegs +[x0]
             lsl     w2, w2, #1
             mov     w2, w2
@@ -196,25 +201,25 @@ G_M61925_IG16:        ; bbWeight=1, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=000
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            ; gcrRegs -[x4 x22]
+            ; gcrRegs -[x4 x21]
             ; byrRegs -[x0-x1]
-            cbz     w0, G_M61925_IG19
-            b       G_M61925_IG22
+            cbz     w0, G_M61925_IG17
+            b       G_M61925_IG20
                        ;; size=44 bbWeight=1 PerfScore 10.00
-G_M61925_IG17:        ; bbWeight=0.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            b       G_M61925_IG22
+G_M61925_IG15:        ; bbWeight=0.04, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
+            b       G_M61925_IG20
                        ;; size=4 bbWeight=0.04 PerfScore 0.04
-G_M61925_IG18:        ; bbWeight=0.96, gcrefRegs=480010 {x4 x19 x22}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x4 x22]
-            cbz     x22, G_M61925_IG19
-            cbz     x4, G_M61925_IG19
-            ldr     w2, [x22, #0x08]
+G_M61925_IG16:        ; bbWeight=0.96, gcrefRegs=280010 {x4 x19 x21}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x4 x21]
+            cbz     x21, G_M61925_IG17
+            cbz     x4, G_M61925_IG17
+            ldr     w2, [x21, #0x08]
...

+8 (+2.11%) : 300329.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)

@@ -8,25 +8,23 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 10,  3.65)     ref  ->  x20         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T04] ( 10,  3.65)     ref  ->  x20         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T02] ( 11, 11.33)     ref  ->  x19         class-hnd single-def <System.Type>
-;  V02 loc0         [V02,T07] (  4,  0.60)     ref  ->   x0         class-hnd exact <System.RuntimeType>
-;  V03 loc1         [V03,T08] (  3,  0   )     ref  ->   x0         class-hnd single-def <System.Type[]>
-;  V04 loc2         [V04,T01] (  5, 18.80)     int  ->  x20        
+;  V02 loc0         [V02,T06] (  4,  0.60)     ref  ->   x0         class-hnd exact <System.RuntimeType>
+;  V03 loc1         [V03,T03] (  4, 10   )     ref  ->  x20         class-hnd single-def <System.Type[]>
+;  V04 loc2         [V04,T01] (  5, 18.80)     int  ->  x21        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T06] (  2,  0.96)     ref  ->   x0         single-def "CASTCLASS eval op1"
+;  V06 tmp1         [V06,T05] (  2,  0.96)     ref  ->   x0         single-def "CASTCLASS eval op1"
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V09 tmp4         [V09,T00] (  3, 33.60)     ref  ->   x0         "argument with side effect"
-;  V10 cse0         [V10,T04] (  2,  5.60)   byref  ->  x22         hoist "CSE - aggressive"
-;  V11 cse1         [V11,T05] (  3,  4.40)     int  ->  x21         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M35267_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
-            stp     x19, x20, [sp, #0x10]
-            stp     x21, x22, [sp, #0x20]
+            stp     x19, x20, [sp, #0x18]
+            str     x21, [sp, #0x28]
             mov     fp, sp
             mov     x20, x0
             ; gcrRegs +[x20]
@@ -63,8 +61,8 @@ G_M35267_IG06:        ; bbWeight=0, gcrefRegs=100001 {x0 x20}, byrefRegs=0000 {}
             ; gcrRegs +[x1]
                        ;; size=4 bbWeight=0 PerfScore 0.00
 G_M35267_IG07:        ; bbWeight=0, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             b       <unknown method>
                        ;; size=16 bbWeight=0 PerfScore 0.00
@@ -114,8 +112,8 @@ G_M35267_IG09:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ldr     x2, [x2]
                        ;; size=80 bbWeight=0 PerfScore 0.00
 G_M35267_IG10:        ; bbWeight=0, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             br      x2
                        ;; size=16 bbWeight=0 PerfScore 0.00
@@ -135,17 +133,20 @@ G_M35267_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=180000
             ldr     x1, [x1]
             blr     x1
             ; gcrRegs -[x20]
-            mov     w20, wzr
-            ldr     w21, [x0, #0x08]
-            cmp     w21, #0
-            ble     G_M35267_IG14
-            add     x22, x0, #16
-            ; byrRegs +[x22]
-                       ;; size=60 bbWeight=0 PerfScore 0.00
-G_M35267_IG12:        ; bbWeight=5.60, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22}, byref, isz
+            mov     x20, x0
+            ; gcrRegs +[x20]
+            mov     w21, wzr
+            ldr     w0, [x20, #0x08]
             ; gcrRegs -[x0]
-            ldr     x0, [x22, w20, UXTW #3]
+            cmp     w0, #0
+            ble     G_M35267_IG14
+                       ;; size=60 bbWeight=0 PerfScore 0.00
+G_M35267_IG12:        ; bbWeight=5.60, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     x0, x20, #16
+            ; byrRegs +[x0]
+            ldr     x0, [x0, w21, UXTW #3]
             ; gcrRegs +[x0]
+            ; byrRegs -[x0]
             mov     x1, x19
             ; gcrRegs +[x1]
             ldr     x2, [x0]
@@ -154,34 +155,34 @@ G_M35267_IG12:        ; bbWeight=5.60, gcrefRegs=80000 {x19}, byrefRegs=400000 {
             blr     x2
             ; gcrRegs -[x0-x1]
             cbz     w0, G_M35267_IG16
-                       ;; size=28 bbWeight=5.60 PerfScore 81.20
-G_M35267_IG13:        ; bbWeight=4.40, gcrefRegs=80000 {x19}, byrefRegs=400000 {x22}, byref, isz
-            add     w20, w20, #1
-            cmp     w21, w20
-            bgt     G_M35267_IG12
-                       ;; size=12 bbWeight=4.40 PerfScore 8.80
+                       ;; size=32 bbWeight=5.60 PerfScore 84.00
+G_M35267_IG13:        ; bbWeight=4.40, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
+            add     w21, w21, #1
+            ldr     w0, [x20, #0x08]
+            cmp     w21, w0
+            blt     G_M35267_IG12
+                       ;; size=16 bbWeight=4.40 PerfScore 22.00
 G_M35267_IG14:        ; bbWeight=2.36, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x19]
-            ; byrRegs -[x22]
+            ; gcrRegs -[x19-x20]
             mov     w0, #1
                        ;; size=4 bbWeight=2.36 PerfScore 1.18
 G_M35267_IG15:        ; bbWeight=2.36, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=16 bbWeight=2.36 PerfScore 9.44
+                       ;; size=16 bbWeight=2.36 PerfScore 11.80
 G_M35267_IG16:        ; bbWeight=30.24, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             mov     w0, wzr
                        ;; size=4 bbWeight=30.24 PerfScore 15.12
 G_M35267_IG17:        ; bbWeight=30.24, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x20]
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x21, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
-                       ;; size=16 bbWeight=30.24 PerfScore 120.96
+                       ;; size=16 bbWeight=30.24 PerfScore 151.20
 
-; Total bytes of code 380, prolog size 16, PerfScore 253.26, instruction count 95, allocated bytes for code 380 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
+Total bytes of code 388, prolog size 16, PerfScore 301.86, instruction count 97, allocated bytes for code 388 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -192,7 +193,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 95 (0x0005f) Actual length = 380 (0x00017c)
+  Function Length   : 97 (0x00061) Actual length = 388 (0x000184)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -209,10 +210,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    E6          save_next
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    D0 85       save_reg X#2 Z#5 (0x05); str x21, [sp, #40]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
-    E4          end
 

+4 (+4.17%) : 537705.dasm - AA:.cctor() (FullOpts)

@@ -8,14 +8,13 @@
 ; Final local variable assignments
 ;
 ;# V00 OutArgs      [V00    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V01 cse0         [V01,T00] (  3,  3   )    long  ->  x19         "CSE - stress mode"
-;  V02 cse1         [V02,T01] (  3,  3   )    long  ->  x20         "CSE - stress mode"
+;  V01 cse0         [V01,T00] (  3,  3   )    long  ->  x19         "CSE - unknown"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M3846_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
-            stp     x19, x20, [sp, #0x10]
+            str     x19, [sp, #0x18]
             mov     fp, sp
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M3846_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -26,31 +25,32 @@ G_M3846_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     x1, #101
             bl      CORINFO_HELP_NEWARR_1_OBJ
             ; gcrRegs +[x0]
-            movz    x20, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
-            movk    x20, #0xD1FFAB1E LSL #16
-            movk    x20, #0xD1FFAB1E LSL #32
+            movz    x14, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #0xD1FFAB1E LSL #32
             mov     x15, x0
             ; gcrRegs +[x15]
-            mov     x14, x20
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
             mov     x0, x19
             mov     x1, #101
             bl      CORINFO_HELP_NEWARR_1_OBJ
             ; gcrRegs +[x0]
-            add     x14, x20, #8
+            movz    x14, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
+            movk    x14, #0xD1FFAB1E LSL #16
+            movk    x14, #0xD1FFAB1E LSL #32
             mov     x15, x0
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15]
-                       ;; size=72 bbWeight=1 PerfScore 11.00
+                       ;; size=76 bbWeight=1 PerfScore 11.50
 G_M3846_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
-                       ;; size=12 bbWeight=1 PerfScore 3.00
+                       ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 96, prolog size 12, PerfScore 16.50, instruction count 24, allocated bytes for code 96 (MethodHash=2b07f0f9) for method AA:.cctor() (FullOpts)
+Total bytes of code 100, prolog size 12, PerfScore 18.00, instruction count 25, allocated bytes for code 100 (MethodHash=2b07f0f9) for method AA:.cctor() (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -61,7 +61,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
+  Function Length   : 25 (0x00019) Actual length = 100 (0x000064)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -69,7 +69,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    C8 02       save_regp X#0 Z#2 (0x02); stp x19, x20, [sp, #16]
+    D0 03       save_reg X#0 Z#3 (0x03); str x19, [sp, #24]
     83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end

+16 (+4.26%) : 300384.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)

@@ -29,22 +29,21 @@
 ;* V18 tmp16        [V18    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp17        [V19    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp18        [V20    ] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V21 tmp19        [V21,T11] (  3,   0   )   ubyte  ->   x1         "Inline return value spill temp"
+;  V21 tmp19        [V21,T10] (  3,   0   )   ubyte  ->   x1         "Inline return value spill temp"
 ;  V22 tmp20        [V22,T04] (  9,  76.80)     int  ->  x20         "Inline stloc first use temp"
 ;  V23 tmp21        [V23    ] (  2,  76.80)   simd8  ->  [fp+0x18]  HFA(simd8)  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
 ;  V24 tmp22        [V24    ] (  2,  76.80)   simd8  ->  [fp+0x10]  HFA(simd8)  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-;  V25 tmp23        [V25,T14] (  2,   0   )   float  ->   d8         "impAppendStmt"
-;  V26 tmp24        [V26,T12] (  3,   0   )     int  ->   x0        
+;  V25 tmp23        [V25,T13] (  2,   0   )   float  ->   d8         "impAppendStmt"
+;  V26 tmp24        [V26,T11] (  3,   0   )     int  ->   x0        
 ;* V27 tmp25        [V27    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp26        [V28    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp27        [V29    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp28        [V30    ] (  0,   0   )   float  ->  zero-ref    "Inline return value spill temp"
-;  V31 tmp29        [V31,T13] (  3,   0   )     int  ->   x0        
+;  V31 tmp29        [V31,T12] (  3,   0   )     int  ->   x0        
 ;* V32 tmp30        [V32    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V33 tmp31        [V33    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp32        [V34    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp33        [V35    ] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V36 cse0         [V36,T10] (  6,   0   )     ref  ->   x1         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 72
 
@@ -112,19 +111,19 @@ G_M21877_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M21877_IG06:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             tst     w0, #255
             bne     G_M21877_IG07
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
+                       ;; size=52 bbWeight=0 PerfScore 0.00
 G_M21877_IG07:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     x0, fp, #24    // [V23 tmp21]
             ; byrRegs +[x0]
@@ -140,19 +139,19 @@ G_M21877_IG08:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
 G_M21877_IG09:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             tst     w0, #255
             bne     G_M21877_IG10
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
+                       ;; size=52 bbWeight=0 PerfScore 0.00
 G_M21877_IG10:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             add     x0, fp, #16    // [V24 tmp22]
             ; byrRegs +[x0]
@@ -195,7 +194,7 @@ G_M21877_IG16:        ; bbWeight=0, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 376, prolog size 20, PerfScore 29793.45, instruction count 94, allocated bytes for code 376 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 392, prolog size 20, PerfScore 29793.45, instruction count 98, allocated bytes for code 392 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -206,7 +205,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 94 (0x0005e) Actual length = 376 (0x000178)
+  Function Length   : 98 (0x00062) Actual length = 392 (0x000188)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.windows.arm64.checked.mch

-4 (-0.76%) : 302777.dasm - Xunit.Sdk.TestFramework+d__13:MoveNext():this (FullOpts)

@@ -15,7 +15,7 @@
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V07 tmp2         [V07,T17] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V07 tmp2         [V07,T16] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
 ;  V10 tmp5         [V10,T07] (  2,  2   )     ref  ->  x21         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
@@ -23,7 +23,7 @@
 ;  V12 tmp7         [V12,T03] (  2,  4   )     ref  ->  x20         class-hnd single-def "Inlining Arg" <System.TimeProvider>
 ;* V13 tmp8         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
 ;  V14 tmp9         [V14,T01] (  3,  6   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V15 tmp10        [V15,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;* V15 tmp10        [V15,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V16 tmp11        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V18 tmp13        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -72,7 +72,7 @@
 ;  V61 tmp56        [V61    ] (  6,  6   )     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V03.m_task (fldOffset=0x0)" P-DEP
 ;* V62 tmp57        [V62    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._source (fldOffset=0x0)" P-INDEP
 ;* V63 tmp58        [V63    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V09._source (fldOffset=0x0)" P-INDEP
-;* V64 tmp59        [V64,T14] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._source (fldOffset=0x0)" P-INDEP
+;* V64 tmp59        [V64,T13] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._source (fldOffset=0x0)" P-INDEP
 ;* V65 tmp60        [V65    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V17._source (fldOffset=0x0)" P-DEP
 ;* V66 tmp61        [V66    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V25._node (fldOffset=0x0)" P-DEP
 ;* V67 tmp62        [V67    ] (  0,  0   )    long  ->  zero-ref    single-def "field V25._id (fldOffset=0x8)" P-DEP
@@ -82,11 +82,10 @@
 ;* V71 tmp66        [V71    ] (  0,  0   )    long  ->  zero-ref    single-def "field V44._id (fldOffset=0x8)" P-INDEP
 ;  V72 tmp67        [V72,T08] (  2,  2   )     ref  ->  x21         single-def "field V51.m_task (fldOffset=0x0)" P-INDEP
 ;  V73 tmp68        [V73,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V74 PSPSym       [V74,T16] (  1,  1   )    long  ->  [fp+0x20]  do-not-enreg[V] "PSPSym"
+;  V74 PSPSym       [V74,T15] (  1,  1   )    long  ->  [fp+0x20]  do-not-enreg[V] "PSPSym"
 ;  V75 cse0         [V75,T10] (  2,  2   )    long  ->   x1         "CSE - aggressive"
 ;  V76 cse1         [V76,T11] (  2,  2   )    long  ->   x1         "CSE - aggressive"
-;  V77 cse2         [V77,T12] (  2,  2   )    long  ->   x1         "CSE - conservative"
-;  V78 rat0         [V78,T13] (  2,  2   )    long  ->   x1         "Spilling to split statement for tree"
+;  V77 rat0         [V77,T12] (  2,  2   )    long  ->   x1         "Spilling to split statement for tree"
 ;
 ; Lcl frame size = 24
 
@@ -125,10 +124,9 @@ G_M64987_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x20, [x1]
             ; gcrRegs +[x20]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -187,7 +185,7 @@ G_M64987_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             ; gcrRegs -[x1]
             ; gcr arg pop 0
             b       G_M64987_IG11
-                       ;; size=172 bbWeight=1 PerfScore 43.00
+                       ;; size=168 bbWeight=1 PerfScore 42.50
 G_M64987_IG05:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19]
             mov     x0, x1
@@ -311,7 +309,7 @@ G_M64987_IG14:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 528, prolog size 32, PerfScore 112.50, instruction count 132, allocated bytes for code 528 (MethodHash=cff40224) for method Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)
+Total bytes of code 524, prolog size 32, PerfScore 112.00, instruction count 131, allocated bytes for code 524 (MethodHash=cff40224) for method Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -322,7 +320,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 112 (0x00070) Actual length = 448 (0x0001c0)
+  Function Length   : 111 (0x0006f) Actual length = 444 (0x0001bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-0.31%) : 196468.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)

@@ -24,16 +24,16 @@
 ;  V13 loc11        [V13,T14] (  3,  8.50)   ubyte  ->  x22         ld-addr-op
 ;  V14 loc12        [V14,T15] (  3,  8.50)   ubyte  ->  x24         ld-addr-op
 ;# V15 OutArgs      [V15    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V16 tmp1         [V16,T92] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V16 tmp1         [V16,T91] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V17 tmp2         [V17,T16] (  4,  8   )     int  ->  x22         "dup spill"
-;  V18 tmp3         [V18,T93] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V19 tmp4         [V19,T94] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V20 tmp5         [V20,T95] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V21 tmp6         [V21,T96] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V22 tmp7         [V22,T97] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V23 tmp8         [V23,T98] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V24 tmp9         [V24,T99] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V25 tmp10        [V25,T100] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V18 tmp3         [V18,T92] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V19 tmp4         [V19,T93] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V20 tmp5         [V20,T94] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V21 tmp6         [V21,T95] (  3,  0   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V22 tmp7         [V22,T96] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V23 tmp8         [V23,T97] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V24 tmp9         [V24,T98] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V25 tmp10        [V25,T99] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V26 tmp11        [V26,T79] (  3,  1.50)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.String>
 ;  V27 tmp12        [V27,T29] (  4,  6.00)     ref  ->  x22         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V28 tmp13        [V28,T43] (  5,  3.10)     int  ->  x23         single-def "Inline stloc first use temp"
@@ -115,7 +115,7 @@
 ;* V104 tmp89       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V105 tmp90       [V105    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
 ;  V106 tmp91       [V106,T49] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V107 tmp92       [V107,T101] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V107 tmp92       [V107,T100] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V108 tmp93       [V108,T12] (  4, 10   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.String>
 ;  V109 tmp94       [V109,T00] (  4, 24.00)     ref  ->  x20         class-hnd exact "Inlining Arg" <System.String>
 ;  V110 tmp95       [V110,T02] (  5, 12.40)     int  ->  x25         "Inline stloc first use temp"
@@ -130,7 +130,7 @@
 ;  V119 tmp104      [V119,T25] (  2,  8   )    long  ->   x2         "Inlining Arg"
 ;* V120 tmp105      [V120    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V121 tmp106      [V121    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
-;  V122 tmp107      [V122,T102] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V122 tmp107      [V122,T101] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V123 tmp108      [V123,T13] (  4, 10   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.String>
 ;  V124 tmp109      [V124,T01] (  4, 24.00)     ref  ->  x21         class-hnd exact "Inlining Arg" <System.String>
 ;  V125 tmp110      [V125,T03] (  5, 12.40)     int  ->  x25         "Inline stloc first use temp"
@@ -169,32 +169,32 @@
 ;* V158 tmp143      [V158    ] (  0,  0   )     int  ->  zero-ref    single-def "field V102._length (fldOffset=0x8)" P-INDEP
 ;* V159 tmp144      [V159    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V104._reference (fldOffset=0x0)" P-INDEP
 ;* V160 tmp145      [V160    ] (  0,  0   )     int  ->  zero-ref    single-def "field V104._length (fldOffset=0x8)" P-INDEP
-;  V161 tmp146      [V161,T103] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V162 tmp147      [V162,T104] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V163 tmp148      [V163,T105] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V164 tmp149      [V164,T106] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V165 tmp150      [V165,T107] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V166 tmp151      [V166,T108] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V167 tmp152      [V167,T109] (  2,  0   )     ref  ->   x2         "argument with side effect"
-;  V168 tmp153      [V168,T110] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V169 tmp154      [V169,T111] (  2,  0   )     ref  ->   x2         "argument with side effect"
-;  V170 tmp155      [V170,T112] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V171 tmp156      [V171,T113] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V172 tmp157      [V172,T114] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
-;  V173 tmp158      [V173,T115] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V174 tmp159      [V174,T116] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
-;  V175 tmp160      [V175,T117] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V176 tmp161      [V176,T118] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V177 tmp162      [V177,T119] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V178 tmp163      [V178,T120] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
-;  V179 tmp164      [V179,T121] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V180 tmp165      [V180,T122] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
-;  V181 tmp166      [V181,T123] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V182 tmp167      [V182,T124] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V183 tmp168      [V183,T125] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
-;  V184 tmp169      [V184,T126] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V185 tmp170      [V185,T127] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
-;  V186 tmp171      [V186,T128] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V161 tmp146      [V161,T102] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V162 tmp147      [V162,T103] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V163 tmp148      [V163,T104] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V164 tmp149      [V164,T105] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V165 tmp150      [V165,T106] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V166 tmp151      [V166,T107] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V167 tmp152      [V167,T108] (  2,  0   )     ref  ->   x2         "argument with side effect"
+;  V168 tmp153      [V168,T109] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V169 tmp154      [V169,T110] (  2,  0   )     ref  ->   x2         "argument with side effect"
+;  V170 tmp155      [V170,T111] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V171 tmp156      [V171,T112] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V172 tmp157      [V172,T113] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
+;  V173 tmp158      [V173,T114] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V174 tmp159      [V174,T115] (  2,  0   )     ref  ->  x25         single-def "argument with side effect"
+;  V175 tmp160      [V175,T116] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V176 tmp161      [V176,T117] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V177 tmp162      [V177,T118] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V178 tmp163      [V178,T119] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
+;  V179 tmp164      [V179,T120] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V180 tmp165      [V180,T121] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
+;  V181 tmp166      [V181,T122] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V182 tmp167      [V182,T123] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V183 tmp168      [V183,T124] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
+;  V184 tmp169      [V184,T125] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V185 tmp170      [V185,T126] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
+;  V186 tmp171      [V186,T127] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
 ;  V187 cse0        [V187,T80] (  3,  1.50)   byref  ->  x25         "CSE - conservative"
 ;  V188 cse1        [V188,T81] (  3,  1.50)   byref  ->  x22         "CSE - conservative"
 ;  V189 cse2        [V189,T82] (  3,  1.50)   byref  ->  x23         "CSE - conservative"
@@ -202,7 +202,6 @@
 ;  V191 cse4        [V191,T06] (  3, 12   )     ref  ->  x26         "CSE - aggressive"
 ;  V192 cse5        [V192,T07] (  3, 12   )     ref  ->  x25         "CSE - aggressive"
 ;  V193 cse6        [V193,T08] (  3, 12   )     ref  ->  x25         "CSE - aggressive"
-;  V194 cse7        [V194,T91] ( 12,  0   )     ref  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 64
 
@@ -1083,7 +1082,7 @@ G_M39588_IG56:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x90
             ret     lr
                        ;; size=24 bbWeight=1 PerfScore 6.00
-G_M39588_IG57:        ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M39588_IG57:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
             bl      CORINFO_HELP_RNGCHKFAIL
                        ;; size=4 bbWeight=0 PerfScore 0.00
@@ -1274,22 +1273,20 @@ G_M39588_IG62:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=56 bbWeight=0 PerfScore 0.00
 G_M39588_IG63:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19]
-            movz    x24, #8
-            movk    x24, #0xD1FFAB1E LSL #16
-            movk    x24, #0xD1FFAB1E LSL #32
-            mov     x0, x24
-            ; gcrRegs +[x0]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             b       G_M39588_IG15
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+                       ;; size=16 bbWeight=0 PerfScore 0.00
 G_M39588_IG64:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0 x19]
+            ; gcrRegs -[x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
-            mov     x24, x0
-            ; gcrRegs +[x24]
+            mov     x19, x0
+            ; gcrRegs +[x19]
             movz    x0, #0xD1FFAB1E      // code for <unknown method>
             ; gcrRegs -[x0]
             movk    x0, #0xD1FFAB1E LSL #16
@@ -1299,17 +1296,17 @@ G_M39588_IG64:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             mov     x1, x0
             ; gcrRegs +[x1]
-            mov     x0, x24
+            mov     x0, x19
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
             ; gcrRegs -[x0-x1]
-            mov     x0, x24
+            mov     x0, x19
             ; gcrRegs +[x0]
             bl      CORINFO_HELP_THROW
-            ; gcrRegs -[x0 x24]
+            ; gcrRegs -[x0 x19]
                        ;; size=76 bbWeight=0 PerfScore 0.00
 G_M39588_IG65:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #0xD1FFAB1E
@@ -1333,44 +1330,13 @@ G_M39588_IG65:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=56 bbWeight=0 PerfScore 0.00
 G_M39588_IG66:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19]
-            movz    x24, #8
-            movk    x24, #0xD1FFAB1E LSL #16
-            movk    x24, #0xD1FFAB1E LSL #32
-            mov     x0, x24
-            ; gcrRegs +[x0]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             b       G_M39588_IG19
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+                       ;; size=16 bbWeight=0 PerfScore 0.00
 G_M39588_IG67:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0 x19]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            bl      CORINFO_HELP_NEWSFAST
-            ; gcrRegs +[x0]
-            mov     x24, x0
-            ; gcrRegs +[x24]
-            movz    x0, #0xD1FFAB1E      // code for <unknown method>
-            ; gcrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x0, [x0]
-            blr     x0
-            ; gcrRegs +[x0]
-            mov     x1, x0
-            ; gcrRegs +[x1]
-            mov     x0, x24
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x0-x1]
-            mov     x0, x24
-            ; gcrRegs +[x0]
-            bl      CORINFO_HELP_THROW
-            ; gcrRegs -[x0 x24]
-                       ;; size=76 bbWeight=0 PerfScore 0.00
-G_M39588_IG68:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -1385,24 +1351,35 @@ G_M39588_IG68:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     x0, [x0]
             blr     x0
             ; gcrRegs +[x0]
-            mov     x21, x0
-            ; gcrRegs +[x21]
-            mov     w0, #0xD1FFAB1E
-            ; gcrRegs -[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            bl      CORINFO_HELP_STRCNS
-            ; gcrRegs +[x0]
             mov     x1, x0
             ; gcrRegs +[x1]
-            mov     x0, x21
+            mov     x0, x20
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x1 x21]
+            ; gcrRegs -[x0-x1]
+            mov     x0, x20
+            ; gcrRegs +[x0]
+            bl      CORINFO_HELP_THROW
+            ; gcrRegs -[x0 x20]
+                       ;; size=76 bbWeight=0 PerfScore 0.00
...

-12 (-0.28%) : 196449.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)

@@ -30,16 +30,16 @@
 ;  V19 loc17        [V19,T14] (  4,  9.00)   ubyte  ->  x22         ld-addr-op
 ;  V20 loc18        [V20,T15] (  4,  9.00)   ubyte  ->  x24         ld-addr-op
 ;# V21 OutArgs      [V21    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T92] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V22 tmp1         [V22,T91] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V23 tmp2         [V23,T16] (  4,  8   )     int  ->  x22         "dup spill"
-;  V24 tmp3         [V24,T93] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V25 tmp4         [V25,T94] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V26 tmp5         [V26,T95] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V27 tmp6         [V27,T96] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V28 tmp7         [V28,T97] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V29 tmp8         [V29,T98] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V30 tmp9         [V30,T99] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V31 tmp10        [V31,T100] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V24 tmp3         [V24,T92] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V25 tmp4         [V25,T93] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V26 tmp5         [V26,T94] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V27 tmp6         [V27,T95] (  3,  0   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V28 tmp7         [V28,T96] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V29 tmp8         [V29,T97] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V30 tmp9         [V30,T98] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V31 tmp10        [V31,T99] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V32 tmp11        [V32,T79] (  3,  1.50)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.String>
 ;  V33 tmp12        [V33,T27] (  4,  6.00)     ref  ->  x22         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V34 tmp13        [V34,T42] (  5,  3.10)     int  ->  x23         single-def "Inline stloc first use temp"
@@ -116,7 +116,7 @@
 ;* V105 tmp84       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V106 tmp85       [V106    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
 ;  V107 tmp86       [V107,T49] (  3,  3   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V108 tmp87       [V108,T101] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V108 tmp87       [V108,T100] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V109 tmp88       [V109,T12] (  4, 10   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.String>
 ;  V110 tmp89       [V110,T00] (  4, 24.00)     ref  ->  x21         class-hnd exact "Inlining Arg" <System.String>
 ;  V111 tmp90       [V111,T03] (  5, 12.40)     int  ->  x25         "Inline stloc first use temp"
@@ -131,7 +131,7 @@
 ;  V120 tmp99       [V120,T25] (  2,  8   )    long  ->   x2         "Inlining Arg"
 ;* V121 tmp100      [V121    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V122 tmp101      [V122    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
-;  V123 tmp102      [V123,T102] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V123 tmp102      [V123,T101] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V124 tmp103      [V124,T13] (  4, 10   )     ref  ->   x0         class-hnd "Inline return value spill temp" <System.String>
 ;  V125 tmp104      [V125,T01] (  4, 24.00)     ref  ->  x20         class-hnd exact "Inlining Arg" <System.String>
 ;  V126 tmp105      [V126,T04] (  5, 12.40)     int  ->  x25         "Inline stloc first use temp"
@@ -162,32 +162,32 @@
 ;* V151 tmp130      [V151    ] (  0,  0   )     int  ->  zero-ref    single-def "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V152 tmp131      [V152    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V153 tmp132      [V153    ] (  0,  0   )     int  ->  zero-ref    single-def "field V105._length (fldOffset=0x8)" P-INDEP
-;  V154 tmp133      [V154,T103] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V155 tmp134      [V155,T104] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V156 tmp135      [V156,T105] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V157 tmp136      [V157,T106] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V158 tmp137      [V158,T107] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V159 tmp138      [V159,T108] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V160 tmp139      [V160,T109] (  2,  0   )     ref  ->   x2         "argument with side effect"
-;  V161 tmp140      [V161,T110] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V162 tmp141      [V162,T111] (  2,  0   )     ref  ->   x2         "argument with side effect"
-;  V163 tmp142      [V163,T112] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V164 tmp143      [V164,T113] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V165 tmp144      [V165,T114] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
-;  V166 tmp145      [V166,T115] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V167 tmp146      [V167,T116] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
-;  V168 tmp147      [V168,T117] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V169 tmp148      [V169,T118] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V170 tmp149      [V170,T119] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V171 tmp150      [V171,T120] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
-;  V172 tmp151      [V172,T121] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V173 tmp152      [V173,T122] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
-;  V174 tmp153      [V174,T123] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V175 tmp154      [V175,T124] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V176 tmp155      [V176,T125] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
-;  V177 tmp156      [V177,T126] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V178 tmp157      [V178,T127] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
-;  V179 tmp158      [V179,T128] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V154 tmp133      [V154,T102] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V155 tmp134      [V155,T103] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V156 tmp135      [V156,T104] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V157 tmp136      [V157,T105] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V158 tmp137      [V158,T106] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V159 tmp138      [V159,T107] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V160 tmp139      [V160,T108] (  2,  0   )     ref  ->   x2         "argument with side effect"
+;  V161 tmp140      [V161,T109] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V162 tmp141      [V162,T110] (  2,  0   )     ref  ->   x2         "argument with side effect"
+;  V163 tmp142      [V163,T111] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V164 tmp143      [V164,T112] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V165 tmp144      [V165,T113] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
+;  V166 tmp145      [V166,T114] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V167 tmp146      [V167,T115] (  2,  0   )     ref  ->  x25         single-def "argument with side effect"
+;  V168 tmp147      [V168,T116] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V169 tmp148      [V169,T117] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V170 tmp149      [V170,T118] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V171 tmp150      [V171,T119] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
+;  V172 tmp151      [V172,T120] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V173 tmp152      [V173,T121] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
+;  V174 tmp153      [V174,T122] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V175 tmp154      [V175,T123] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V176 tmp155      [V176,T124] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
+;  V177 tmp156      [V177,T125] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V178 tmp157      [V178,T126] (  2,  0   )     ref  ->  x21         single-def "argument with side effect"
+;  V179 tmp158      [V179,T127] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
 ;  V180 cse0        [V180,T80] (  3,  1.50)   byref  ->  x25         "CSE - conservative"
 ;  V181 cse1        [V181,T81] (  3,  1.50)   byref  ->  x22         "CSE - conservative"
 ;  V182 cse2        [V182,T82] (  3,  1.50)   byref  ->  x23         "CSE - conservative"
@@ -195,7 +195,6 @@
 ;  V184 cse4        [V184,T07] (  3, 12   )     ref  ->  x26         "CSE - aggressive"
 ;  V185 cse5        [V185,T08] (  3, 12   )     ref  ->  x25         "CSE - aggressive"
 ;  V186 cse6        [V186,T09] (  3, 12   )     ref  ->  x25         "CSE - aggressive"
-;  V187 cse7        [V187,T91] ( 12,  0   )     ref  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 112
 
@@ -1219,7 +1218,7 @@ G_M12698_IG59:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0xC0
             ret     lr
                        ;; size=24 bbWeight=1 PerfScore 6.00
-G_M12698_IG60:        ; bbWeight=0, gcVars=000000000000000000000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M12698_IG60:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19]
             bl      CORINFO_HELP_RNGCHKFAIL
                        ;; size=4 bbWeight=0 PerfScore 0.00
@@ -1410,22 +1409,20 @@ G_M12698_IG65:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=56 bbWeight=0 PerfScore 0.00
 G_M12698_IG66:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19]
-            movz    x24, #8
-            movk    x24, #0xD1FFAB1E LSL #16
-            movk    x24, #0xD1FFAB1E LSL #32
-            mov     x0, x24
-            ; gcrRegs +[x0]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             b       G_M12698_IG15
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+                       ;; size=16 bbWeight=0 PerfScore 0.00
 G_M12698_IG67:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0 x19]
+            ; gcrRegs -[x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
-            mov     x24, x0
-            ; gcrRegs +[x24]
+            mov     x19, x0
+            ; gcrRegs +[x19]
             movz    x0, #0xD1FFAB1E      // code for <unknown method>
             ; gcrRegs -[x0]
             movk    x0, #0xD1FFAB1E LSL #16
@@ -1435,17 +1432,17 @@ G_M12698_IG67:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             mov     x1, x0
             ; gcrRegs +[x1]
-            mov     x0, x24
+            mov     x0, x19
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
             ; gcrRegs -[x0-x1]
-            mov     x0, x24
+            mov     x0, x19
             ; gcrRegs +[x0]
             bl      CORINFO_HELP_THROW
-            ; gcrRegs -[x0 x24]
+            ; gcrRegs -[x0 x19]
                        ;; size=76 bbWeight=0 PerfScore 0.00
 G_M12698_IG68:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #0xD1FFAB1E
@@ -1469,44 +1466,13 @@ G_M12698_IG68:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=56 bbWeight=0 PerfScore 0.00
 G_M12698_IG69:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x19]
-            movz    x24, #8
-            movk    x24, #0xD1FFAB1E LSL #16
-            movk    x24, #0xD1FFAB1E LSL #32
-            mov     x0, x24
-            ; gcrRegs +[x0]
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             b       G_M12698_IG19
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+                       ;; size=16 bbWeight=0 PerfScore 0.00
 G_M12698_IG70:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0 x19]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            bl      CORINFO_HELP_NEWSFAST
-            ; gcrRegs +[x0]
-            mov     x24, x0
-            ; gcrRegs +[x24]
-            movz    x0, #0xD1FFAB1E      // code for <unknown method>
-            ; gcrRegs -[x0]
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            ldr     x0, [x0]
-            blr     x0
-            ; gcrRegs +[x0]
-            mov     x1, x0
-            ; gcrRegs +[x1]
-            mov     x0, x24
-            movz    x2, #0xD1FFAB1E      // code for <unknown method>
-            movk    x2, #0xD1FFAB1E LSL #16
-            movk    x2, #0xD1FFAB1E LSL #32
-            ldr     x2, [x2]
-            blr     x2
-            ; gcrRegs -[x0-x1]
-            mov     x0, x24
-            ; gcrRegs +[x0]
-            bl      CORINFO_HELP_THROW
-            ; gcrRegs -[x0 x24]
-                       ;; size=76 bbWeight=0 PerfScore 0.00
-G_M12698_IG71:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -1521,24 +1487,35 @@ G_M12698_IG71:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     x0, [x0]
             blr     x0
             ; gcrRegs +[x0]
-            mov     x20, x0
-            ; gcrRegs +[x20]
-            mov     w0, #0xD1FFAB1E
-            ; gcrRegs -[x0]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            bl      CORINFO_HELP_STRCNS
-            ; gcrRegs +[x0]
             mov     x1, x0
             ; gcrRegs +[x1]
-            mov     x0, x20
+            mov     x0, x19
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x1 x20]
+            ; gcrRegs -[x0-x1]
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            bl      CORINFO_HELP_THROW
+            ; gcrRegs -[x0 x19]
+                       ;; size=76 bbWeight=0 PerfScore 0.00
...

+32 (+2.02%) : 200677.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  x24        
 ;  V10 loc7         [V10,T07] (  3, 12   )     ref  ->   x2         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T25] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T26] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T27] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V20 tmp9         [V20,T31] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T32] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T28] (  3,  0   )     int  ->  x23         "Inlining Arg"
-;  V31 tmp20        [V31,T33] (  2,  0   )   byref  ->  x22         "Inlining Arg"
+;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  x23         "Inlining Arg"
+;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  x22         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T34] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T23] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T29] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V44 tmp33        [V44,T35] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T36] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T24] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T30] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V55 tmp44        [V55,T37] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T38] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  x21         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T05] (  4, 12   )     int  ->  x25         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.61)     ref  ->  x19         class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T08] (  3, 12   )     ref  ->   x2         "arr expr"
-;  V98 tmp87        [V98,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V99 tmp88        [V99,T40] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V100 cse0        [V100,T18] (  3,  3   )     ref  ->   x0         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  4,  9   )   byref  ->  x23         hoist multi-def "CSE - aggressive"
 ;  V102 cse2        [V102,T09] (  6, 10   )     int  ->  x22         multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T20] ( 12,  0   )     ref  ->   x1         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -409,19 +408,19 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG30
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG31
@@ -472,19 +471,19 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w23, w1, w0
             tbz     w23, #31, G_M45430_IG33
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=104 bbWeight=0 PerfScore 0.00
+                       ;; size=112 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
             cbz     w23, G_M45430_IG34
             movz    x0, #0xD1FFAB1E
@@ -580,19 +579,19 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG38
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG39
@@ -654,19 +653,19 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M45430_IG43
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M45430_IG44
             movz    x0, #0xD1FFAB1E
@@ -728,7 +727,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1588, prolog size 48, PerfScore 291.46, instruction count 397, allocated bytes for code 1588 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1620, prolog size 48, PerfScore 291.46, instruction count 405, allocated bytes for code 1620 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -739,7 +738,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 397 (0x0018d) Actual length = 1588 (0x000634)
+  Function Length   : 405 (0x00195) Actual length = 1620 (0x000654)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+2.09%) : 201393.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)

@@ -16,29 +16,29 @@
 ;  V05 loc2         [V05,T02] (  4, 12.50)     ref  ->  x24         class-hnd <System.Xml.XmlDictionaryString>
 ;  V06 loc3         [V06    ] ( 17,  0   )  struct (40) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T15] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V08 tmp1         [V08,T14] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V10 tmp3         [V10,T13] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V10 tmp3         [V10,T12] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V12 tmp5         [V12,T16] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V13 tmp6         [V13,T18] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V12 tmp5         [V12,T15] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V13 tmp6         [V13,T17] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp9         [V16,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp9         [V16,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T19] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V19 tmp12        [V19,T18] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V21 tmp14        [V21,T14] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V21 tmp14        [V21,T13] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V23 tmp16        [V23,T17] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V24 tmp17        [V24,T20] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V23 tmp16        [V23,T16] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V24 tmp17        [V24,T19] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V27 tmp20        [V27,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V27 tmp20        [V27,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T21] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V30 tmp23        [V30,T20] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V31 tmp24        [V31,T00] (  5, 27.17)     ref  ->   x2         class-hnd exact "Inlining Arg" <System.String>
 ;  V32 tmp25        [V32,T11] (  2,  4   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V33 tmp26        [V33,T04] (  2,  8   )   byref  ->   x0         "impAppendStmt"
@@ -59,11 +59,10 @@
 ;* V48 tmp41        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V50 tmp43        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V51 tmp44        [V51,T22] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V52 cse0         [V52,T12] (  6,  0   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V53 cse1         [V53,T10] (  2,  5   )   byref  ->  x19         hoist "CSE - aggressive"
-;  V54 cse2         [V54,T07] (  3,  6   )     int  ->  x23         "CSE - aggressive"
-;  V55 cse3         [V55,T08] (  3,  5.58)     int  ->   x1         "CSE - aggressive"
+;  V51 tmp44        [V51,T21] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V52 cse0         [V52,T10] (  2,  5   )   byref  ->  x19         hoist "CSE - aggressive"
+;  V53 cse1         [V53,T07] (  3,  6   )     int  ->  x23         "CSE - aggressive"
+;  V54 cse2         [V54,T08] (  3,  5.58)     int  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -221,19 +220,19 @@ G_M28309_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M28309_IG16
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M28309_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #8
             blo     G_M28309_IG17
@@ -293,19 +292,19 @@ G_M28309_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M28309_IG21
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M28309_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M28309_IG22
             movz    x0, #0xD1FFAB1E
@@ -367,7 +366,7 @@ G_M28309_IG23:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 764, prolog size 44, PerfScore 111.28, instruction count 191, allocated bytes for code 764 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
+Total bytes of code 780, prolog size 44, PerfScore 111.28, instruction count 195, allocated bytes for code 780 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -378,7 +377,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 191 (0x000bf) Actual length = 764 (0x0002fc)
+  Function Length   : 195 (0x000c3) Actual length = 780 (0x00030c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+2.12%) : 201392.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)

@@ -16,29 +16,29 @@
 ;  V05 loc2         [V05,T01] (  6, 16.29)     ref  ->  x24         class-hnd exact <System.String>
 ;  V06 loc3         [V06    ] ( 17,  0   )  struct (40) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T14] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V08 tmp1         [V08,T13] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V10 tmp3         [V10,T12] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V10 tmp3         [V10,T11] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V12 tmp5         [V12,T15] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V13 tmp6         [V13,T17] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V12 tmp5         [V12,T14] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V13 tmp6         [V13,T16] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp9         [V16,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp9         [V16,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T18] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V19 tmp12        [V19,T17] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V21 tmp14        [V21,T13] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V21 tmp14        [V21,T12] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V23 tmp16        [V23,T16] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V24 tmp17        [V24,T19] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V23 tmp16        [V23,T15] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V24 tmp17        [V24,T18] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V27 tmp20        [V27,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V27 tmp20        [V27,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T20] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V30 tmp23        [V30,T19] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V31 tmp24        [V31,T10] (  2,  4   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V32 tmp25        [V32,T03] (  2,  8   )   byref  ->   x0         "impAppendStmt"
 ;* V33 tmp26        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -58,11 +58,10 @@
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp41        [V48    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V50 tmp43        [V50,T21] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V51 cse0         [V51,T11] (  6,  0   )     ref  ->   x1         multi-def "CSE - aggressive"
-;  V52 cse1         [V52,T09] (  2,  5   )   byref  ->  x19         hoist "CSE - aggressive"
-;  V53 cse2         [V53,T06] (  3,  6   )     int  ->  x23         "CSE - aggressive"
-;  V54 cse3         [V54,T07] (  3,  5.58)     int  ->   x2         "CSE - aggressive"
+;  V50 tmp43        [V50,T20] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V51 cse0         [V51,T09] (  2,  5   )   byref  ->  x19         hoist "CSE - aggressive"
+;  V52 cse1         [V52,T06] (  3,  6   )     int  ->  x23         "CSE - aggressive"
+;  V53 cse2         [V53,T07] (  3,  5.58)     int  ->   x2         "CSE - aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -214,19 +213,19 @@ G_M58179_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M58179_IG15
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M58179_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #8
             blo     G_M58179_IG16
@@ -286,19 +285,19 @@ G_M58179_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M58179_IG20
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M58179_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M58179_IG21
             movz    x0, #0xD1FFAB1E
@@ -360,7 +359,7 @@ G_M58179_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 756, prolog size 44, PerfScore 96.23, instruction count 189, allocated bytes for code 756 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
+Total bytes of code 772, prolog size 44, PerfScore 96.23, instruction count 193, allocated bytes for code 772 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -371,7 +370,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 189 (0x000bd) Actual length = 756 (0x0002f4)
+  Function Length   : 193 (0x000c1) Actual length = 772 (0x000304)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries_tests.run.windows.arm64.Release.mch

-16 (-3.60%) : 237998.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateEventMetadata(int,System.String,long,int,uint,int,System.Diagnostics.Tracing.TraceLoggingEventTypes):ubyte[]:this (Tier1)

@@ -16,24 +16,22 @@
 ;  V04 arg4         [V04,T08] (  3,  3   )     int  ->  x23         single-def
 ;  V05 arg5         [V05,T09] (  3,  3   )     int  ->  x24         single-def
 ;  V06 arg6         [V06,T10] (  3,  3   )     int  ->  x25         single-def
-;  V07 arg7         [V07,T01] (  4,  4   )     ref  ->   x7         class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingEventTypes>
-;  V08 loc0         [V08,T19] (  4,  2.51)     ref  ->  x26         class-hnd single-def <<unknown class>>
+;  V07 arg7         [V07,T02] (  4,  4   )     ref  ->   x7         class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingEventTypes>
+;  V08 loc0         [V08,T17] (  4,  2.51)     ref  ->  x26         class-hnd single-def <<unknown class>>
 ;  V09 loc1         [V09,T14] (  7,  3   )     ref  ->  x27         class-hnd exact single-def <<unknown class>>
 ;  V10 loc2         [V10,T13] (  6,  3.51)     ref  ->   x7         class-hnd exact single-def <<unknown class>>
-;  V11 loc3         [V11,T02] ( 13,  5.02)     int  ->   x8        
-;  V12 loc4         [V12,T15] (  5,  2   )     ref  ->   x9         class-hnd <System.String>
+;  V11 loc3         [V11,T01] ( 15,  7   )     int  ->   x8        
+;  V12 loc4         [V12,T15] (  5,  2   )     ref  ->  x15         class-hnd <System.String>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V14 tmp1         [V14,T00] (  8,  8   )   byref  ->   x2         "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Diagnostics.Tracing.TraceLoggingTypeInfo>
 ;  V16 tmp3         [V16,T11] (  4,  4   )     ref  ->   x4         class-hnd "Inlining Arg" <System.Type>
 ;  V17 tmp4         [V17,T12] (  4,  4   )     ref  ->   x3         class-hnd "Inlining Arg" <System.Diagnostics.Tracing.TraceLoggingTypeInfo>
-;  V18 cse0         [V18,T22] (  3,  0.03)     ref  ->   x3         "CSE - conservative"
+;  V18 cse0         [V18,T20] (  3,  0.03)     ref  ->   x3         "CSE - conservative"
 ;  V19 cse1         [V19,T16] (  3,  2.97)     ref  ->   x3         "CSE - moderate"
-;  V20 cse2         [V20,T17] (  3,  2.97)    long  ->  x12         "CSE - conservative"
-;  V21 cse3         [V21,T03] (  7,  5   )     int  ->  x28         "CSE - aggressive"
-;  V22 cse4         [V22,T20] (  4,  1.51)   byref  ->   x1         hoist multi-def "CSE - moderate"
-;  V23 cse5         [V23,T21] (  3,  0.52)     ref  ->   x0         hoist multi-def "CSE - moderate"
-;  V24 cse6         [V24,T18] (  3,  2.97)    long  ->  x15         "CSE - conservative"
+;  V20 cse2         [V20,T03] (  7,  5   )     int  ->  x28         "CSE - aggressive"
+;  V21 cse3         [V21,T18] (  4,  1.51)   byref  ->   x1         hoist multi-def "CSE - moderate"
+;  V22 cse4         [V22,T19] (  3,  0.52)     ref  ->   x0         hoist multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -92,26 +90,22 @@ G_M47438_IG04:        ; bbWeight=0.99, gcrefRegs=8180081 {x0 x7 x19 x20 x27}, by
             ; gcrRegs -[x26] +[x0]
             add     x14, x27, #16
             ; byrRegs +[x14]
-            mov     w15, w8
-            lsl     x12, x15, #3
-            ldr     x9, [x14, x12]
-            ; gcrRegs +[x9]
-            mov     x14, #24
+            ldr     x15, [x14, w8, UXTW #3]
+            ; gcrRegs +[x15]
+            mov     w14, #24
             ; byrRegs -[x14]
-            mul     x14, x15, x14
-            add     x14, x14, #16
+            mov     x12, #16
+            umaddl  x14, w8, w14, x12
             add     x2, x7, x14
             ; byrRegs +[x2]
-            ldr     x3, [x1, x12]
+            ldr     x3, [x1, w8, UXTW #3]
             ; gcrRegs +[x3]
             ldr     x4, [x3, #0x10]
             ; gcrRegs +[x4]
             mov     x14, x2
             ; byrRegs +[x14]
-            mov     x15, x9
-            ; gcrRegs +[x15]
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
-            ; gcrRegs -[x9 x15]
+            ; gcrRegs -[x15]
             ; byrRegs -[x14]
             add     x14, x2, #8
             ; byrRegs +[x14]
@@ -130,7 +124,7 @@ G_M47438_IG04:        ; bbWeight=0.99, gcrefRegs=8180081 {x0 x7 x19 x20 x27}, by
             add     w8, w8, #1
             cmp     w28, w8
             bgt     G_M47438_IG04
-                       ;; size=88 bbWeight=0.99 PerfScore 22.27
+                       ;; size=76 bbWeight=0.99 PerfScore 23.27
 G_M47438_IG05:        ; bbWeight=0.50, gcrefRegs=180080 {x7 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0 x27]
             ; byrRegs -[x1]
@@ -141,11 +135,11 @@ G_M47438_IG06:        ; bbWeight=0.01, gcrefRegs=C180080 {x7 x19 x20 x26 x27}, b
             movz    x0, #8
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
-            mov     x9, x0
-            ; gcrRegs +[x9]
+            mov     x15, x0
+            ; gcrRegs +[x15]
             cbnz    x27, G_M47438_IG11
                        ;; size=20 bbWeight=0.01 PerfScore 0.03
-G_M47438_IG07:        ; bbWeight=0.01, gcrefRegs=C180280 {x7 x9 x19 x20 x26 x27}, byrefRegs=0000 {}, byref, isz
+G_M47438_IG07:        ; bbWeight=0.01, gcrefRegs=C188080 {x7 x15 x19 x20 x26 x27}, byrefRegs=0000 {}, byref, isz
             ldr     w2, [x7, #0x08]
             cmp     w8, w2
             bhs     G_M47438_IG10
@@ -162,10 +156,8 @@ G_M47438_IG07:        ; bbWeight=0.01, gcrefRegs=C180280 {x7 x9 x19 x20 x26 x27}
             ; gcrRegs +[x4]
             mov     x14, x2
             ; byrRegs +[x14]
-            mov     x15, x9
-            ; gcrRegs +[x15]
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
-            ; gcrRegs -[x9 x15]
+            ; gcrRegs -[x15]
             ; byrRegs -[x1 x14]
             add     x14, x2, #8
             ; byrRegs +[x14]
@@ -184,7 +176,7 @@ G_M47438_IG07:        ; bbWeight=0.01, gcrefRegs=C180280 {x7 x9 x19 x20 x26 x27}
             add     w8, w8, #1
             cmp     w28, w8
             bgt     G_M47438_IG06
-                       ;; size=88 bbWeight=0.01 PerfScore 0.26
+                       ;; size=84 bbWeight=0.01 PerfScore 0.25
 G_M47438_IG08:        ; bbWeight=1, gcrefRegs=180080 {x7 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x26-x27]
             mov     x0, x19
@@ -223,12 +215,12 @@ G_M47438_IG11:        ; bbWeight=0, gcrefRegs=C180080 {x7 x19 x20 x26 x27}, byre
             bhs     G_M47438_IG10
             add     x0, x27, #16
             ; byrRegs +[x0]
-            ldr     x9, [x0, w8, UXTW #3]
-            ; gcrRegs +[x9]
+            ldr     x15, [x0, w8, UXTW #3]
+            ; gcrRegs +[x15]
             b       G_M47438_IG07
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 444, prolog size 56, PerfScore 66.56, instruction count 111, allocated bytes for code 444 (MethodHash=8fb946b1) for method System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateEventMetadata(int,System.String,long,int,uint,int,System.Diagnostics.Tracing.TraceLoggingEventTypes):ubyte[]:this (Tier1)
+Total bytes of code 428, prolog size 56, PerfScore 67.55, instruction count 107, allocated bytes for code 428 (MethodHash=8fb946b1) for method System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateEventMetadata(int,System.String,long,int,uint,int,System.Diagnostics.Tracing.TraceLoggingEventTypes):ubyte[]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -239,7 +231,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 111 (0x0006f) Actual length = 444 (0x0001bc)
+  Function Length   : 107 (0x0006b) Actual length = 428 (0x0001ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-36 (-1.58%) : 332043.dasm - Xunit.Sdk.TestInvoker`1+<>cDisplayClass48_0+<b1>d[System.__Canon]:MoveNext():this (Tier1)

@@ -9,17 +9,17 @@
 ; 10 inlinees with PGO data; 32 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 22,  8.19)   byref  ->  [fp+0x10]  this EH-live single-def
+;  V00 this         [V00,T00] ( 22,  8.19)   byref  ->  [fp+0x18]  this EH-live single-def
 ;  V01 TypeCtx      [V01,T01] (  9,  4.27)    long  ->  x19         single-def
 ;  V02 loc0         [V02,T09] (  3,  2.56)     int  ->   x0         single-def
 ;  V03 loc1         [V03,T07] ( 10,  3.30)     ref  ->  x20         class-hnd exact single-def <<unknown class>>
 ;  V04 loc2         [V04,T25] (  5,  1.21)     int  ->  x21         single-def
 ;  V05 loc3         [V05,T21] (  7,  1.69)     int  ->  x22        
-;  V06 loc4         [V06,T54] (  4,  0   )     ref  ->  x25         class-hnd single-def <System.Reflection.ParameterInfo>
-;  V07 loc5         [V07,T14] (  4,  2.14)     ref  ->  x22         class-hnd single-def <System.Threading.Tasks.Task>
-;  V08 loc6         [V08    ] (  6,  2.85)  struct ( 8) [fp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
+;  V06 loc4         [V06,T54] (  4,  0   )     ref  ->  x23         class-hnd single-def <System.Reflection.ParameterInfo>
+;  V07 loc5         [V07,T14] (  4,  2.14)     ref  ->  x21         class-hnd single-def <System.Threading.Tasks.Task>
+;  V08 loc6         [V08    ] (  6,  2.85)  struct ( 8) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
 ;  V09 loc7         [V09,T38] (  4,  0.10)     ref  ->   x2         class-hnd single-def <System.Exception>
-;  V10 loc8         [V10    ] (  7,  0.21)  struct ( 8) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter`1[System.Exception]>
+;  V10 loc8         [V10    ] (  7,  0.21)  struct ( 8) [fp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter`1[System.Exception]>
 ;* V11 loc9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V13 tmp1         [V13    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
@@ -28,11 +28,11 @@
 ;  V16 tmp4         [V16,T27] (  3,  1.12)     int  ->  x22        
 ;* V17 tmp5         [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V18 tmp6         [V18    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V19 tmp7         [V19,T63] (  3,  0   )    long  ->   x1         "spilling helperCall"
+;  V19 tmp7         [V19,T62] (  3,  0   )    long  ->   x1         "spilling helperCall"
 ;  V20 tmp8         [V20,T20] (  3,  1.76)    long  ->   x1         "spilling helperCall"
-;  V21 tmp9         [V21,T57] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V22 tmp10        [V22,T40] (  7,  0.01)     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Object[]>
-;  V23 tmp11        [V23,T45] (  2,  0.00)     ref  ->  x23         class-hnd single-def "impSpillLclRefs" <Xunit.Sdk.ExceptionAggregator>
+;  V21 tmp9         [V21,T56] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V22 tmp10        [V22,T40] (  7,  0.01)     ref  ->  x19         class-hnd exact single-def "dup spill" <System.Object[]>
+;  V23 tmp11        [V23,T45] (  2,  0.00)     ref  ->  x20         class-hnd single-def "impSpillLclRefs" <Xunit.Sdk.ExceptionAggregator>
 ;  V24 tmp12        [V24,T43] (  3,  0.00)     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;* V25 tmp13        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp14        [V26    ] (  0,  0   )     ref  ->  zero-ref    single-def
@@ -44,7 +44,7 @@
 ;* V32 tmp20        [V32    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V33 tmp21        [V33    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V34 tmp22        [V34    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V35 tmp23        [V35,T50] (  3,  0.00)     ref  ->   x2        
+;  V35 tmp23        [V35,T50] (  2,  0.00)     ref  ->   x2        
 ;  V36 tmp24        [V36,T44] (  3,  0.00)     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;* V37 tmp25        [V37    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V38 tmp26        [V38    ] (  0,  0   )     ref  ->  zero-ref    single-def
@@ -56,7 +56,7 @@
 ;* V44 tmp32        [V44    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V45 tmp33        [V45    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V46 tmp34        [V46    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V47 tmp35        [V47,T51] (  3,  0.00)     ref  ->   x2        
+;  V47 tmp35        [V47,T51] (  2,  0.00)     ref  ->   x2        
 ;* V48 tmp36        [V48    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V49 tmp37        [V49    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V50 tmp38        [V50    ] (  0,  0   )     ref  ->  zero-ref    single-def
@@ -68,15 +68,15 @@
 ;* V56 tmp44        [V56    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V57 tmp45        [V57    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;  V58 tmp46        [V58,T52] (  2,  0.00)     ref  ->   x2        
-;  V59 tmp47        [V59,T42] (  4,  0.00)     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V60 tmp48        [V60,T58] (  3,  0   )     ref  ->  x23         class-hnd exact single-def "dup spill" <System.Object[]>
-;  V61 tmp49        [V61,T65] (  2,  0   )     ref  ->  x22         class-hnd single-def "impSpillLclRefs" <Xunit.Sdk.TestInvoker`1[System.__Canon]>
-;  V62 tmp50        [V62,T66] (  2,  0   )     ref  ->  x15         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Array>
-;  V63 tmp51        [V63,T67] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V59 tmp47        [V59,T42] (  4,  0.00)     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V60 tmp48        [V60,T57] (  3,  0   )     ref  ->  x24         class-hnd exact single-def "dup spill" <System.Object[]>
+;  V61 tmp49        [V61,T64] (  2,  0   )     ref  ->  x22         class-hnd single-def "impSpillLclRefs" <Xunit.Sdk.TestInvoker`1[System.__Canon]>
+;  V62 tmp50        [V62,T65] (  2,  0   )     ref  ->  x15         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Array>
+;  V63 tmp51        [V63,T66] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;  V64 tmp52        [V64,T26] (  3,  1.12)     ref  ->   x0         "guarded devirt return temp"
 ;* V65 tmp53        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo>
-;  V66 tmp54        [V66,T28] (  3,  1.12)     ref  ->  x27         "guarded devirt return temp"
-;  V67 tmp55        [V67,T02] (  6,  4.49)     ref  ->  x26         single-def "guarded devirt arg temp"
+;  V66 tmp54        [V66,T28] (  3,  1.12)     ref  ->  x23         "guarded devirt return temp"
+;  V67 tmp55        [V67,T02] (  6,  4.49)     ref  ->  x22         single-def "guarded devirt arg temp"
 ;  V68 tmp56        [V68,T11] (  3,  2.24)     ref  ->   x1         single-def "guarded devirt arg temp"
 ;* V69 tmp57        [V69    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Xunit.Sdk.XunitTestInvoker>
 ;* V70 tmp58        [V70    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Xunit.Sdk.TestInvoker`1[System.__Canon]>
@@ -105,11 +105,11 @@
 ;* V93 tmp81        [V93    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Xunit.Sdk.TestInvoker`1[System.__Canon]>
 ;* V94 tmp82        [V94    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Xunit.Sdk.ExceptionAggregator>
 ;  V95 tmp83        [V95,T53] (  7,  0   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V96 tmp84        [V96,T59] (  3,  0   )     ref  ->   x5         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V97 tmp85        [V97,T56] (  4,  0   )     int  ->   x4         single-def "Inline stloc first use temp"
+;  V96 tmp84        [V96,T58] (  3,  0   )     ref  ->   x5         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V97 tmp85        [V97,T55] (  4,  0   )     int  ->   x4         single-def "Inline stloc first use temp"
 ;  V98 tmp86        [V98,T06] (  4,  3.35)   byref  ->  x14         single-def "Inlining Arg"
 ;* V99 tmp87        [V99    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
-;  V100 tmp88       [V100,T03] ( 10,  4.19)     ref  ->  x22         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
+;  V100 tmp88       [V100,T03] ( 10,  4.19)     ref  ->  x21         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V101 tmp89       [V101    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.Tasks.VoidTaskResult>
 ;* V102 tmp90       [V102    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Threading.Tasks.TplEventSource>
 ;* V103 tmp91       [V103    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -117,57 +117,54 @@
 ;* V105 tmp93       [V105    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
 ;* V106 tmp94       [V106    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V107 tmp95       [V107,T33] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V108 tmp96       [V108,T32] (  3,  0.61)     ref  ->  x27         class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
+;  V108 tmp96       [V108,T32] (  3,  0.61)     ref  ->  x23         class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
 ;  V109 tmp97       [V109,T35] (  2,  0   )   ubyte  ->   x0         "Inline return value spill temp"
 ;  V110 tmp98       [V110,T23] (  5,  1.52)     int  ->   x1         single-def "Inline stloc first use temp"
 ;  V111 tmp99       [V111,T31] (  3,  0.88)     ref  ->   x1         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;  V112 tmp100      [V112,T19] (  3,  1.83)   byref  ->   x0         single-def "Inlining Arg"
 ;  V113 tmp101      [V113,T24] (  2,  1.22)     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Object>
-;  V114 tmp102      [V114    ] (  6,  2.85)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V08.m_task (fldOffset=0x0)" P-DEP
-;  V115 tmp103      [V115    ] (  7,  0.21)     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V10.m_task (fldOffset=0x0)" P-DEP
-;  V116 tmp104      [V116,T29] (  2,  1.02)     ref  ->  x22         single-def "field V80.m_task (fldOffset=0x0)" P-INDEP
+;  V114 tmp102      [V114    ] (  6,  2.85)     ref  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V08.m_task (fldOffset=0x0)" P-DEP
+;  V115 tmp103      [V115    ] (  7,  0.21)     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V10.m_task (fldOffset=0x0)" P-DEP
+;  V116 tmp104      [V116,T29] (  2,  1.02)     ref  ->  x21         single-def "field V80.m_task (fldOffset=0x0)" P-INDEP
 ;  V117 tmp105      [V117,T39] (  2,  0.10)     ref  ->   x0         single-def "field V87.m_task (fldOffset=0x0)" P-INDEP
-;  V118 tmp106      [V118,T60] (  3,  0   )     ref  ->   x0         single-def "arr expr"
-;  V119 tmp107      [V119,T61] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V120 tmp108      [V120,T62] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
-;  V121 tmp109      [V121,T68] (  2,  0   )     ref  ->  x24         single-def "argument with side effect"
-;  V122 tmp110      [V122,T69] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V118 tmp106      [V118,T59] (  3,  0   )     ref  ->   x0         single-def "arr expr"
+;  V119 tmp107      [V119,T60] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V120 tmp108      [V120,T61] (  3,  0   )     ref  ->   x0         single-def "argument with side effect"
+;  V121 tmp109      [V121,T67] (  2,  0   )     ref  ->  x23         single-def "argument with side effect"
+;  V122 tmp110      [V122,T68] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;  V123 tmp111      [V123,T05] (  3,  3.37)     ref  ->   x0         single-def "argument with side effect"
 ;  V124 tmp112      [V124,T13] (  2,  2.24)    long  ->   x0         "argument with side effect"
-;  V125 tmp113      [V125,T70] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V125 tmp113      [V125,T69] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;  V126 tmp114      [V126,T46] (  2,  0.00)     ref  ->   x1         single-def "argument with side effect"
-;  V127 tmp115      [V127,T72] (  2,  0   )     int  ->   x1         "argument with side effect"
-;  V128 tmp116      [V128,T71] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
-;  V129 PSPSym      [V129,T30] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[V] "PSPSym"
+;  V127 tmp115      [V127,T71] (  2,  0   )     int  ->   x1         "argument with side effect"
+;  V128 tmp116      [V128,T70] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
+;  V129 PSPSym      [V129,T30] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;  V130 cse0        [V130,T22] (  3,  1.69)     ref  ->   x0         "CSE - moderate"
 ;  V131 cse1        [V131,T18] (  6,  1.83)   byref  ->   x0         multi-def "CSE - moderate"
-;  V132 cse2        [V132,T55] (  4,  0   )     ref  ->   x2         multi-def "CSE - conservative"
-;  V133 cse3        [V133,T47] (  3,  0.00)    long  ->  x25         "CSE - conservative"
-;  V134 rat0        [V134,T12] (  3,  2.24)    long  ->   x0         "runtime lookup"
-;  V135 rat1        [V135,T08] (  3,  3.14)    long  ->   x0         "fgMakeTemp is creating a new local variable"
-;  V136 rat2        [V136,T10] (  3,  2.46)    long  ->   x0         "spilling expr"
-;  V137 rat3        [V137,T17] (  3,  1.97)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;  V138 rat4        [V138,T64] (  3,  0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V132 cse2        [V132,T47] (  3,  0.00)    long  ->  x23         "CSE - conservative"
+;  V133 rat0        [V133,T12] (  3,  2.24)    long  ->   x0         "runtime lookup"
+;  V134 rat1        [V134,T08] (  3,  3.14)    long  ->   x0         "fgMakeTemp is creating a new local variable"
+;  V135 rat2        [V135,T10] (  3,  2.46)    long  ->   x0         "spilling expr"
+;  V136 rat3        [V136,T17] (  3,  1.97)    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V137 rat4        [V137,T63] (  3,  0   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 48
 
 G_M13906_IG01:        ; bbWeight=1, gcVars=00000000000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
-            stp     x19, x20, [sp, #0x38]
-            stp     x21, x22, [sp, #0x48]
-            stp     x23, x24, [sp, #0x58]
-            stp     x25, x26, [sp, #0x68]
-            str     x27, [sp, #0x78]
+            stp     fp, lr, [sp, #-0x70]!
+            stp     x19, x20, [sp, #0x40]
+            stp     x21, x22, [sp, #0x50]
+            stp     x23, x24, [sp, #0x60]
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x18]  // [V10 loc8], [V08 loc6]
-            add     x2, sp, #128
-            stp     x1, x2, [fp, #0x28]    // [V129 PSPSym]
-            str     x0, [fp, #0x10]    // [V00 this]
+            stp     xzr, xzr, [fp, #0x20]  // [V10 loc8], [V08 loc6]
+            add     x2, sp, #112
+            stp     x1, x2, [fp, #0x30]    // [V129 PSPSym]
+            str     x0, [fp, #0x18]    // [V00 this]
             ; GC ptr vars +{V00}
             mov     x3, x0
             ; byrRegs +[x3]
             mov     x19, x1
-                       ;; size=52 bbWeight=1 PerfScore 11.00
+                       ;; size=44 bbWeight=1 PerfScore 9.00
 G_M13906_IG02:        ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, gcvars, byref
             ldr     w0, [x3, #0x08]
             ldr     x20, [x3]
@@ -175,7 +172,7 @@ G_M13906_IG02:        ; bbWeight=1, gcVars=00000000000000000000000000000001 {V00
                        ;; size=8 bbWeight=1 PerfScore 6.00
 G_M13906_IG03:        ; bbWeight=1.00, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x3]
-            cbz     w0, G_M13906_IG39
+            cbz     w0, G_M13906_IG36
                        ;; size=4 bbWeight=1.00 PerfScore 1.00
 G_M13906_IG04:        ; bbWeight=0.56, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
             cmp     w0, #1
@@ -212,15 +209,15 @@ G_M13906_IG07:        ; bbWeight=0.56, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             bne     G_M13906_IG13
                        ;; size=8 bbWeight=0.56 PerfScore 0.84
 G_M13906_IG08:        ; bbWeight=0.56, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            ldp     x26, x1, [x20, #0x08]
-            ; gcrRegs +[x1 x26]
-            ldr     x0, [x26]
+            ldp     x22, x1, [x20, #0x08]
+            ; gcrRegs +[x1 x22]
+            ldr     x0, [x22]
             movz    x4, #0xD1FFAB1E
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             cmp     x0, x4
             bne     G_M13906_IG24
-            ldp     x0, x4, [x26, #0x38]
+            ldp     x0, x4, [x22, #0x38]
             ; gcrRegs +[x0 x4]
             mov     w2, wzr
             mov     x3, xzr
@@ -229,21 +226,21 @@ G_M13906_IG08:        ; bbWeight=0.56, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ldr     x6, [x6, #0x60]
             ldr     x6, [x6, #0x30]
             blr     x6
-            ; gcrRegs -[x1 x4 x26]
+            ; gcrRegs -[x1 x4 x22]
             ; gcr arg pop 0
-            mov     x27, x0
-            ; gcrRegs +[x27]
+            mov     x23, x0
+            ; gcrRegs +[x23]
                        ;; size=64 bbWeight=0.56 PerfScore 14.59
-G_M13906_IG09:        ; bbWeight=0.56, gcrefRegs=8100000 {x20 x27}, byrefRegs=0000 {}, byref, isz
+G_M13906_IG09:        ; bbWeight=0.56, gcrefRegs=900000 {x20 x23}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
             ldr     x0, [x19, #0x38]
             ldr     x0, [x0]
             ldr     x0, [x0, #0x10]
-            cbz     x0, G_M13906_IG31
-            b       G_M13906_IG30
+            cbz     x0, G_M13906_IG28
+            b       G_M13906_IG27
                        ;; size=20 bbWeight=0.56 PerfScore 6.17
 G_M13906_IG10:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x27]
+            ; gcrRegs -[x23]
             ldr     x0, [x20, #0x08]
             ; gcrRegs +[x0]
             ldr     x0, [x0, #0x38]
@@ -255,9 +252,9 @@ G_M13906_IG10:        ; bbWeight=0, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, b
             ldr     w1, [x0, #0x08]
             cmp     w1, #0
             bls     G_M13906_IG15
-            ldr     x25, [x0, #0x10]
-            ; gcrRegs +[x25]
-            mov     x0, x25
+            ldr     x23, [x0, #0x10]
+            ; gcrRegs +[x23]
+            mov     x0, x23
...

-4 (-1.45%) : 89354.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)

@@ -40,7 +40,6 @@
 ;* V28 tmp26        [V28    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V14.array (fldOffset=0x0)" P-DEP
 ;* V29 tmp27        [V29    ] (  0,  0   )     ref  ->  zero-ref    "field V15.array (fldOffset=0x0)" P-INDEP
 ;* V30 tmp28        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V23.array (fldOffset=0x0)" P-INDEP
-;  V31 cse0         [V31,T10] (  2,  0   )    long  ->   x0         "CSE - conservative"
 ;
 ; Lcl frame size = 0
 
@@ -108,7 +107,6 @@ G_M22152_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
-            add     x0, x0, #0xD1FFAB1E
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             mov     x20, x0
@@ -136,7 +134,7 @@ G_M22152_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=280000
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             b       G_M22152_IG03
-                       ;; size=100 bbWeight=0 PerfScore 0.00
+                       ;; size=96 bbWeight=0 PerfScore 0.00
 G_M22152_IG08:        ; bbWeight=0, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x21] +[x1]
             ldr     x0, [x20, #0x08]
@@ -160,7 +158,7 @@ G_M22152_IG09:        ; bbWeight=0, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}
             b       G_M22152_IG05
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 276, prolog size 16, PerfScore 31.00, instruction count 69, allocated bytes for code 276 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
+Total bytes of code 272, prolog size 16, PerfScore 31.00, instruction count 68, allocated bytes for code 272 (MethodHash=76b8a977) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -171,7 +169,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 69 (0x00045) Actual length = 276 (0x000114)
+  Function Length   : 68 (0x00044) Actual length = 272 (0x000110)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+1.96%) : 298522.dasm - System.Linq.Parallel.HashRepartitionStream3[int,int,int]:.ctor(int,System.Collections.Generic.IComparer1[int],System.Collections.Generic.IEqualityComparer1[int],System.Collections.Generic.IEqualityComparer1[int]):this (Tier1)

@@ -9,13 +9,12 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 11,  9.13)     ref  ->  x19         this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[int,int,int]>
+;  V00 this         [V00,T00] ( 12,  9.19)     ref  ->  x19         this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[int,int,int]>
 ;  V01 arg1         [V01,T01] (  5,  4.06)     int  ->  x20         single-def
 ;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <System.Collections.Generic.IComparer`1[int]>
 ;  V03 arg3         [V03,T03] (  3,  3   )     ref  ->  x22         class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[int]>
 ;  V04 arg4         [V04,T04] (  3,  3   )     ref  ->  x23         class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 cse0         [V06,T05] (  3,  0.19)     int  ->   x0         "CSE - conservative"
 ;
 ; Lcl frame size = 8
 
@@ -96,10 +95,11 @@ G_M63590_IG04:        ; bbWeight=0.06, gcVars=0000000000000000 {}, gcrefRegs=800
             cmp     w2, w0,  ASR #31
             bne     G_M63590_IG05
             str     w0, [x19, #0x30]
+            ldr     w0, [x19, #0x30]
             cmp     w0, w20
             blt     G_M63590_IG04
             b       G_M63590_IG03
-                       ;; size=40 bbWeight=0.06 PerfScore 0.76
+                       ;; size=44 bbWeight=0.06 PerfScore 0.95
 G_M63590_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             bl      CORINFO_HELP_OVERFLOW
@@ -107,7 +107,7 @@ G_M63590_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 204, prolog size 40, PerfScore 32.26, instruction count 51, allocated bytes for code 204 (MethodHash=b0a20799) for method System.Linq.Parallel.HashRepartitionStream`3[int,int,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[int],System.Collections.Generic.IEqualityComparer`1[int]):this (Tier1)
+Total bytes of code 208, prolog size 40, PerfScore 32.45, instruction count 52, allocated bytes for code 208 (MethodHash=b0a20799) for method System.Linq.Parallel.HashRepartitionStream`3[int,int,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[int],System.Collections.Generic.IEqualityComparer`1[int]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -118,7 +118,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+1.96%) : 298851.dasm - System.Linq.Parallel.HashRepartitionStream3[int,System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer1[int],System.Collections.Generic.IEqualityComparer1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer1[int]):this (Tier1)

@@ -9,13 +9,12 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 11,  9.19)     ref  ->  x19         this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[int,System.Linq.Parallel.NoKeyMemoizationRequired,int]>
+;  V00 this         [V00,T00] ( 12,  9.29)     ref  ->  x19         this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[int,System.Linq.Parallel.NoKeyMemoizationRequired,int]>
 ;  V01 arg1         [V01,T01] (  5,  4.10)     int  ->  x20         single-def
 ;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <System.Collections.Generic.IComparer`1[int]>
 ;  V03 arg3         [V03,T03] (  3,  3   )     ref  ->  x22         class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired]>
 ;  V04 arg4         [V04,T04] (  3,  3   )     ref  ->  x23         class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 cse0         [V06,T05] (  3,  0.29)     int  ->   x0         "CSE - conservative"
 ;
 ; Lcl frame size = 8
 
@@ -96,10 +95,11 @@ G_M33830_IG04:        ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=800
             cmp     w2, w0,  ASR #31
             bne     G_M33830_IG05
             str     w0, [x19, #0x30]
+            ldr     w0, [x19, #0x30]
             cmp     w0, w20
             blt     G_M33830_IG04
             b       G_M33830_IG03
-                       ;; size=40 bbWeight=0.10 PerfScore 1.16
+                       ;; size=44 bbWeight=0.10 PerfScore 1.45
 G_M33830_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             bl      CORINFO_HELP_OVERFLOW
@@ -107,7 +107,7 @@ G_M33830_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 204, prolog size 40, PerfScore 32.66, instruction count 51, allocated bytes for code 204 (MethodHash=7f8a7bd9) for method System.Linq.Parallel.HashRepartitionStream`3[int,System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer`1[int]):this (Tier1)
+Total bytes of code 208, prolog size 40, PerfScore 32.95, instruction count 52, allocated bytes for code 208 (MethodHash=7f8a7bd9) for method System.Linq.Parallel.HashRepartitionStream`3[int,System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer`1[int]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -118,7 +118,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+1.96%) : 299195.dasm - System.Linq.Parallel.HashRepartitionStream3[System.Collections.Generic.KeyValuePair2[int,int],System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer1[int],System.Collections.Generic.IEqualityComparer1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer1[System.Collections.Generic.KeyValuePair2[int,int]]):this (Tier1)

@@ -9,13 +9,12 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 11,  9.22)     ref  ->  x19         this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[System.Collections.Generic.KeyValuePair`2[int,int],System.Linq.Parallel.NoKeyMemoizationRequired,int]>
+;  V00 this         [V00,T00] ( 12,  9.33)     ref  ->  x19         this class-hnd single-def <System.Linq.Parallel.HashRepartitionStream`3[System.Collections.Generic.KeyValuePair`2[int,int],System.Linq.Parallel.NoKeyMemoizationRequired,int]>
 ;  V01 arg1         [V01,T01] (  5,  4.11)     int  ->  x20         single-def
 ;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <System.Collections.Generic.IComparer`1[int]>
 ;  V03 arg3         [V03,T03] (  3,  3   )     ref  ->  x22         class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired]>
 ;  V04 arg4         [V04,T04] (  3,  3   )     ref  ->  x23         class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[int,int]]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 cse0         [V06,T05] (  3,  0.33)     int  ->   x0         "CSE - conservative"
 ;
 ; Lcl frame size = 8
 
@@ -96,10 +95,11 @@ G_M10918_IG04:        ; bbWeight=0.11, gcVars=0000000000000000 {}, gcrefRegs=800
             cmp     w2, w0,  ASR #31
             bne     G_M10918_IG05
             str     w0, [x19, #0x30]
+            ldr     w0, [x19, #0x30]
             cmp     w0, w20
             blt     G_M10918_IG04
             b       G_M10918_IG03
-                       ;; size=40 bbWeight=0.11 PerfScore 1.33
+                       ;; size=44 bbWeight=0.11 PerfScore 1.67
 G_M10918_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             bl      CORINFO_HELP_OVERFLOW
@@ -107,7 +107,7 @@ G_M10918_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 204, prolog size 40, PerfScore 32.83, instruction count 51, allocated bytes for code 204 (MethodHash=0e8dd559) for method System.Linq.Parallel.HashRepartitionStream`3[System.Collections.Generic.KeyValuePair`2[int,int],System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[int,int]]):this (Tier1)
+Total bytes of code 208, prolog size 40, PerfScore 33.17, instruction count 52, allocated bytes for code 208 (MethodHash=0e8dd559) for method System.Linq.Parallel.HashRepartitionStream`3[System.Collections.Generic.KeyValuePair`2[int,int],System.Linq.Parallel.NoKeyMemoizationRequired,int]:.ctor(int,System.Collections.Generic.IComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.Linq.Parallel.NoKeyMemoizationRequired],System.Collections.Generic.IEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[int,int]]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -118,7 +118,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.windows.arm64.Release.mch

-12 (-2.24%) : 304834.dasm - System.Threading.Channels.Tests.ChannelTests+TestChannelWriter1[int]:WaitToWriteAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask1[ubyte]:this (FullOpts)

@@ -11,26 +11,26 @@
 ;  V00 this         [V00,T00] (  5,  4.50)     ref  ->   x0         this class-hnd single-def <System.Threading.Channels.Tests.ChannelTests+TestChannelWriter`1[int]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Threading.CancellationToken>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03    ] (  5,  5   )  struct (16) [fp+0x38]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+;  V03 tmp1         [V03    ] (  5,  5   )  struct (16) [fp+0x30]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
 ;  V04 tmp2         [V04,T09] (  2,  2   )     ref  ->   x1         class-hnd single-def "dup spill" <System.Func`2[System.Threading.Tasks.Task,ubyte]>
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task>
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;  V07 tmp5         [V07,T08] (  4,  2   )     ref  ->   x1        
-;  V08 tmp6         [V08    ] (  5,  5   )  struct (16) [fp+0x28]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+;  V08 tmp6         [V08    ] (  5,  5   )  struct (16) [fp+0x20]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
 ;  V09 tmp7         [V09,T01] (  5,  5   )     ref  ->   x1         class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Threading.Tasks.Task,ubyte]>
-;  V10 tmp8         [V10    ] (  5,  5   )  struct (16) [fp+0x18]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
+;  V10 tmp8         [V10    ] (  5,  5   )  struct (16) [fp+0x10]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[ubyte]>
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte]>
 ;* V12 tmp10        [V12    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V13 tmp11        [V13,T24] (  2,  1   )     ref  ->   x0         single-def
+;  V13 tmp11        [V13,T23] (  2,  1   )     ref  ->   x0         single-def
 ;* V14 tmp12        [V14    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[ubyte]>
 ;* V15 tmp13        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V16 tmp14        [V16    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V17 tmp15        [V17,T25] (  2,  1   )     ref  ->  x21         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+;  V17 tmp15        [V17,T24] (  2,  1   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V18 tmp16        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;  V19 tmp17        [V19,T10] (  2,  2   )     ref  ->  x19         class-hnd single-def "Inlining Arg" <System.TimeProvider>
 ;* V20 tmp18        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V21 tmp19        [V21,T03] (  3,  3   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V22 tmp20        [V22,T30] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;  V21 tmp19        [V21,T03] (  3,  3   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V22 tmp20        [V22,T29] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V23 tmp21        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V24 tmp22        [V24    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V25 tmp23        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -70,24 +70,24 @@
 ;  V59 tmp57        [V59,T05] (  3,  3   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[ubyte]>
 ;* V60 tmp58        [V60    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte]>
 ;* V61 tmp59        [V61    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V62 tmp60        [V62,T26] (  2,  1   )     ref  ->   x0         single-def
+;  V62 tmp60        [V62,T25] (  2,  1   )     ref  ->   x0         single-def
 ;* V63 tmp61        [V63    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[ubyte]>
 ;  V64 tmp62        [V64,T07] (  1,  1   )     ref  ->   x1         single-def "field V01._source (fldOffset=0x0)" P-INDEP
-;  V65 tmp63        [V65,T12] (  2,  1.50)     ref  ->  [fp+0x38]  do-not-enreg[] single-def "field V03._obj (fldOffset=0x0)" P-DEP
-;  V66 tmp64        [V66,T15] (  2,  1.50)   short  ->  [fp+0x40]  do-not-enreg[] single-def "field V03._token (fldOffset=0x8)" P-DEP
-;  V67 tmp65        [V67,T16] (  2,  1.50)   ubyte  ->  [fp+0x42]  do-not-enreg[] single-def "field V03._result (fldOffset=0xa)" P-DEP
-;  V68 tmp66        [V68,T17] (  2,  1.50)   ubyte  ->  [fp+0x43]  do-not-enreg[] single-def "field V03._continueOnCapturedContext (fldOffset=0xb)" P-DEP
-;  V69 tmp67        [V69,T13] (  2,  1.50)     ref  ->  [fp+0x28]  do-not-enreg[] single-def "field V08._obj (fldOffset=0x0)" P-DEP
-;  V70 tmp68        [V70,T18] (  2,  1.50)   short  ->  [fp+0x30]  do-not-enreg[] single-def "field V08._token (fldOffset=0x8)" P-DEP
-;  V71 tmp69        [V71,T19] (  2,  1.50)   ubyte  ->  [fp+0x32]  do-not-enreg[] single-def "field V08._result (fldOffset=0xa)" P-DEP
-;  V72 tmp70        [V72,T20] (  2,  1.50)   ubyte  ->  [fp+0x33]  do-not-enreg[] single-def "field V08._continueOnCapturedContext (fldOffset=0xb)" P-DEP
-;  V73 tmp71        [V73,T14] (  2,  1.50)     ref  ->  [fp+0x18]  do-not-enreg[] single-def "field V10._obj (fldOffset=0x0)" P-DEP
-;  V74 tmp72        [V74,T21] (  2,  1.50)   short  ->  [fp+0x20]  do-not-enreg[] single-def "field V10._token (fldOffset=0x8)" P-DEP
-;  V75 tmp73        [V75,T22] (  2,  1.50)   ubyte  ->  [fp+0x22]  do-not-enreg[] single-def "field V10._result (fldOffset=0xa)" P-DEP
-;  V76 tmp74        [V76,T23] (  2,  1.50)   ubyte  ->  [fp+0x23]  do-not-enreg[] single-def "field V10._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+;  V65 tmp63        [V65,T11] (  2,  1.50)     ref  ->  [fp+0x30]  do-not-enreg[] single-def "field V03._obj (fldOffset=0x0)" P-DEP
+;  V66 tmp64        [V66,T14] (  2,  1.50)   short  ->  [fp+0x38]  do-not-enreg[] single-def "field V03._token (fldOffset=0x8)" P-DEP
+;  V67 tmp65        [V67,T15] (  2,  1.50)   ubyte  ->  [fp+0x3A]  do-not-enreg[] single-def "field V03._result (fldOffset=0xa)" P-DEP
+;  V68 tmp66        [V68,T16] (  2,  1.50)   ubyte  ->  [fp+0x3B]  do-not-enreg[] single-def "field V03._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+;  V69 tmp67        [V69,T12] (  2,  1.50)     ref  ->  [fp+0x20]  do-not-enreg[] single-def "field V08._obj (fldOffset=0x0)" P-DEP
+;  V70 tmp68        [V70,T17] (  2,  1.50)   short  ->  [fp+0x28]  do-not-enreg[] single-def "field V08._token (fldOffset=0x8)" P-DEP
+;  V71 tmp69        [V71,T18] (  2,  1.50)   ubyte  ->  [fp+0x2A]  do-not-enreg[] single-def "field V08._result (fldOffset=0xa)" P-DEP
+;  V72 tmp70        [V72,T19] (  2,  1.50)   ubyte  ->  [fp+0x2B]  do-not-enreg[] single-def "field V08._continueOnCapturedContext (fldOffset=0xb)" P-DEP
+;  V73 tmp71        [V73,T13] (  2,  1.50)     ref  ->  [fp+0x10]  do-not-enreg[] single-def "field V10._obj (fldOffset=0x0)" P-DEP
+;  V74 tmp72        [V74,T20] (  2,  1.50)   short  ->  [fp+0x18]  do-not-enreg[] single-def "field V10._token (fldOffset=0x8)" P-DEP
+;  V75 tmp73        [V75,T21] (  2,  1.50)   ubyte  ->  [fp+0x1A]  do-not-enreg[] single-def "field V10._result (fldOffset=0xa)" P-DEP
+;  V76 tmp74        [V76,T22] (  2,  1.50)   ubyte  ->  [fp+0x1B]  do-not-enreg[] single-def "field V10._continueOnCapturedContext (fldOffset=0xb)" P-DEP
 ;* V77 tmp75        [V77    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V15._source (fldOffset=0x0)" P-INDEP
 ;* V78 tmp76        [V78    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V16._source (fldOffset=0x0)" P-INDEP
-;* V79 tmp77        [V79,T29] (  0,  0   )     ref  ->  zero-ref    single-def "field V18._source (fldOffset=0x0)" P-INDEP
+;* V79 tmp77        [V79,T28] (  0,  0   )     ref  ->  zero-ref    single-def "field V18._source (fldOffset=0x0)" P-INDEP
 ;* V80 tmp78        [V80    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V24._source (fldOffset=0x0)" P-DEP
 ;* V81 tmp79        [V81    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V32._node (fldOffset=0x0)" P-DEP
 ;* V82 tmp80        [V82    ] (  0,  0   )    long  ->  zero-ref    single-def "field V32._id (fldOffset=0x8)" P-DEP
@@ -96,24 +96,22 @@
 ;* V85 tmp83        [V85    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V51._node (fldOffset=0x0)" P-INDEP
 ;* V86 tmp84        [V86    ] (  0,  0   )    long  ->  zero-ref    single-def "field V51._id (fldOffset=0x8)" P-INDEP
 ;  V87 tmp85        [V87,T06] (  3,  3   )     ref  ->   x0         single-def "argument with side effect"
-;* V88 cse0         [V88,T31] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
-;  V89 cse1         [V89,T27] (  2,  1   )    long  ->   x0         "CSE - moderate"
+;* V88 cse0         [V88,T30] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
+;  V89 cse1         [V89,T26] (  2,  1   )    long  ->   x0         "CSE - moderate"
 ;  V90 cse2         [V90,T02] (  6,  3   )    long  ->  x19         multi-def "CSE - aggressive"
-;  V91 cse3         [V91,T11] (  3,  1.50)    long  ->  x20         "CSE - conservative"
-;  V92 rat0         [V92,T28] (  2,  1   )    long  ->   x0         "Spilling to split statement for tree"
+;  V91 rat0         [V91,T27] (  2,  1   )    long  ->   x0         "Spilling to split statement for tree"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 48
 
 G_M56691_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x60]!
-            stp     x19, x20, [sp, #0x48]
-            str     x21, [sp, #0x58]
+            stp     fp, lr, [sp, #-0x50]!
+            stp     x19, x20, [sp, #0x40]
             mov     fp, sp
-            add     x9, fp, #24
+            add     x9, fp, #16
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     xzr, xzr, [x9, #0x20]
-                       ;; size=32 bbWeight=1 PerfScore 6.50
+                       ;; size=28 bbWeight=1 PerfScore 5.50
 G_M56691_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldp     w2, w1, [x0, #0x10]
@@ -135,21 +133,20 @@ G_M56691_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
             movk    x19, #0xD1FFAB1E LSL #32
             ldr     x0, [x19, #0xD1FFAB1E]
             ; gcrRegs +[x0]
-            str     x0, [fp, #0x18]    // [V73 tmp71]
-            strb    wzr, [fp, #0x22]   // [V75 tmp73]
+            str     x0, [fp, #0x10]    // [V73 tmp71]
+            strb    wzr, [fp, #0x1A]   // [V75 tmp73]
             mov     w0, #1
             ; gcrRegs -[x0]
-            strb    w0, [fp, #0x23]    // [V76 tmp74]
-            strh    wzr, [fp, #0x20]   // [V74 tmp72]
-            ldp     x0, x1, [fp, #0x18]    // [V10 tmp8], [V10 tmp8+0x08]
+            strb    w0, [fp, #0x1B]    // [V76 tmp74]
+            strh    wzr, [fp, #0x18]   // [V74 tmp72]
+            ldp     x0, x1, [fp, #0x10]    // [V10 tmp8], [V10 tmp8+0x08]
             ; gcrRegs +[x0]
                        ;; size=72 bbWeight=0.50 PerfScore 13.50
 G_M56691_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x58]
-            ldp     x19, x20, [sp, #0x48]
-            ldp     fp, lr, [sp], #0x60
+            ldp     x19, x20, [sp, #0x40]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 G_M56691_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0]
             movz    x0, #0xD1FFAB1E
@@ -167,14 +164,13 @@ G_M56691_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             movk    x19, #0xD1FFAB1E LSL #32
             ldr     x19, [x19]
             ; gcrRegs +[x19]
-            movz    x20, #0xD1FFAB1E
-            movk    x20, #0xD1FFAB1E LSL #16
-            movk    x20, #0xD1FFAB1E LSL #32
-            add     x0, x20, #0xD1FFAB1E
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
-            mov     x21, x0
-            ; gcrRegs +[x21]
+            mov     x20, x0
+            ; gcrRegs +[x20]
             mov     x2, x19
             ; gcrRegs +[x2]
             mov     w1, #1
@@ -195,7 +191,9 @@ G_M56691_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldr     x1, [x0]
             ; gcrRegs +[x1]
             cbnz    x1, G_M56691_IG09
-            mov     x0, x20
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs -[x1] +[x0]
             mov     x1, x0
@@ -206,9 +204,9 @@ G_M56691_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldr     x15, [x14]
             ; gcrRegs +[x15]
             cbnz    x15, G_M56691_IG08
-                       ;; size=140 bbWeight=0.50 PerfScore 15.25
+                       ;; size=144 bbWeight=0.50 PerfScore 15.50
 G_M56691_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0-x1 x15 x21]
+            ; gcrRegs -[x0-x1 x15 x20]
             movz    x0, #0xD1FFAB1E      // code for System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -216,8 +214,8 @@ G_M56691_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             blr     x0
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
-G_M56691_IG08:        ; bbWeight=0.50, gcrefRegs=208002 {x1 x15 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x1 x15 x21]
+G_M56691_IG08:        ; bbWeight=0.50, gcrefRegs=108002 {x1 x15 x20}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x1 x15 x20]
             add     x14, x1, #8
             ; byrRegs +[x14]
             bl      CORINFO_HELP_ASSIGN_REF
@@ -235,31 +233,30 @@ G_M56691_IG08:        ; bbWeight=0.50, gcrefRegs=208002 {x1 x15 x21}, byrefRegs=
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
                        ;; size=44 bbWeight=0.50 PerfScore 3.50
-G_M56691_IG09:        ; bbWeight=0.50, gcrefRegs=200002 {x1 x21}, byrefRegs=0000 {}, byref, isz
-            mov     x0, x21
+G_M56691_IG09:        ; bbWeight=0.50, gcrefRegs=100002 {x1 x20}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x20
             ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:ContinueWith[ubyte](System.Func`2[System.Threading.Tasks.Task,ubyte]):System.Threading.Tasks.Task`1[ubyte]:this
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x1 x21]
+            ; gcrRegs -[x1 x20]
             cbz     x0, G_M56691_IG14
-            str     x0, [fp, #0x28]    // [V69 tmp67]
-            strb    wzr, [fp, #0x32]   // [V71 tmp69]
+            str     x0, [fp, #0x20]    // [V69 tmp67]
+            strb    wzr, [fp, #0x2A]   // [V71 tmp69]
             mov     w0, #1
             ; gcrRegs -[x0]
-            strb    w0, [fp, #0x33]    // [V72 tmp70]
-            strh    wzr, [fp, #0x30]   // [V70 tmp68]
-            ldp     x0, x1, [fp, #0x28]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    w0, [fp, #0x2B]    // [V72 tmp70]
+            strh    wzr, [fp, #0x28]   // [V70 tmp68]
+            ldp     x0, x1, [fp, #0x20]    // [V08 tmp6], [V08 tmp6+0x08]
             ; gcrRegs +[x0]
                        ;; size=52 bbWeight=0.50 PerfScore 7.25
 G_M56691_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            ldr     x21, [sp, #0x58]
-            ldp     x19, x20, [sp, #0x48]
-            ldp     fp, lr, [sp], #0x60
+            ldp     x19, x20, [sp, #0x40]
+            ldp     fp, lr, [sp], #0x50
             ret     lr
-                       ;; size=16 bbWeight=0.50 PerfScore 2.50
+                       ;; size=12 bbWeight=0.50 PerfScore 1.50
 G_M56691_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
             movz    x19, #0xD1FFAB1E
@@ -267,21 +264,20 @@ G_M56691_IG11:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             movk    x19, #0xD1FFAB1E LSL #32
             ldr     x0, [x19, #0xD1FFAB1E]
             ; gcrRegs +[x0]
-            str     x0, [fp, #0x38]    // [V65 tmp63]
-            strb    wzr, [fp, #0x42]   // [V67 tmp65]
+            str     x0, [fp, #0x30]    // [V65 tmp63]
+            strb    wzr, [fp, #0x3A]   // [V67 tmp65]
             mov     w0, #1
             ; gcrRegs -[x0]
-            strb    w0, [fp, #0x43]    // [V68 tmp66]
-            strh    wzr, [fp, #0x40]   // [V66 tmp64]
-            ldp     x0, x1, [fp, #0x38]    // [V03 tmp1], [V03 tmp1+0x08]
+            strb    w0, [fp, #0x3B]    // [V68 tmp66]
+            strh    wzr, [fp, #0x38]   // [V66 tmp64]
+            ldp     x0, x1, [fp, #0x30]    // [V03 tmp1], [V03 tmp1+0x08]
             ; gcrRegs +[x0]
...

-12 (-1.04%) : 310870.dasm - System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<g_CreateSourceEnumerable|31>d:MoveNext():this (FullOpts)

@@ -9,7 +9,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 39, 33   )     ref  ->  [fp+0x10]  this class-hnd EH-live single-def <System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d>
-;  V01 loc0         [V01,T24] (  2,  2   )     int  ->   x1         single-def
+;  V01 loc0         [V01,T23] (  2,  2   )     int  ->   x1         single-def
 ;  V02 loc1         [V02    ] (  6,  6   )  struct ( 8) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
 ;  V03 loc2         [V03    ] (  6,  6   )     ref  ->  [fp+0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d>
 ;  V04 loc3         [V04    ] (  6,  6   )  struct ( 8) [fp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.TaskAwaiter>
@@ -17,7 +17,7 @@
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V08 tmp1         [V08    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V09 tmp2         [V09,T32] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V09 tmp2         [V09,T31] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V10 tmp3         [V10    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V11 tmp4         [V11    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V12 tmp5         [V12    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
@@ -27,15 +27,15 @@
 ;* V16 tmp9         [V16    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V17 tmp10        [V17    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V18 tmp11        [V18    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V19 tmp12        [V19,T33] (  2,  0   )     ref  ->  x19         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V19 tmp12        [V19,T32] (  2,  0   )     ref  ->  x19         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V21 tmp14        [V21    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V22 tmp15        [V22,T18] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+;  V22 tmp15        [V22,T17] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V23 tmp16        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;  V24 tmp17        [V24,T09] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V24 tmp17        [V24,T08] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V25 tmp18        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V26 tmp19        [V26,T03] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V27 tmp20        [V27,T28] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;  V26 tmp19        [V26,T02] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V27 tmp20        [V27,T27] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V30 tmp23        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -73,19 +73,19 @@
 ;* V62 tmp55        [V62    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
 ;* V63 tmp56        [V63    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V64 tmp57        [V64    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V65 tmp58        [V65,T10] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V65 tmp58        [V65,T09] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V66 tmp59        [V66    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V67 tmp60        [V67    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp61        [V68    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V69 tmp62        [V69    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;* V70 tmp63        [V70    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V71 tmp64        [V71    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V72 tmp65        [V72,T19] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+;  V72 tmp65        [V72,T18] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V73 tmp66        [V73    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;  V74 tmp67        [V74,T11] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V74 tmp67        [V74,T10] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V75 tmp68        [V75    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V76 tmp69        [V76,T04] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V77 tmp70        [V77,T29] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;  V76 tmp69        [V76,T03] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V77 tmp70        [V77,T28] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V78 tmp71        [V78    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V79 tmp72        [V79    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V80 tmp73        [V80    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -122,19 +122,19 @@
 ;* V111 tmp104      [V111    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
 ;* V112 tmp105      [V112    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V113 tmp106      [V113    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V114 tmp107      [V114,T12] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V114 tmp107      [V114,T11] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V115 tmp108      [V115    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V116 tmp109      [V116    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V117 tmp110      [V117    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V118 tmp111      [V118    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;* V119 tmp112      [V119    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V120 tmp113      [V120    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V121 tmp114      [V121,T20] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
+;  V121 tmp114      [V121,T19] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
 ;* V122 tmp115      [V122    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;  V123 tmp116      [V123,T13] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V123 tmp116      [V123,T12] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V124 tmp117      [V124    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
-;  V125 tmp118      [V125,T05] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V126 tmp119      [V126,T30] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;  V125 tmp118      [V125,T04] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;* V126 tmp119      [V126,T29] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V127 tmp120      [V127    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V128 tmp121      [V128    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V129 tmp122      [V129    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -171,19 +171,19 @@
 ;* V160 tmp153      [V160    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
 ;* V161 tmp154      [V161    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V162 tmp155      [V162    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V163 tmp156      [V163,T14] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V163 tmp156      [V163,T13] (  2,  4   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V164 tmp157      [V164    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V165 tmp158      [V165    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V166 tmp159      [V166    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V167 tmp160      [V167    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V168 tmp161      [V168,T06] (  3,  6   )   byref  ->   x0         single-def "Inlining Arg"
-;  V169 tmp162      [V169,T07] (  3,  6   )   byref  ->   x0         single-def "Inlining Arg"
+;  V168 tmp161      [V168,T05] (  3,  6   )   byref  ->   x0         single-def "Inlining Arg"
+;  V169 tmp162      [V169,T06] (  3,  6   )   byref  ->   x0         single-def "Inlining Arg"
 ;  V170 tmp163      [V170    ] (  6,  6   )     ref  ->  [fp+0x30]  do-not-enreg[X] addr-exposed "field V02.m_task (fldOffset=0x0)" P-DEP
 ;  V171 tmp164      [V171    ] (  6,  6   )     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V04.m_task (fldOffset=0x0)" P-DEP
 ;  V172 tmp165      [V172    ] (  6,  4   )     ref  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V05.m_task (fldOffset=0x0)" P-DEP
 ;* V173 tmp166      [V173    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V20._source (fldOffset=0x0)" P-INDEP
 ;* V174 tmp167      [V174    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V21._source (fldOffset=0x0)" P-INDEP
-;* V175 tmp168      [V175,T25] (  0,  0   )     ref  ->  zero-ref    single-def "field V23._source (fldOffset=0x0)" P-INDEP
+;* V175 tmp168      [V175,T24] (  0,  0   )     ref  ->  zero-ref    single-def "field V23._source (fldOffset=0x0)" P-INDEP
 ;* V176 tmp169      [V176    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V29._source (fldOffset=0x0)" P-DEP
 ;* V177 tmp170      [V177    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V36._node (fldOffset=0x0)" P-DEP
 ;* V178 tmp171      [V178    ] (  0,  0   )    long  ->  zero-ref    single-def "field V36._id (fldOffset=0x8)" P-DEP
@@ -191,10 +191,10 @@
 ;* V180 tmp173      [V180    ] (  0,  0   )    long  ->  zero-ref    "field V54._id (fldOffset=0x8)" P-DEP
 ;* V181 tmp174      [V181    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V55._node (fldOffset=0x0)" P-INDEP
 ;* V182 tmp175      [V182    ] (  0,  0   )    long  ->  zero-ref    single-def "field V55._id (fldOffset=0x8)" P-INDEP
-;  V183 tmp176      [V183,T21] (  2,  2   )     ref  ->  x20         single-def "field V62.m_task (fldOffset=0x0)" P-INDEP
+;  V183 tmp176      [V183,T20] (  2,  2   )     ref  ->  x20         single-def "field V62.m_task (fldOffset=0x0)" P-INDEP
 ;* V184 tmp177      [V184    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V70._source (fldOffset=0x0)" P-INDEP
 ;* V185 tmp178      [V185    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V71._source (fldOffset=0x0)" P-INDEP
-;* V186 tmp179      [V186,T26] (  0,  0   )     ref  ->  zero-ref    single-def "field V73._source (fldOffset=0x0)" P-INDEP
+;* V186 tmp179      [V186,T25] (  0,  0   )     ref  ->  zero-ref    single-def "field V73._source (fldOffset=0x0)" P-INDEP
 ;* V187 tmp180      [V187    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V79._source (fldOffset=0x0)" P-DEP
 ;* V188 tmp181      [V188    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V85._node (fldOffset=0x0)" P-DEP
 ;* V189 tmp182      [V189    ] (  0,  0   )    long  ->  zero-ref    single-def "field V85._id (fldOffset=0x8)" P-DEP
@@ -202,10 +202,10 @@
 ;* V191 tmp184      [V191    ] (  0,  0   )    long  ->  zero-ref    "field V103._id (fldOffset=0x8)" P-DEP
 ;* V192 tmp185      [V192    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V104._node (fldOffset=0x0)" P-INDEP
 ;* V193 tmp186      [V193    ] (  0,  0   )    long  ->  zero-ref    single-def "field V104._id (fldOffset=0x8)" P-INDEP
-;  V194 tmp187      [V194,T22] (  2,  2   )     ref  ->  x20         single-def "field V111.m_task (fldOffset=0x0)" P-INDEP
+;  V194 tmp187      [V194,T21] (  2,  2   )     ref  ->  x20         single-def "field V111.m_task (fldOffset=0x0)" P-INDEP
 ;* V195 tmp188      [V195    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V119._source (fldOffset=0x0)" P-INDEP
 ;* V196 tmp189      [V196    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V120._source (fldOffset=0x0)" P-INDEP
-;* V197 tmp190      [V197,T27] (  0,  0   )     ref  ->  zero-ref    single-def "field V122._source (fldOffset=0x0)" P-INDEP
+;* V197 tmp190      [V197,T26] (  0,  0   )     ref  ->  zero-ref    single-def "field V122._source (fldOffset=0x0)" P-INDEP
 ;* V198 tmp191      [V198    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V128._source (fldOffset=0x0)" P-DEP
 ;* V199 tmp192      [V199    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V134._node (fldOffset=0x0)" P-DEP
 ;* V200 tmp193      [V200    ] (  0,  0   )    long  ->  zero-ref    single-def "field V134._id (fldOffset=0x8)" P-DEP
@@ -213,14 +213,13 @@
 ;* V202 tmp195      [V202    ] (  0,  0   )    long  ->  zero-ref    "field V152._id (fldOffset=0x8)" P-DEP
 ;* V203 tmp196      [V203    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V153._node (fldOffset=0x0)" P-INDEP
 ;* V204 tmp197      [V204    ] (  0,  0   )    long  ->  zero-ref    single-def "field V153._id (fldOffset=0x8)" P-INDEP
-;  V205 tmp198      [V205,T23] (  2,  2   )     ref  ->  x20         single-def "field V160.m_task (fldOffset=0x0)" P-INDEP
-;  V206 tmp199      [V206,T15] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V207 tmp200      [V207,T16] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V208 tmp201      [V208,T17] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V209 PSPSym      [V209,T31] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
+;  V205 tmp198      [V205,T22] (  2,  2   )     ref  ->  x20         single-def "field V160.m_task (fldOffset=0x0)" P-INDEP
+;  V206 tmp199      [V206,T14] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
+;  V207 tmp200      [V207,T15] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
+;  V208 tmp201      [V208,T16] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
+;  V209 PSPSym      [V209,T30] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;  V210 cse0        [V210,T01] (  6,  6   )    long  ->  x19         multi-def "CSE - aggressive"
-;  V211 cse1        [V211,T02] (  6,  6   )    long  ->   x1         multi-def "CSE - moderate"
-;  V212 rat0        [V212,T08] (  3,  6   )     int  ->   x1         "ReplaceWithLclVar is creating a new local variable"
+;  V211 rat0        [V211,T07] (  3,  6   )     int  ->   x1         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -260,11 +259,10 @@ G_M44969_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             movk    x19, #0xD1FFAB1E LSL #32
             ldr     x19, [x19]
             ; gcrRegs +[x19]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
+            movz    x0, #0xD1FFAB1E
             ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -329,7 +327,7 @@ G_M44969_IG04:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs -[x1]
             ; gcr arg pop 0
             b       G_M44969_IG16
-                       ;; size=208 bbWeight=1 PerfScore 51.50
+                       ;; size=204 bbWeight=1 PerfScore 51.00
 G_M44969_IG05:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x1, [x0, #0x48]
@@ -366,11 +364,10 @@ G_M44969_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             movk    x19, #0xD1FFAB1E LSL #32
             ldr     x19, [x19]
             ; gcrRegs +[x19]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
+            movz    x0, #0xD1FFAB1E
             ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -435,7 +432,7 @@ G_M44969_IG07:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs -[x1]
             ; gcr arg pop 0
             b       G_M44969_IG16
-                       ;; size=212 bbWeight=1 PerfScore 52.00
+                       ;; size=208 bbWeight=1 PerfScore 51.50
 G_M44969_IG08:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19] +[x0]
             ldr     x1, [x0, #0x48]
@@ -474,11 +471,10 @@ G_M44969_IG10:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             movk    x19, #0xD1FFAB1E LSL #32
             ldr     x19, [x19]
             ; gcrRegs +[x19]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
+            movz    x0, #0xD1FFAB1E
             ; gcrRegs -[x0]
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -543,7 +539,7 @@ G_M44969_IG10:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ; gcrRegs -[x1]
             ; gcr arg pop 0
             b       G_M44969_IG16
-                       ;; size=212 bbWeight=1 PerfScore 52.00
+                       ;; size=208 bbWeight=1 PerfScore 51.50
 G_M44969_IG11:        ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19] +[x0]
             ldr     x1, [x0, #0x48]
@@ -697,7 +693,7 @@ RWD00   dd  G_M44969_IG10 - G_M44969_IG02
            dd  G_M44969_IG11 - G_M44969_IG02
 
 
-; Total bytes of code 1152, prolog size 32, PerfScore 240.50, instruction count 288, allocated bytes for code 1152 (MethodHash=2a8e5056) for method System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d:MoveNext():this (FullOpts)
+Total bytes of code 1140, prolog size 32, PerfScore 239.00, instruction count 285, allocated bytes for code 1140 (MethodHash=2a8e5056) for method System.Threading.Tasks.Tests.AsyncEnumerableToBlockingEnumerableTests+<<AsyncEnumerableWithException>g__CreateSourceEnumerable|3_1>d:MoveNext():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -708,7 +704,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 263 (0x00107) Actual length = 1052 (0x00041c)
+  Function Length   : 260 (0x00104) Actual length = 1040 (0x000410)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-0.87%) : 308793.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<g_ValueTaskAsync|251>d:MoveNext():this (FullOpts)

@@ -15,7 +15,7 @@
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <<unknown class>>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V07 tmp2         [V07,T16] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V07 tmp2         [V07,T15] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
 ;  V10 tmp5         [V10,T08] (  2,  2   )     ref  ->  x20         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
@@ -23,7 +23,7 @@
 ;  V12 tmp7         [V12,T04] (  2,  4   )     ref  ->  x19         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V13 tmp8         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+DelayPromiseWithCancellation>
 ;  V14 tmp9         [V14,T02] (  3,  6   )     ref  ->  x20         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V15 tmp10        [V15,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
+;* V15 tmp10        [V15,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V16 tmp11        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V18 tmp13        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Action`2[System.Object,System.Threading.CancellationToken]>
@@ -72,7 +72,7 @@
 ;  V61 tmp56        [V61    ] (  6,  6   )     ref  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V03.m_task (fldOffset=0x0)" P-DEP
 ;* V62 tmp57        [V62    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._source (fldOffset=0x0)" P-INDEP
 ;* V63 tmp58        [V63    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V09._source (fldOffset=0x0)" P-INDEP
-;* V64 tmp59        [V64,T13] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._source (fldOffset=0x0)" P-INDEP
+;* V64 tmp59        [V64,T12] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._source (fldOffset=0x0)" P-INDEP
 ;* V65 tmp60        [V65    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[X] addr-exposed "field V17._source (fldOffset=0x0)" P-DEP
 ;* V66 tmp61        [V66    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V25._node (fldOffset=0x0)" P-DEP
 ;* V67 tmp62        [V67    ] (  0,  0   )    long  ->  zero-ref    single-def "field V25._id (fldOffset=0x8)" P-DEP
@@ -82,9 +82,8 @@
 ;* V71 tmp66        [V71    ] (  0,  0   )    long  ->  zero-ref    single-def "field V44._id (fldOffset=0x8)" P-INDEP
 ;  V72 tmp67        [V72,T09] (  2,  2   )     ref  ->  x20         single-def "field V51.m_task (fldOffset=0x0)" P-INDEP
 ;  V73 tmp68        [V73,T06] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V74 PSPSym       [V74,T15] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
+;  V74 PSPSym       [V74,T14] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
 ;  V75 cse0         [V75,T11] (  2,  2   )    long  ->   x1         "CSE - aggressive"
-;  V76 cse1         [V76,T12] (  2,  2   )    long  ->   x1         "CSE - conservative"
 ;
 ; Lcl frame size = 32
 
@@ -110,10 +109,9 @@ G_M12767_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x19, [x1]
             ; gcrRegs +[x19]
-            movz    x1, #0xD1FFAB1E
-            movk    x1, #0xD1FFAB1E LSL #16
-            movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
+            movz    x0, #0xD1FFAB1E
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
             ; gcr arg pop 0
@@ -172,7 +170,7 @@ G_M12767_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs -[x1]
             ; gcr arg pop 0
             b       G_M12767_IG11
-                       ;; size=176 bbWeight=1 PerfScore 44.00
+                       ;; size=172 bbWeight=1 PerfScore 43.50
 G_M12767_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     x0, [fp, #0x18]    // [V00 this]
             ; byrRegs +[x0]
@@ -294,7 +292,7 @@ G_M12767_IG14:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 460, prolog size 28, PerfScore 92.29, instruction count 115, allocated bytes for code 460 (MethodHash=8b4ece20) for method System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<<Generic_ConcurrentBuilders_WorkCorrectly>g__ValueTaskAsync|25_1>d:MoveNext():this (FullOpts)
+Total bytes of code 456, prolog size 28, PerfScore 91.79, instruction count 114, allocated bytes for code 456 (MethodHash=8b4ece20) for method System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<<Generic_ConcurrentBuilders_WorkCorrectly>g__ValueTaskAsync|25_1>d:MoveNext():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -305,7 +303,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 97 (0x00061) Actual length = 388 (0x000184)
+  Function Length   : 96 (0x00060) Actual length = 384 (0x000180)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+0.59%) : 154775.dasm - System.Net.Http.Functional.Tests.HttpClientHandlerCancellationTest+<>cDisplayClass10+<<PostAsyncCancelDuringRequestContentSend_TaskCanceledQuickly>b1>d:MoveNext():this (FullOpts)

@@ -23,10 +23,10 @@
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;  V13 tmp5         [V13,T06] (  4,  4   )     ref  ->   x1        
 ;  V14 tmp6         [V14,T01] (  5, 10   )     ref  ->   x1         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V15 tmp7         [V15,T31] (  2,  0   )     ref  ->  x19         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V15 tmp7         [V15,T30] (  2,  0   )     ref  ->  x19         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;  V16 tmp8         [V16    ] (  2,  0   )  struct (40) [fp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-;  V17 tmp9         [V17,T32] (  2,  0   )     ref  ->  x20         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V18 tmp10        [V18,T33] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V17 tmp9         [V17,T31] (  2,  0   )     ref  ->  x20         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V18 tmp10        [V18,T32] (  2,  0   )     ref  ->   x1         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;  V19 tmp11        [V19,T04] (  3,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
 ;* V21 tmp13        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -40,14 +40,14 @@
 ;* V29 tmp21        [V29    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;  V30 tmp22        [V30,T28] (  4,  0   )     int  ->  x21         "Inlining Arg"
 ;* V31 tmp23        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V32 tmp24        [V32,T30] (  3,  0   )     int  ->  x21         "Inlining Arg"
-;  V33 tmp25        [V33,T34] (  2,  0   )   byref  ->  x22         single-def "Inlining Arg"
+;  V32 tmp24        [V32,T29] (  3,  0   )     int  ->  x21         "Inlining Arg"
+;  V33 tmp25        [V33,T33] (  2,  0   )   byref  ->  x22         single-def "Inlining Arg"
 ;* V34 tmp26        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp27        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V36 tmp28        [V36,T38] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V36 tmp28        [V36,T37] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V37 tmp29        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V38 tmp30        [V38    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V39 tmp31        [V39,T35] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
+;  V39 tmp31        [V39,T34] (  2,  0   )   byref  ->   x0         single-def "Inlining Arg"
 ;  V40 tmp32        [V40,T02] (  4,  6   )   byref  ->  x14         single-def "Inlining Arg"
 ;* V41 tmp33        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
 ;  V42 tmp34        [V42,T14] ( 10,  0.02)     ref  ->  x19         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
@@ -75,13 +75,12 @@
 ;* V64 tmp56        [V64    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V65 tmp57        [V65    ] (  0,  0   )     int  ->  zero-ref    single-def "field V37._length (fldOffset=0x8)" P-INDEP
 ;  V66 tmp58        [V66,T09] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V67 tmp59        [V67,T36] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
-;  V68 tmp60        [V68,T37] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V67 tmp59        [V67,T35] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
+;  V68 tmp60        [V68,T36] (  2,  0   )     ref  ->   x1         single-def "argument with side effect"
 ;  V69 PSPSym       [V69,T13] (  1,  1   )    long  ->  [fp+0x78]  do-not-enreg[V] "PSPSym"
 ;  V70 cse0         [V70,T22] (  3,  0.00)     int  ->   x1         "CSE - conservative"
 ;  V71 cse1         [V71,T21] (  3,  0.00)     ref  ->  x20         "CSE - conservative"
 ;  V72 cse2         [V72,T16] (  6,  0.01)   byref  ->   x0         multi-def "CSE - conservative"
-;  V73 cse3         [V73,T29] (  3,  0   )     ref  ->   x1         "CSE - conservative"
 ;
 ; Lcl frame size = 112
 
@@ -507,19 +506,19 @@ G_M41068_IG26:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; byrRegs -[x0]
             sub     w21, w0, w21
             tbz     w21, #31, G_M41068_IG27
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M41068_IG27:        ; bbWeight=0, gcrefRegs=180000 {x19 x20}, byrefRegs=400000 {x22}, byref, isz
             cmp     w21, #18
             blo     G_M41068_IG28
@@ -642,7 +641,7 @@ G_M41068_IG33:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1364, prolog size 52, PerfScore 114.12, instruction count 341, allocated bytes for code 1364 (MethodHash=f8215f93) for method System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
+Total bytes of code 1372, prolog size 52, PerfScore 114.12, instruction count 343, allocated bytes for code 1372 (MethodHash=f8215f93) for method System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -676,7 +675,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 109 (0x0006d) Actual length = 436 (0x0001b4)
+  Function Length   : 111 (0x0006f) Actual length = 444 (0x0001bc)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----

+8 (+0.77%) : 251881.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTestsDefault+PropertyNameTestsContextDefault:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)

@@ -15,7 +15,7 @@
 ;  V04 loc1         [V04,T02] (  4, 12   )     ref  ->  x21         class-hnd exact <System.String>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Queue`1+Enumerator[System.String]>
-;  V07 tmp2         [V07,T26] (  3,  0   )     int  ->   x0        
+;  V07 tmp2         [V07,T25] (  3,  0   )     int  ->   x0        
 ;  V08 tmp3         [V08,T23] (  3,  0   )     ref  ->  x21        
 ;  V09 tmp4         [V09,T24] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V10 tmp5         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -68,8 +68,7 @@
 ;  V57 PSPSym       [V57,T20] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[V] "PSPSym"
 ;  V58 cse0         [V58,T16] (  4,  2   )     int  ->   x0         "CSE - moderate"
 ;  V59 cse1         [V59,T17] (  4,  2   )     int  ->   x0         "CSE - moderate"
-;  V60 cse2         [V60,T25] (  3,  0   )     ref  ->   x1         "CSE - aggressive"
-;  V61 cse3         [V61,T13] (  3,  5   )    long  ->  x20         "CSE - aggressive"
+;  V60 cse2         [V60,T13] (  3,  5   )    long  ->  x20         "CSE - aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -166,19 +165,19 @@ G_M32222_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 G_M32222_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             tst     w0, #255
             bne     G_M32222_IG11
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
+                       ;; size=52 bbWeight=0 PerfScore 0.00
 G_M32222_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [fp, #0x34]    // [V39 tmp34]
             cmn     w0, #1
@@ -490,7 +489,7 @@ G_M32222_IG35:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1040, prolog size 44, PerfScore 273.50, instruction count 260, allocated bytes for code 1040 (MethodHash=f3ef8221) for method System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
+Total bytes of code 1048, prolog size 44, PerfScore 273.50, instruction count 262, allocated bytes for code 1048 (MethodHash=f3ef8221) for method System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -501,7 +500,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 248 (0x000f8) Actual length = 992 (0x0003e0)
+  Function Length   : 250 (0x000fa) Actual length = 1000 (0x0003e8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+32 (+2.03%) : 104270.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  x24        
 ;  V10 loc7         [V10,T07] (  3, 12   )     ref  ->   x2         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T25] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T26] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  x19         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T27] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V20 tmp9         [V20,T31] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T32] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T28] (  3,  0   )     int  ->  x23         "Inlining Arg"
-;  V31 tmp20        [V31,T33] (  2,  0   )   byref  ->  x22         "Inlining Arg"
+;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  x23         "Inlining Arg"
+;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  x22         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T34] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T23] (  4,  0   )     int  ->   x0         "Inlining Arg"
+;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->   x0         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T29] (  3,  0   )     int  ->  x20         "Inlining Arg"
-;  V44 tmp33        [V44,T35] (  2,  0   )   byref  ->  x19         "Inlining Arg"
+;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  x20         "Inlining Arg"
+;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  x19         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T36] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T24] (  4,  0   )     int  ->  x19         "Inlining Arg"
+;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  x19         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T30] (  3,  0   )     int  ->  x19         "Inlining Arg"
-;  V55 tmp44        [V55,T37] (  2,  0   )   byref  ->  x20         "Inlining Arg"
+;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  x19         "Inlining Arg"
+;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  x20         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T38] (  2,  0   )   byref  ->   x0         "Inlining Arg"
+;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->   x0         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  x21         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T05] (  4, 12   )     int  ->  x25         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.61)     ref  ->  x19         class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T08] (  3, 12   )     ref  ->   x2         "arr expr"
-;  V98 tmp87        [V98,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
-;  V99 tmp88        [V99,T40] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->   x1         "argument with side effect"
+;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->   x1         "argument with side effect"
 ;  V100 cse0        [V100,T18] (  3,  3   )     ref  ->   x0         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  4,  9   )   byref  ->  x23         hoist multi-def "CSE - aggressive"
 ;  V102 cse2        [V102,T09] (  6, 10   )     int  ->  x22         multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T20] ( 12,  0   )     ref  ->   x1         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -407,19 +406,19 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG30
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG31
@@ -470,19 +469,19 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w23, w1, w0
             tbz     w23, #31, G_M45430_IG33
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=104 bbWeight=0 PerfScore 0.00
+                       ;; size=112 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=400000 {x22}, byref, isz
             cbz     w23, G_M45430_IG34
             movz    x0, #0xD1FFAB1E
@@ -578,19 +577,19 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x1]
             sub     w20, w1, w0
             tbz     w20, #31, G_M45430_IG38
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=108 bbWeight=0 PerfScore 0.00
+                       ;; size=116 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             cmp     w20, #11
             blo     G_M45430_IG39
@@ -652,19 +651,19 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[x0]
             sub     w19, w0, w19
             tbz     w19, #31, G_M45430_IG43
+            movz    x0, #8
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #8
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            mov     x0, x1
-            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0]
             ; gcr arg pop 0
-                       ;; size=60 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, byref, isz
             cbz     w19, G_M45430_IG44
             movz    x0, #0xD1FFAB1E
@@ -726,7 +725,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
                        ;; size=84 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1580, prolog size 48, PerfScore 291.46, instruction count 395, allocated bytes for code 1580 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1612, prolog size 48, PerfScore 291.46, instruction count 403, allocated bytes for code 1612 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -737,7 +736,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 395 (0x0018b) Actual length = 1580 (0x00062c)
+  Function Length   : 403 (0x00193) Actual length = 1612 (0x00064c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.windows.arm64.checked.mch 10 3 7 0 -72 +176
benchmarks.run_tiered.windows.arm64.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.windows.arm64.checked.mch 30 13 15 2 -456 +160
libraries.crossgen2.windows.arm64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.windows.arm64.checked.mch 10 3 7 0 -28 +132
libraries_tests.run.windows.arm64.Release.mch 183 101 71 11 -1,412 +684
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 60 47 7 6 -204 +68
realworld.run.windows.arm64.checked.mch 0 0 0 0 -0 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 0 0 0 0 -0 +0
293 167 107 19 -2,172 +1,220

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,449 4 24,445 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.arm64.checked.mch 98,318 48,543 49,775 114 (0.12%) 115 (0.12%)
benchmarks.run_tiered.windows.arm64.checked.mch 48,505 36,685 11,820 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.arm64.checked.mch 595,368 362,737 232,631 315 (0.05%) 317 (0.05%)
libraries.crossgen2.windows.arm64.checked.mch 243,430 15 243,415 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.arm64.checked.mch 304,050 6 304,044 0 (0.00%) 3 (0.00%)
libraries_tests.run.windows.arm64.Release.mch 630,503 461,984 168,519 2,158 (0.34%) 2,159 (0.34%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 316,297 21,559 294,738 0 (0.00%) 4 (0.00%)
realworld.run.windows.arm64.checked.mch 33,195 3 33,192 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.windows.arm64.checked.mch 24,181 7 24,174 0 (0.00%) 0 (0.00%)
2,318,296 931,543 1,386,753 2,587 (0.11%) 2,598 (0.11%)

jit-analyze output

benchmarks.run_pgo.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 47215296 (overridden on cmd)
Total bytes of diff: 47215400 (overridden on cmd)
Total bytes of delta: 104 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -7668 : 91655.dasm (-100.00 % of base)
       -4164 : 92042.dasm (-100.00 % of base)
       -3600 : 90185.dasm (-100.00 % of base)
       -2200 : 39639.dasm (-100.00 % of base)
       -2200 : 42310.dasm (-100.00 % of base)
       -1692 : 31646.dasm (-100.00 % of base)
       -1580 : 84604.dasm (-100.00 % of base)
       -1280 : 95909.dasm (-100.00 % of base)
       -1196 : 92760.dasm (-100.00 % of base)
        -908 : 84592.dasm (-100.00 % of base)

10 total files with Code Size differences (10 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -7668 (-100.00 % of base) : 91655.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_Task>d__9:MoveNext():this (Tier1-OSR)
       -4164 (-100.00 % of base) : 92042.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -3600 (-100.00 % of base) : 90185.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
       -2200 (-100.00 % of base) : 39639.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -2200 (-100.00 % of base) : 42310.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -1692 (-100.00 % of base) : 31646.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -1580 (-100.00 % of base) : 84604.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
       -1280 (-100.00 % of base) : 95909.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -1196 (-100.00 % of base) : 92760.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
        -908 (-100.00 % of base) : 84592.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)

Top method improvements (percentages):
       -1692 (-100.00 % of base) : 31646.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -4164 (-100.00 % of base) : 92042.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -1280 (-100.00 % of base) : 95909.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -3600 (-100.00 % of base) : 90185.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
       -1196 (-100.00 % of base) : 92760.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[ubyte]:MoveNext():this (Tier1-OSR)
        -908 (-100.00 % of base) : 84592.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:FindValue(BenchmarksGame.ByteString):byref:this (Tier1)
       -1580 (-100.00 % of base) : 84604.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
       -7668 (-100.00 % of base) : 91655.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_Task>d__9:MoveNext():this (Tier1-OSR)
       -2200 (-100.00 % of base) : 39639.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)
       -2200 (-100.00 % of base) : 42310.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:CreateDerivative(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],ulong,uint):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:this (Tier1)

10 total methods with Code Size differences (10 improved, 0 regressed).


coreclr_tests.run.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 495322244 (overridden on cmd)
Total bytes of diff: 495321948 (overridden on cmd)
Total bytes of delta: -296 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -6312 : 388749.dasm (-100.00 % of base)
       -6192 : 392204.dasm (-100.00 % of base)
       -5912 : 300227.dasm (-100.00 % of base)
       -2484 : 56678.dasm (-100.00 % of base)
       -2164 : 517103.dasm (-100.00 % of base)
       -2080 : 390398.dasm (-100.00 % of base)
       -2080 : 392660.dasm (-100.00 % of base)
       -2060 : 250599.dasm (-100.00 % of base)
       -2060 : 250595.dasm (-100.00 % of base)
       -1840 : 495451.dasm (-100.00 % of base)
       -1588 : 501694.dasm (-100.00 % of base)
       -1524 : 264666.dasm (-100.00 % of base)
       -1312 : 44965.dasm (-100.00 % of base)
       -1196 : 250516.dasm (-100.00 % of base)
        -804 : 389731.dasm (-100.00 % of base)
        -804 : 392485.dasm (-100.00 % of base)
        -732 : 300372.dasm (-100.00 % of base)
        -720 : 382628.dasm (-100.00 % of base)
        -720 : 383288.dasm (-100.00 % of base)
        -692 : 265503.dasm (-100.00 % of base)

30 total files with Code Size differences (30 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -6312 (-100.00 % of base) : 388749.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
       -6192 (-100.00 % of base) : 392204.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
       -5912 (-100.00 % of base) : 300227.dasm - TestLibrary.OutOfProcessTest:RunOutOfProcessTest(System.String) (Tier1)
       -2484 (-100.00 % of base) : 56678.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -2164 (-100.00 % of base) : 517103.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
       -2080 (-100.00 % of base) : 390398.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -2080 (-100.00 % of base) : 392660.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -2060 (-100.00 % of base) : 250599.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -2060 (-100.00 % of base) : 250595.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -1840 (-100.00 % of base) : 495451.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
       -1588 (-100.00 % of base) : 501694.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1524 (-100.00 % of base) : 264666.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
       -1312 (-100.00 % of base) : 44965.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
       -1196 (-100.00 % of base) : 250516.dasm - AssignJagged:Run():double:this (Tier1)
        -804 (-100.00 % of base) : 389731.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
        -804 (-100.00 % of base) : 392485.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
        -732 (-100.00 % of base) : 300372.dasm - System.StartupHookProvider:ProcessStartupHooks(System.String) (FullOpts)
        -720 (-100.00 % of base) : 382628.dasm - System.Resources.ResourceFallbackManager+<GetEnumerator>d__5:MoveNext():ubyte:this (Tier1)
        -720 (-100.00 % of base) : 383288.dasm - System.Resources.ResourceFallbackManager+<GetEnumerator>d__5:MoveNext():ubyte:this (Tier1)
        -692 (-100.00 % of base) : 265503.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)

Top method improvements (percentages):
         -96 (-100.00 % of base) : 537705.dasm - AA:.cctor() (FullOpts)
        -288 (-100.00 % of base) : 537704.dasm - AA:reset() (FullOpts)
       -1196 (-100.00 % of base) : 250516.dasm - AssignJagged:Run():double:this (Tier1)
        -692 (-100.00 % of base) : 265503.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
       -2164 (-100.00 % of base) : 517103.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
        -392 (-100.00 % of base) : 250481.dasm - Fourier:Run():double:this (Tier1)
       -2060 (-100.00 % of base) : 250599.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -2060 (-100.00 % of base) : 250595.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -2080 (-100.00 % of base) : 390398.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -2080 (-100.00 % of base) : 392660.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ReadyToRunInstructionSetSupportSignature:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier1)
       -6312 (-100.00 % of base) : 388749.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
       -6192 (-100.00 % of base) : 392204.dasm - Internal.IL.Stubs.PInvokeILEmitter:EmitIL():Internal.IL.MethodIL:this (Tier1)
        -804 (-100.00 % of base) : 389731.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
        -804 (-100.00 % of base) : 392485.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
        -376 (-100.00 % of base) : 300384.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
        -476 (-100.00 % of base) : 250279.dasm - NumericSortRect:Run():double:this (Tier1)
       -1840 (-100.00 % of base) : 495451.dasm - Program+<TestTask>d__0:MoveNext():this (FullOpts)
        -332 (-100.00 % of base) : 300412.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
        -332 (-100.00 % of base) : 534929.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
       -2484 (-100.00 % of base) : 56678.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)

30 total methods with Code Size differences (30 improved, 0 regressed).


libraries.pmi.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 79562252 (overridden on cmd)
Total bytes of diff: 79562356 (overridden on cmd)
Total bytes of delta: 104 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -9652 : 189271.dasm (-100.00 % of base)
       -4284 : 196449.dasm (-100.00 % of base)
       -3820 : 196468.dasm (-100.00 % of base)
       -1696 : 200676.dasm (-100.00 % of base)
       -1588 : 200677.dasm (-100.00 % of base)
        -908 : 201377.dasm (-100.00 % of base)
        -892 : 201376.dasm (-100.00 % of base)
        -764 : 201393.dasm (-100.00 % of base)
        -756 : 201392.dasm (-100.00 % of base)
        -528 : 302777.dasm (-100.00 % of base)

10 total files with Code Size differences (10 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -9652 (-100.00 % of base) : 189271.dasm - System.Data.OleDb.OleDbCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.OleDb.OleDbConnection,System.Data.OleDb.OleDbCommand):System.Data.OleDb.OleDbParameter[] (FullOpts)
       -4284 (-100.00 % of base) : 196449.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)
       -3820 (-100.00 % of base) : 196468.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)
       -1696 (-100.00 % of base) : 200676.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1588 (-100.00 % of base) : 200677.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -908 (-100.00 % of base) : 201377.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -892 (-100.00 % of base) : 201376.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
        -764 (-100.00 % of base) : 201393.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
        -756 (-100.00 % of base) : 201392.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
        -528 (-100.00 % of base) : 302777.dasm - Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)

Top method improvements (percentages):
       -9652 (-100.00 % of base) : 189271.dasm - System.Data.OleDb.OleDbCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.OleDb.OleDbConnection,System.Data.OleDb.OleDbCommand):System.Data.OleDb.OleDbParameter[] (FullOpts)
       -4284 (-100.00 % of base) : 196449.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)
       -3820 (-100.00 % of base) : 196468.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)
       -1696 (-100.00 % of base) : 200676.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1588 (-100.00 % of base) : 200677.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -892 (-100.00 % of base) : 201376.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
        -908 (-100.00 % of base) : 201377.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -756 (-100.00 % of base) : 201392.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
        -764 (-100.00 % of base) : 201393.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
        -528 (-100.00 % of base) : 302777.dasm - Xunit.Sdk.TestFramework+<Dispose>d__13:MoveNext():this (FullOpts)

10 total methods with Code Size differences (10 improved, 0 regressed).


libraries_tests.run.windows.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 309737828 (overridden on cmd)
Total bytes of diff: 309737100 (overridden on cmd)
Total bytes of delta: -728 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
      -19320 : 62053.dasm (-100.00 % of base)
      -18932 : 55597.dasm (-100.00 % of base)
      -18044 : 55600.dasm (-100.00 % of base)
      -10956 : 601303.dasm (-100.00 % of base)
       -8976 : 55634.dasm (-100.00 % of base)
       -8380 : 491458.dasm (-100.00 % of base)
       -7980 : 55660.dasm (-100.00 % of base)
       -7980 : 568141.dasm (-100.00 % of base)
       -7728 : 564452.dasm (-100.00 % of base)
       -7108 : 87815.dasm (-100.00 % of base)
       -6100 : 580166.dasm (-100.00 % of base)
       -5032 : 89361.dasm (-100.00 % of base)
       -4964 : 64118.dasm (-100.00 % of base)
       -4952 : 396540.dasm (-100.00 % of base)
       -4872 : 486584.dasm (-100.00 % of base)
       -4372 : 591778.dasm (-100.00 % of base)
       -4084 : 55633.dasm (-100.00 % of base)
       -3976 : 483388.dasm (-100.00 % of base)
       -3532 : 487141.dasm (-100.00 % of base)
       -3424 : 386200.dasm (-100.00 % of base)

79 total files with Code Size differences (79 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
      -19320 (-100.00 % of base) : 62053.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -18932 (-100.00 % of base) : 55597.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
      -18044 (-100.00 % of base) : 55600.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
      -10956 (-100.00 % of base) : 601303.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitOptimizedReadonlySpanCreation(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)
       -8976 (-100.00 % of base) : 55634.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -8380 (-100.00 % of base) : 491458.dasm - System.Security.Cryptography.X509Certificates.CertificateRequest:LoadSigningRequest(System.ReadOnlySpan`1[ubyte],ubyte,System.Security.Cryptography.HashAlgorithmName,byref,int,System.Security.Cryptography.RSASignaturePadding):System.Security.Cryptography.X509Certificates.CertificateRequest (Tier1)
       -7980 (-100.00 % of base) : 55660.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
       -7980 (-100.00 % of base) : 568141.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1-OSR)
       -7728 (-100.00 % of base) : 564452.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1-OSR)
       -7108 (-100.00 % of base) : 87815.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -6100 (-100.00 % of base) : 580166.dasm - Microsoft.CodeAnalysis.SyntaxValueProvider:<GetMatchingNodes>g__processMember|16_3(Microsoft.CodeAnalysis.SyntaxNode,byref) (Tier1)
       -5032 (-100.00 % of base) : 89361.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
       -4964 (-100.00 % of base) : 64118.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
       -4952 (-100.00 % of base) : 396540.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -4872 (-100.00 % of base) : 486584.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset,ubyte):this (Tier1)
       -4372 (-100.00 % of base) : 591778.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -4084 (-100.00 % of base) : 55633.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformObjectCreationOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -3976 (-100.00 % of base) : 483388.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifierCore(System.Formats.Asn1.Asn1Tag,System.ReadOnlySpan`1[ushort]):this (Tier1)
       -3532 (-100.00 % of base) : 487141.dasm - System.Security.Cryptography.X509Certificates.X509AuthorityKeyIdentifierExtension:Decode(System.ReadOnlySpan`1[ubyte]):this (Tier1)
       -3424 (-100.00 % of base) : 386200.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)

Top method improvements (percentages):
       -3104 (-100.00 % of base) : 394280.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -4952 (-100.00 % of base) : 396540.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -2132 (-100.00 % of base) : 590941.dasm - Microsoft.Cci.MetadataWriter:SerializeLocalVariablesSignature(Microsoft.Cci.IMethodBody):System.Reflection.Metadata.StandaloneSignatureHandle:this (Tier1)
        -972 (-100.00 % of base) : 57369.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyDataForAssemblyBeingBuilt[System.__Canon,System.__Canon]:.ctor(Microsoft.CodeAnalysis.AssemblyIdentity,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.PEModule]):this (Tier1)
      -18932 (-100.00 % of base) : 55597.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
      -19320 (-100.00 % of base) : 62053.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
       -1312 (-100.00 % of base) : 59610.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetRewrittenAttributeConstructorArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant],Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant]:this (Tier1)
      -18044 (-100.00 % of base) : 55600.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
       -3292 (-100.00 % of base) : 588712.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConditionalOperator(Microsoft.CodeAnalysis.CSharp.BoundConditionalOperator,ubyte):this (Tier1)
      -10956 (-100.00 % of base) : 601303.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:TryEmitOptimizedReadonlySpanCreation(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte:this (Tier1)
       -8976 (-100.00 % of base) : 55634.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -7980 (-100.00 % of base) : 55660.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
       -4084 (-100.00 % of base) : 55633.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformObjectCreationOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -1080 (-100.00 % of base) : 55446.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:Create(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol,System.Reflection.Metadata.PropertyDefinitionHandle,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol (Tier1)
        -276 (-100.00 % of base) : 89354.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
        -276 (-100.00 % of base) : 64111.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
       -5032 (-100.00 % of base) : 89361.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
       -4964 (-100.00 % of base) : 64118.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
       -4372 (-100.00 % of base) : 591778.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbolBase:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -1344 (-100.00 % of base) : 87816.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)


librariestestsnotieredcompilation.run.windows.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 169000724 (overridden on cmd)
Total bytes of diff: 169000588 (overridden on cmd)
Total bytes of delta: -136 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -4968 : 309873.dasm (-100.00 % of base)
       -4008 : 39348.dasm (-100.00 % of base)
       -2544 : 308518.dasm (-100.00 % of base)
       -2460 : 312919.dasm (-100.00 % of base)
       -2460 : 312929.dasm (-100.00 % of base)
       -2452 : 311230.dasm (-100.00 % of base)
       -2436 : 24463.dasm (-100.00 % of base)
       -2436 : 308751.dasm (-100.00 % of base)
       -2212 : 154804.dasm (-100.00 % of base)
       -1976 : 308585.dasm (-100.00 % of base)
       -1960 : 154370.dasm (-100.00 % of base)
       -1932 : 160040.dasm (-100.00 % of base)
       -1716 : 308596.dasm (-100.00 % of base)
       -1676 : 308609.dasm (-100.00 % of base)
       -1636 : 308553.dasm (-100.00 % of base)
       -1636 : 308612.dasm (-100.00 % of base)
       -1636 : 308741.dasm (-100.00 % of base)
       -1580 : 104270.dasm (-100.00 % of base)
       -1464 : 155069.dasm (-100.00 % of base)
       -1364 : 154775.dasm (-100.00 % of base)

55 total files with Code Size differences (55 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -4968 (-100.00 % of base) : 309873.dasm - System.Threading.Tasks.Tests.Status.TaskStatusTest:RealRun():this (FullOpts)
       -4008 (-100.00 % of base) : 39348.dasm - Microsoft.Extensions.FileProviders.PhysicalFileProviderTests+<UsePollingFileWatcher_UseActivePolling_HasChanged_SymbolicLink_TargetChanged>d__86:MoveNext():this (FullOpts)
       -2544 (-100.00 % of base) : 308518.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<Generic_CreateFromTask_Await_Normal>d__35:MoveNext():this (FullOpts)
       -2460 (-100.00 % of base) : 312929.dasm - System.Threading.Tests.TimerDisposeTests+<DisposeAsync_AfterDisposeWorks>d__6:MoveNext():this (FullOpts)
       -2460 (-100.00 % of base) : 312919.dasm - System.Threading.Tests.TimerDisposeTests+<DisposeAsync_DisposeDelayedUntilCallbacksComplete>d__4:MoveNext():this (FullOpts)
       -2452 (-100.00 % of base) : 311230.dasm - System.Threading.Tasks.Tests.CancellationTokenTests+<CancellationTokenRegistration_DisposeAsyncWhileCallbackRunning_WaitsForCallbackToComplete>d__61:MoveNext():this (FullOpts)
       -2436 (-100.00 % of base) : 24463.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<ReuseInstanceWithResets_Success>d__0:MoveNext():this (FullOpts)
       -2436 (-100.00 % of base) : 308751.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<ReuseInstanceWithResets_Success>d__0:MoveNext():this (FullOpts)
       -2212 (-100.00 % of base) : 154804.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass2_0+<<GetAsync_CancelDuringResponseHeadersReceived_TaskCanceledQuickly>b__0>d:MoveNext():this (FullOpts)
       -1976 (-100.00 % of base) : 308585.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<>c__DisplayClass47_0+<<Generic_Awaiter_ContinuesOnCapturedContext>b__0>d:MoveNext():this (FullOpts)
       -1960 (-100.00 % of base) : 154370.dasm - System.Net.Http.Functional.Tests.HttpClientHandlerTest+<>c__DisplayClass24_1+<<GetAsync_InfiniteChunkSize_ThrowsHttpRequestException>b__1>d:MoveNext():this (FullOpts)
       -1932 (-100.00 % of base) : 160040.dasm - System.Net.Quic.Tests.MsQuicTests+<QuicRootedObjectGetReleased>d__3:MoveNext():this (FullOpts)
       -1716 (-100.00 % of base) : 308596.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<NonGeneric_CreateFromTask_Await_Normal>d__34:MoveNext():this (FullOpts)
       -1676 (-100.00 % of base) : 308609.dasm - System.Threading.Tasks.Tests.ValueTaskTests+<>c__DisplayClass48_0+<<NonGeneric_ConfiguredAwaiter_ContinuesOnCapturedContext>b__0>d:MoveNext():this (FullOpts)
       -1636 (-100.00 % of base) : 308553.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_10>d:MoveNext():this (FullOpts)
       -1636 (-100.00 % of base) : 308612.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_21>d:MoveNext():this (FullOpts)
       -1636 (-100.00 % of base) : 308741.dasm - System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+<>c+<<AwaitTasksAndValueTasks_InTaskAndValueTaskMethods>b__23_43>d:MoveNext():this (FullOpts)
       -1580 (-100.00 % of base) : 104270.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1464 (-100.00 % of base) : 155069.dasm - System.Net.Http.WinHttpHandlerFunctional.Tests.BidirectionStreamingTest+<>c__DisplayClass12_1+<<AfterReadResponseServerError_ClientWrite>b__1>d:MoveNext():this (FullOpts)
       -1364 (-100.00 % of base) : 154775.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)

Top method improvements (percentages):
        -800 (-100.00 % of base) : 41471.dasm - Microsoft.Extensions.DependencyInjection.HttpClientFactoryServiceCollectionExtensionsTest+<>c+<<AddHttpClient_GetAwaiterAndResult_InSingleThreadedSynchronizationContext_ShouldNotHangs>b__44_3>d:MoveNext():this (FullOpts)
       -4008 (-100.00 % of base) : 39348.dasm - Microsoft.Extensions.FileProviders.PhysicalFileProviderTests+<UsePollingFileWatcher_UseActivePolling_HasChanged_SymbolicLink_TargetChanged>d__86:MoveNext():this (FullOpts)
        -168 (-100.00 % of base) : 83932.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
        -644 (-100.00 % of base) : 83938.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -228 (-100.00 % of base) : 83961.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
        -692 (-100.00 % of base) : 83724.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -228 (-100.00 % of base) : 83926.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
       -1116 (-100.00 % of base) : 125307.dasm - System.Globalization.Tests.CultureInfoAsync+<>c__DisplayClass1_0+<<TestCurrentCulturesWithAwait>g__MainAsync|0>d:MoveNext():this (FullOpts)
        -968 (-100.00 % of base) : 132544.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts+<>c__DisplayClass20_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
        -968 (-100.00 % of base) : 131981.dasm - System.IO.Pipelines.Tests.ReadAsyncCancellationTests+<>c__DisplayClass16_0+<<ReadingCanBeCanceled>b__1>d:MoveNext():this (FullOpts)
       -1364 (-100.00 % of base) : 154775.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
       -2212 (-100.00 % of base) : 154804.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass2_0+<<GetAsync_CancelDuringResponseHeadersReceived_TaskCanceledQuickly>b__0>d:MoveNext():this (FullOpts)
       -1960 (-100.00 % of base) : 154370.dasm - System.Net.Http.Functional.Tests.HttpClientHandlerTest+<>c__DisplayClass24_1+<<GetAsync_InfiniteChunkSize_ThrowsHttpRequestException>b__1>d:MoveNext():this (FullOpts)
        -536 (-100.00 % of base) : 154088.dasm - System.Net.Http.Functional.Tests.HttpClientHandlerTest+<>c__DisplayClass42_1:<PostAsync_ThrowFromContentCopy_RequestFails>b__7(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]:this (FullOpts)
       -1464 (-100.00 % of base) : 155069.dasm - System.Net.Http.WinHttpHandlerFunctional.Tests.BidirectionStreamingTest+<>c__DisplayClass12_1+<<AfterReadResponseServerError_ClientWrite>b__1>d:MoveNext():this (FullOpts)
       -1932 (-100.00 % of base) : 160040.dasm - System.Net.Quic.Tests.MsQuicTests+<QuicRootedObjectGetReleased>d__3:MoveNext():this (FullOpts)
        -984 (-100.00 % of base) : 154872.dasm - System.Net.Test.Common.SocketWrapper+<WaitForCloseAsync>d__10:MoveNext():this (FullOpts)
        -620 (-100.00 % of base) : 310814.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<DisposeAsync>d__8[int]:MoveNext():this (FullOpts)
        -620 (-100.00 % of base) : 24388.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<DisposeAsync>d__8[int]:MoveNext():this (FullOpts)
        -600 (-100.00 % of base) : 310811.dasm - System.Runtime.CompilerServices.Tests.ConfiguredCancelableAsyncEnumerableTests+EnumerableWithDelayToAsyncEnumerable`1+<MoveNextAsync>d__5[int]:MoveNext():this (FullOpts)



windows x64

Diffs are based on 2,492,949 contexts (983,689 MinOpts, 1,509,260 FullOpts).

MISSED contexts: base: 3,859 (0.15%), diff: 3,862 (0.15%)

Overall (-2,082 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 41,760,738 -1,310
benchmarks.run_pgo.windows.x64.checked.mch 34,741,684 +112
benchmarks.run_tiered.windows.x64.checked.mch 12,662,284 -10
coreclr_tests.run.windows.x64.checked.mch 392,866,349 +302
libraries.pmi.windows.x64.checked.mch 61,196,926 +84
libraries_tests.run.windows.x64.Release.mch 279,034,736 -1,249
librariestestsnotieredcompilation.run.windows.x64.Release.mch 133,435,993 -6
realworld.run.windows.x64.checked.mch 14,170,685 -5

FullOpts (-2,082 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 27,102,013 -1,310
benchmarks.run_pgo.windows.x64.checked.mch 20,506,707 +112
benchmarks.run_tiered.windows.x64.checked.mch 3,477,018 -10
coreclr_tests.run.windows.x64.checked.mch 119,323,357 +302
libraries.pmi.windows.x64.checked.mch 61,083,407 +84
libraries_tests.run.windows.x64.Release.mch 100,666,420 -1,249
librariestestsnotieredcompilation.run.windows.x64.Release.mch 123,012,623 -6
realworld.run.windows.x64.checked.mch 13,780,980 -5

Example diffs

aspnet.run.windows.x64.checked.mch

-32 (-3.21%) : 7170.dasm - System.Collections.Concurrent.ConcurrentDictionary2[long,System.__Canon]:GrowTable(System.Collections.Concurrent.ConcurrentDictionary2+Tables[long,System.__Canon],ubyte,ubyte):this (Tier1-OSR)

@@ -10,45 +10,45 @@
 ; 1 inlinees with PGO data; 8 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T26] (  9,  6.76)     ref  ->  [rbp+0x210]  this class-hnd EH-live single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2[long,System.__Canon]>
-;  V01 arg1         [V01,T30] (  5,  6.76)     ref  ->  rbx         class-hnd single-def <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
+;  V00 this         [V00,T31] (  6,  6.76)     ref  ->  [rbp+0x210]  this class-hnd EH-live single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2[long,System.__Canon]>
+;  V01 arg1         [V01,T32] (  5,  6.76)     ref  ->  rbx         class-hnd single-def <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
 ;* V02 arg2         [V02    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
 ;* V03 arg3         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
 ;  V04 loc0         [V04    ] (  3,  1   )     int  ->  [rbp+0x1B8]  do-not-enreg[X] addr-exposed ld-addr-op tier0-frame
-;  V05 loc1         [V05,T33] (  1,  4.76)     int  ->  [rbp+0x1B4]  tier0-frame
-;  V06 loc2         [V06,T27] (  3,  9.52)     ref  ->  rdi         class-hnd <System.Collections.Generic.IEqualityComparer`1[long]>
+;  V05 loc1         [V05,T34] (  1,  4.76)     int  ->  [rbp+0x1B4]  tier0-frame
+;  V06 loc2         [V06,T28] (  3,  9.52)     ref  ->  rdi         class-hnd <System.Collections.Generic.IEqualityComparer`1[long]>
 ;* V07 loc3         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;  V08 loc4         [V08,T03] (  5,104.76)     ref  ->  rsi         class-hnd <System.Object[]>
-;  V09 loc5         [V09,T31] (  3,  4.76)     ref  ->  r14         class-hnd exact <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
-;  V10 loc6         [V10,T20] (  4, 14.29)     ref  ->  r15         class-hnd exact <int[]>
-;  V11 loc7         [V11,T19] (  5, 14.29)     ref  ->  r12         class-hnd exact <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
+;  V09 loc5         [V09,T33] (  3,  4.76)     ref  ->  r15         class-hnd exact <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
+;  V10 loc6         [V10,T22] (  4, 14.29)     ref  ->  r13         class-hnd exact <int[]>
+;  V11 loc7         [V11,T21] (  5, 14.29)     ref  ->  r12         class-hnd exact <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
 ;  V12 loc8         [V12,T00] (  5,378.57)     int  ->  [rbp+0x17C]  tier0-frame
-;  V13 loc9         [V13,T37] (  3,  0   )     ref  ->  [rbp+0x170]  class-hnd exact spill-single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
-;  V14 loc10        [V14,T36] (  5,  0   )     int  ->  [rbp+0x16C]  tier0-frame
+;  V13 loc9         [V13,T38] (  3,  0   )     ref  ->  [rbp+0x170]  class-hnd exact spill-single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
+;  V14 loc10        [V14,T37] (  5,  0   )     int  ->  [rbp+0x16C]  tier0-frame
 ;* V15 loc11        [V15    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon]>
 ;  V16 loc12        [V16,T06] (  9, 28.57)     ref  ->  [rbp+0x158]  class-hnd tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
 ;* V17 loc13        [V17    ] (  0,  0   )     int  ->  zero-ref   
-;  V18 loc14        [V18,T28] (  2,  9.52)     ref  ->  [rbp+0x148]  class-hnd exact spill-single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
-;  V19 loc15        [V19,T23] (  3, 14.29)   byref  ->  rbx        
-;  V20 loc16        [V20,T18] (  4, 15.29)     int  ->  [rbp+0x138]  ld-addr-op spill-single-def tier0-frame
+;  V18 loc14        [V18,T29] (  2,  9.52)     ref  ->  [rbp+0x148]  class-hnd exact spill-single-def tier0-frame <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
+;  V19 loc15        [V19,T25] (  3, 14.29)   byref  ->  rbx        
+;  V20 loc16        [V20,T20] (  4, 15.29)     int  ->  [rbp+0x138]  ld-addr-op spill-single-def tier0-frame
 ;  V21 OutArgs      [V21    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V22 tmp1         [V22    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V23 tmp2         [V23    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V24 tmp3         [V24    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V25 tmp4         [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V26 tmp5         [V26,T21] (  4, 14.29)     ref  ->  r13        
-;  V27 tmp6         [V27,T38] (  3,  0   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
+;  V26 tmp5         [V26,T23] (  4, 14.29)     ref  ->  r12        
+;  V27 tmp6         [V27,T39] (  3,  0   )     ref  ->  [rbp-0x48]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentDictionary`2+Tables[long,System.__Canon]>
 ;* V28 tmp7         [V28    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V29 tmp8         [V29    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V30 tmp9         [V30,T22] (  4, 14.29)     int  ->  [rbp-0x3C] 
+;  V30 tmp9         [V30,T24] (  4, 14.29)     int  ->  [rbp-0x3C] 
 ;* V31 tmp10        [V31    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V32 tmp11        [V32,T05] (  6, 57.14)     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
+;  V32 tmp11        [V32,T05] (  6, 57.14)     ref  ->  [rbp-0x50]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
 ;* V33 tmp12        [V33    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;  V34 tmp13        [V34,T07] (  3, 28.57)   byref  ->  rdx         "dup spill"
 ;* V35 tmp14        [V35    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V36 tmp15        [V36    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V37 tmp16        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Object>
-;* V38 tmp17        [V38,T34] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
+;* V38 tmp17        [V38,T35] (  0,  0   )     int  ->  zero-ref    "OSR entry state var"
 ;* V39 tmp18        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Object[]>
 ;* V40 tmp19        [V40    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V41 tmp20        [V41    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -56,58 +56,56 @@
 ;* V43 tmp22        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V44 tmp23        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V45 tmp24        [V45    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V46 tmp25        [V46,T24] (  3, 14.29)     ref  ->  r11         class-hnd exact "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
+;  V46 tmp25        [V46,T26] (  3, 14.29)     ref  ->  rcx         class-hnd exact "Inline stloc first use temp" <System.Collections.Concurrent.ConcurrentDictionary`2+VolatileNode[long,System.__Canon][]>
 ;* V47 tmp26        [V47    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp27        [V48    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V49 tmp28        [V49    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V50 tmp29        [V50,T12] (  4, 19.05)     int  ->  r13         "Inline stloc first use temp"
-;  V51 tmp30        [V51,T16] (  2, 19.05)    long  ->  rcx         "Inlining Arg"
-;  V52 tmp31        [V52,T14] (  2, 19.05)     ref  ->  rdx         class-hnd "Inlining Arg" <System.__Canon>
-;  V53 tmp32        [V53,T15] (  2, 19.05)     ref  ->  [rbp-0x50]  class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
-;  V54 tmp33        [V54,T50] (  2,  0   )     int  ->  rcx         "Inline return value spill temp"
-;  V55 tmp34        [V55,T39] (  3,  0   )     int  ->  rax         "Inlining Arg"
-;  V56 tmp35        [V56,T49] (  2,  0   )     ref  ->  rax         "field V15._node (fldOffset=0x0)" P-INDEP
+;  V50 tmp29        [V50,T13] (  4, 19.05)     int  ->  rbx         "Inline stloc first use temp"
+;  V51 tmp30        [V51,T18] (  2, 19.05)    long  ->  rcx         "Inlining Arg"
+;  V52 tmp31        [V52,T16] (  2, 19.05)     ref  ->  rdx         class-hnd "Inlining Arg" <System.__Canon>
+;  V53 tmp32        [V53,T17] (  2, 19.05)     ref  ->  [rbp-0x58]  class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentDictionary`2+Node[long,System.__Canon]>
+;  V54 tmp33        [V54,T47] (  2,  0   )     int  ->  rcx         "Inline return value spill temp"
+;  V55 tmp34        [V55,T40] (  3,  0   )     int  ->  rax         "Inlining Arg"
+;  V56 tmp35        [V56,T46] (  2,  0   )     ref  ->  r10         "field V15._node (fldOffset=0x0)" P-INDEP
 ;* V57 tmp36        [V57    ] (  0,  0   )     ref  ->  zero-ref    single-def "arr expr"
 ;* V58 tmp37        [V58    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V59 tmp38        [V59,T01] (  2,371.43)     ref  ->   r8         "argument with side effect"
-;  V60 tmp39        [V60,T17] (  2, 19.05)    long  ->  rax         "argument with side effect"
-;  V61 tmp40        [V61,T51] (  2,  0   )    long  ->  rax         "argument with side effect"
-;  V62 PSPSym       [V62,T35] (  1,  1   )    long  ->  [rbp-0x58]  do-not-enreg[V] "PSPSym"
-;  V63 cse0         [V63,T32] (  2,  4.76)    long  ->  [rbp-0x48]  spill-single-def hoist "CSE - moderate"
-;  V64 cse1         [V64,T04] (  2, 99.65)    long  ->  r13         hoist "CSE - aggressive"
-;  V65 cse2         [V65,T02] (  3,107.14)     int  ->  r14         "CSE - aggressive"
-;  V66 cse3         [V66,T25] (  3, 14.29)     int  ->  rbx         "CSE - moderate"
-;  V67 rat0         [V67,T10] (  3, 20.95)    long  ->  rdx         "Spilling to split statement for tree"
-;  V68 rat1         [V68,T13] (  3, 19.05)    long  ->  rax         "runtime lookup"
+;  V60 tmp39        [V60,T19] (  2, 19.05)    long  ->  rax         "argument with side effect"
+;  V61 tmp40        [V61,T48] (  2,  0   )    long  ->  rcx         "argument with side effect"
+;  V62 PSPSym       [V62,T36] (  1,  1   )    long  ->  [rbp-0x68]  do-not-enreg[V] "PSPSym"
+;  V63 cse0         [V63,T04] (  2, 99.65)    long  ->  r13         hoist "CSE - aggressive"
+;  V64 cse1         [V64,T02] (  3,107.14)     int  ->  r14         "CSE - aggressive"
+;  V65 cse2         [V65,T11] (  8, 15.24)    long  ->  r14         "CSE - moderate"
+;  V66 cse3         [V66,T27] (  3, 14.29)     int  ->  [rbp-0x40]  spill-single-def "CSE - moderate"
+;  V67 rat0         [V67,T12] (  3, 20.95)    long  ->  rdx         "Spilling to split statement for tree"
+;  V68 rat1         [V68,T14] (  3, 19.05)    long  ->  rax         "runtime lookup"
 ;  V69 rat2         [V69,T08] (  3, 26.67)    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V70 rat3         [V70,T40] (  3,  0   )    long  ->  rdx         "Spilling to split statement for tree"
-;  V71 rat4         [V71,T41] (  3,  0   )    long  ->  rax         "runtime lookup"
-;  V72 rat5         [V72,T42] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V73 rat6         [V73,T43] (  3,  0   )    long  ->  rdx         "Spilling to split statement for tree"
-;  V74 rat7         [V74,T44] (  3,  0   )    long  ->  rax         "runtime lookup"
-;  V75 rat8         [V75,T45] (  3,  0   )    long  ->  rax         "fgMakeTemp is creating a new local variable"
-;  V76 rat9         [V76,T46] (  3,  0   )    long  ->  rdx         "Spilling to split statement for tree"
-;  V77 rat10        [V77,T47] (  3,  0   )    long  ->   r8         "runtime lookup"
-;  V78 rat11        [V78,T48] (  3,  0   )    long  ->   r8         "fgMakeTemp is creating a new local variable"
-;* V79 rat12        [V79,T11] (  0,  0   )    long  ->  zero-ref    "Spilling to split statement for tree"
-;* V80 rat13        [V80,T29] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
-;* V81 rat14        [V81,T09] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V70 rat3         [V70,T41] (  3,  0   )    long  ->  rcx         "runtime lookup"
+;  V71 rat4         [V71,T42] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V72 rat5         [V72,T43] (  3,  0   )    long  ->  rcx         "runtime lookup"
+;  V73 rat6         [V73,T44] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;* V74 rat7         [V74,T49] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V75 rat8         [V75,T45] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;* V76 rat9         [V76,T30] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V77 rat10        [V77,T09] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
+;  V78 rat11        [V78,T15] (  3, 19.05)    long  ->  rcx         "runtime lookup"
+;  V79 rat12        [V79,T10] (  3, 26.67)    long  ->  rcx         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 72
+; Lcl frame size = 88
 
 G_M30152_IG01:        ; bbWeight=7.14, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        mov      rax, qword ptr [rbp]
        push     rax
-       sub      rsp, 128
-       mov      qword ptr [rsp+0x278], r15
-       mov      qword ptr [rsp+0x270], r14
-       mov      qword ptr [rsp+0x268], r13
-       mov      qword ptr [rsp+0x260], r12
-       mov      qword ptr [rsp+0x258], rdi
-       mov      qword ptr [rsp+0x250], rsi
-       mov      qword ptr [rsp+0x248], rbx
-       lea      rbp, [rsp+0x80]
-       mov      qword ptr [rbp-0x58], rsp
+       sub      rsp, 144
+       mov      qword ptr [rsp+0x288], r15
+       mov      qword ptr [rsp+0x280], r14
+       mov      qword ptr [rsp+0x278], r13
+       mov      qword ptr [rsp+0x270], r12
+       mov      qword ptr [rsp+0x268], rdi
+       mov      qword ptr [rsp+0x260], rsi
+       mov      qword ptr [rsp+0x258], rbx
+       lea      rbp, [rsp+0x90]
+       mov      qword ptr [rbp-0x68], rsp
        mov      rbx, gword ptr [rbp+0x218]
        ; gcrRegs +[rbx]
        mov      rdi, gword ptr [rbp+0x1A8]
@@ -115,8 +113,8 @@ G_M30152_IG01:        ; bbWeight=7.14, gcVars=0000000000000000 {}, gcrefRegs=000
        mov      rsi, gword ptr [rbp+0x198]
        ; gcrRegs +[rsi]
                        ;; size=101 bbWeight=7.14 PerfScore 126.79
-G_M30152_IG02:        ; bbWeight=7.14, gcVars=0000000004000000 {V00}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V00 V26}
+G_M30152_IG02:        ; bbWeight=7.14, gcVars=0000000080000000 {V00}, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V00}
        mov      r14d, dword ptr [rsi+0x08]
        mov      r15d, dword ptr [rbp+0x17C]
        cmp      r14d, r15d
@@ -145,13 +143,14 @@ G_M30152_IG04:        ; bbWeight=92.86, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=
 G_M30152_IG05:        ; bbWeight=4.76, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rcx, gword ptr [rbp+0x210]
        ; gcrRegs +[rcx]
-       mov      rdx, qword ptr [rcx]
+       mov      r14, qword ptr [rcx]
+       mov      rdx, r14
        mov      rax, qword ptr [rdx+0x30]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x20]
        test     rax, rax
        jne      SHORT G_M30152_IG11
-                       ;; size=26 bbWeight=4.76 PerfScore 48.81
+                       ;; size=29 bbWeight=4.76 PerfScore 50.00
 G_M30152_IG06:        ; bbWeight=0.95, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        mov      rcx, rdx
@@ -165,194 +164,228 @@ G_M30152_IG07:        ; bbWeight=4.76, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      r14, rax
-       ; gcrRegs +[r14]
+       mov      r15, rax
+       ; gcrRegs +[r15]
        mov      edx, dword ptr [rsi+0x08]
        mov      rcx, 0xD1FFAB1E      ; int[]
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
-       mov      r13, rdi
+       mov      r13, rax
        ; gcrRegs +[r13]
-       test     r13, r13
+       mov      r12, rdi
+       ; gcrRegs +[r12]
+       test     r12, r12
        je       SHORT G_M30152_IG09
                        ;; size=47 bbWeight=4.76 PerfScore 45.24
-G_M30152_IG08:        ; bbWeight=0, gcrefRegs=E0C8 {rbx rsi rdi r13 r14 r15}, byrefRegs=0000 {}, byref
+G_M30152_IG08:        ; bbWeight=0, gcrefRegs=B0C8 {rbx rsi rdi r12 r13 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
-       mov      rcx, gword ptr [rbp+0x210]
-       ; gcrRegs +[rcx]
-       mov      rdx, qword ptr [rcx]
-       mov      rax, qword ptr [rdx+0x30]
-       mov      rax, qword ptr [rax]
-       mov      rax, qword ptr [rax+0x28]
-       test     rax, rax
-       je       G_M30152_IG15
-       jmp      G_M30152_IG16
-                       ;; size=35 bbWeight=0 PerfScore 0.00
-G_M30152_IG09:        ; bbWeight=4.76, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rcx r13]
-       mov      r13, gword ptr [rbx+0x08]
-       ; gcrRegs +[r13]
+       mov      rcx, qword ptr [r14+0x30]
+       mov      rcx, qword ptr [rcx]
+       mov      rcx, qword ptr [rcx+0x28]
+       test     rcx, rcx
+       je       G_M30152_IG19
+       jmp      G_M30152_IG20
+                       ;; size=25 bbWeight=0 PerfScore 0.00
+G_M30152_IG09:        ; bbWeight=4.76, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[r12]
+       mov      r12, gword ptr [rbx+0x08]
+       ; gcrRegs +[r12]
        jmp      SHORT G_M30152_IG08
                        ;; size=6 bbWeight=4.76 PerfScore 19.05
-G_M30152_IG10:        ; bbWeight=4.76, gcVars=0000002004000040 {V00 V13 V16}, gcrefRegs=D0C0 {rsi rdi r12 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rbx r13] +[r12]
-       ; GC ptr vars -{V26} +{V06 V13 V16}
+G_M30152_IG10:        ; bbWeight=4.76, gcVars=0000004080000000 {V00 V13}, gcrefRegs=B4C0 {rsi rdi r10 r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rbx] +[r10]
+       ; GC ptr vars +{V13 V38}
        test     rdi, rdi
        je       SHORT G_M30152_IG12
-       jmp      G_M30152_IG22
...

-9 (-2.87%) : 42405.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)

@@ -11,41 +11,39 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;  V01 arg1         [V01,T04] (  3,  2   )     ref  ->  rbx         class-hnd single-def <System.Array>
-;  V02 loc0         [V02,T07] (  3,  1   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
+;  V02 loc0         [V02,T07] (  6,  1   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
 ;  V03 loc1         [V03,T09] (  7,  0   )     int  ->  rdi        
-;  V04 loc2         [V04,T12] (  4,  0   )     int  ->  rbp        
+;  V04 loc2         [V04,T11] (  4,  0   )     int  ->  rbp        
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T16] (  2,  0   )     int  ->  rdi         "dup spill"
+;  V06 tmp1         [V06,T15] (  2,  0   )     int  ->  rdi         "dup spill"
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V08 tmp3         [V08,T13] (  4,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V08 tmp3         [V08,T12] (  4,  0   )     int  ->  rax         "Inline return value spill temp"
 ;  V09 tmp4         [V09,T00] (  4,  6   )     int  ->  rdi         "dup spill"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V11 tmp6         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V12 tmp7         [V12,T15] (  3,  0   )   ubyte  ->  r13         "Inline stloc first use temp"
-;  V13 tmp8         [V13,T08] (  8,  0   )     ref  ->  r15         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V14 tmp9         [V14,T14] (  3,  0   )     ref  ->  rcx         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V15 tmp10        [V15,T10] (  5,  0   )     int  ->  r12         "Inline stloc first use temp"
+;  V12 tmp7         [V12,T14] (  3,  0   )   ubyte  ->  r15         "Inline stloc first use temp"
+;  V13 tmp8         [V13,T08] (  8,  0   )     ref  ->  r14         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V14 tmp9         [V14,T13] (  3,  0   )     ref  ->  rcx         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V15 tmp10        [V15,T10] (  5,  0   )     int  ->  r13         "Inline stloc first use temp"
 ;  V16 cse0         [V16,T06] (  3,  3   )    long  ->  rcx         "CSE - aggressive"
-;  V17 cse1         [V17,T11] (  5,  0   )     int  ->  r14         "CSE - moderate"
-;  V18 rat0         [V18,T05] (  3,  4   )    long  ->  rcx         "TLS field access"
-;  V19 rat1         [V19,T01] (  3,  6   )    long  ->  rcx         "TLS access"
-;  V20 rat2         [V20,T02] (  3,  6   )    long  ->  rcx         "ThreadStaticBlockBase access"
+;  V17 rat0         [V17,T05] (  3,  4   )    long  ->  rcx         "TLS field access"
+;  V18 rat1         [V18,T01] (  3,  6   )    long  ->  rcx         "TLS access"
+;  V19 rat2         [V19,T02] (  3,  6   )    long  ->  rcx         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M28192_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-                       ;; size=19 bbWeight=1 PerfScore 8.50
+                       ;; size=17 bbWeight=1 PerfScore 7.50
 G_M28192_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        mov      rsi, gword ptr [rcx+0x08]
@@ -86,35 +84,34 @@ G_M28192_IG06:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        mov      edi, eax
        sub      edi, ecx
        xor      ebp, ebp
-       mov      r14d, dword ptr [rsi+0x08]
-       test     r14d, r14d
+       cmp      dword ptr [rsi+0x08], 0
        jle      SHORT G_M28192_IG11
-                       ;; size=33 bbWeight=0 PerfScore 0.00
+                       ;; size=30 bbWeight=0 PerfScore 0.00
 G_M28192_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       cmp      edi, r14d
+       cmp      edi, dword ptr [rsi+0x08]
        jae      G_M28192_IG15
        mov      ecx, edi
-       mov      r15, gword ptr [rsi+8*rcx+0x10]
-       ; gcrRegs +[r15]
-       cmp      byte  ptr [r15], r15b
-       xor      r13d, r13d
-       mov      rcx, r15
+       mov      r14, gword ptr [rsi+8*rcx+0x10]
+       ; gcrRegs +[r14]
+       cmp      byte  ptr [r14], r14b
+       xor      r15d, r15d
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [r15+0x08]
+       mov      rcx, gword ptr [r14+0x08]
        ; gcrRegs +[rcx]
-       mov      r12d, dword ptr [r15+0x14]
-       cmp      dword ptr [rcx+0x08], r12d
+       mov      r13d, dword ptr [r14+0x14]
+       cmp      dword ptr [rcx+0x08], r13d
        jbe      SHORT G_M28192_IG09
-       test     r12d, r12d
+       test     r13d, r13d
        jne      SHORT G_M28192_IG08
        xor      edx, edx
-       mov      dword ptr [r15+0x18], edx
+       mov      dword ptr [r14+0x18], edx
                        ;; size=55 bbWeight=0 PerfScore 0.00
-G_M28192_IG08:        ; bbWeight=0, gcrefRegs=804A {rcx rbx rsi r15}, byrefRegs=0000 {}, byref
-       movsxd   rdx, r12d
+G_M28192_IG08:        ; bbWeight=0, gcrefRegs=404A {rcx rbx rsi r14}, byrefRegs=0000 {}, byref
+       movsxd   rdx, r13d
        lea      rcx, bword ptr [rcx+8*rdx+0x10]
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
@@ -123,26 +120,26 @@ G_M28192_IG08:        ; bbWeight=0, gcrefRegs=804A {rcx rbx rsi r15}, byrefRegs=
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rdx]
        ; byrRegs -[rcx]
-       inc      r12d
-       mov      dword ptr [r15+0x14], r12d
-       mov      r13d, 1
+       inc      r13d
+       mov      dword ptr [r14+0x14], r13d
+       mov      r15d, 1
                        ;; size=29 bbWeight=0 PerfScore 0.00
-G_M28192_IG09:        ; bbWeight=0, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, r15
+G_M28192_IG09:        ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     <unknown method>
-       ; gcrRegs -[rcx r15]
+       ; gcrRegs -[rcx r14]
        ; gcr arg pop 0
-       test     r13d, r13d
+       test     r15d, r15d
        jne      SHORT G_M28192_IG13
        inc      edi
-       cmp      r14d, edi
+       cmp      dword ptr [rsi+0x08], edi
        jne      SHORT G_M28192_IG10
        xor      edi, edi
                        ;; size=22 bbWeight=0 PerfScore 0.00
 G_M28192_IG10:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        inc      ebp
-       cmp      r14d, ebp
+       cmp      dword ptr [rsi+0x08], ebp
        jg       SHORT G_M28192_IG07
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M28192_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -150,32 +147,30 @@ G_M28192_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
 G_M28192_IG12:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=17 bbWeight=0 PerfScore 0.00
+                       ;; size=15 bbWeight=0 PerfScore 0.00
 G_M28192_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0 PerfScore 0.00
 G_M28192_IG14:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=17 bbWeight=0 PerfScore 0.00
+                       ;; size=15 bbWeight=0 PerfScore 0.00
 G_M28192_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
@@ -189,7 +184,7 @@ G_M28192_IG16:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        jmp      G_M28192_IG03
                        ;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 314, prolog size 19, PerfScore 27.75, instruction count 101, allocated bytes for code 314 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)
+Total bytes of code 305, prolog size 17, PerfScore 26.75, instruction count 97, allocated bytes for code 305 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -197,17 +192,16 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x10
-  CountOfUnwindCodes: 9
+  SizeOfProlog      : 0x0E
+  CountOfUnwindCodes: 8
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r12 (12)
+    CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
     CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r13 (13)
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)

-9 (-2.87%) : 54078.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)

@@ -11,41 +11,39 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;  V01 arg1         [V01,T04] (  3,  2   )     ref  ->  rbx         class-hnd single-def <System.Array>
-;  V02 loc0         [V02,T07] (  3,  1   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
+;  V02 loc0         [V02,T07] (  6,  1   )     ref  ->  rsi         class-hnd exact single-def <<unknown class>>
 ;  V03 loc1         [V03,T09] (  7,  0   )     int  ->  rdi        
-;  V04 loc2         [V04,T12] (  4,  0   )     int  ->  rbp        
+;  V04 loc2         [V04,T11] (  4,  0   )     int  ->  rbp        
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T16] (  2,  0   )     int  ->  rdi         "dup spill"
+;  V06 tmp1         [V06,T15] (  2,  0   )     int  ->  rdi         "dup spill"
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V08 tmp3         [V08,T13] (  4,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V08 tmp3         [V08,T12] (  4,  0   )     int  ->  rax         "Inline return value spill temp"
 ;  V09 tmp4         [V09,T00] (  4,  6   )     int  ->  rdi         "dup spill"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V11 tmp6         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V12 tmp7         [V12,T15] (  3,  0   )   ubyte  ->  r13         "Inline stloc first use temp"
-;  V13 tmp8         [V13,T08] (  8,  0   )     ref  ->  r15         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V14 tmp9         [V14,T14] (  3,  0   )     ref  ->  rcx         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V15 tmp10        [V15,T10] (  5,  0   )     int  ->  r12         "Inline stloc first use temp"
+;  V12 tmp7         [V12,T14] (  3,  0   )   ubyte  ->  r15         "Inline stloc first use temp"
+;  V13 tmp8         [V13,T08] (  8,  0   )     ref  ->  r14         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V14 tmp9         [V14,T13] (  3,  0   )     ref  ->  rcx         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V15 tmp10        [V15,T10] (  5,  0   )     int  ->  r13         "Inline stloc first use temp"
 ;  V16 cse0         [V16,T06] (  3,  3   )    long  ->  rcx         "CSE - aggressive"
-;  V17 cse1         [V17,T11] (  5,  0   )     int  ->  r14         "CSE - moderate"
-;  V18 rat0         [V18,T05] (  3,  4   )    long  ->  rcx         "TLS field access"
-;  V19 rat1         [V19,T01] (  3,  6   )    long  ->  rcx         "TLS access"
-;  V20 rat2         [V20,T02] (  3,  6   )    long  ->  rcx         "ThreadStaticBlockBase access"
+;  V17 rat0         [V17,T05] (  3,  4   )    long  ->  rcx         "TLS field access"
+;  V18 rat1         [V18,T01] (  3,  6   )    long  ->  rcx         "TLS access"
+;  V19 rat2         [V19,T02] (  3,  6   )    long  ->  rcx         "ThreadStaticBlockBase access"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M28192_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-                       ;; size=19 bbWeight=1 PerfScore 8.50
+                       ;; size=17 bbWeight=1 PerfScore 7.50
 G_M28192_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        mov      rsi, gword ptr [rcx+0x08]
@@ -86,35 +84,34 @@ G_M28192_IG06:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        mov      edi, eax
        sub      edi, ecx
        xor      ebp, ebp
-       mov      r14d, dword ptr [rsi+0x08]
-       test     r14d, r14d
+       cmp      dword ptr [rsi+0x08], 0
        jle      SHORT G_M28192_IG11
-                       ;; size=33 bbWeight=0 PerfScore 0.00
+                       ;; size=30 bbWeight=0 PerfScore 0.00
 G_M28192_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       cmp      edi, r14d
+       cmp      edi, dword ptr [rsi+0x08]
        jae      G_M28192_IG15
        mov      ecx, edi
-       mov      r15, gword ptr [rsi+8*rcx+0x10]
-       ; gcrRegs +[r15]
-       cmp      byte  ptr [r15], r15b
-       xor      r13d, r13d
-       mov      rcx, r15
+       mov      r14, gword ptr [rsi+8*rcx+0x10]
+       ; gcrRegs +[r14]
+       cmp      byte  ptr [r14], r14b
+       xor      r15d, r15d
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [r15+0x08]
+       mov      rcx, gword ptr [r14+0x08]
        ; gcrRegs +[rcx]
-       mov      r12d, dword ptr [r15+0x14]
-       cmp      dword ptr [rcx+0x08], r12d
+       mov      r13d, dword ptr [r14+0x14]
+       cmp      dword ptr [rcx+0x08], r13d
        jbe      SHORT G_M28192_IG09
-       test     r12d, r12d
+       test     r13d, r13d
        jne      SHORT G_M28192_IG08
        xor      edx, edx
-       mov      dword ptr [r15+0x18], edx
+       mov      dword ptr [r14+0x18], edx
                        ;; size=55 bbWeight=0 PerfScore 0.00
-G_M28192_IG08:        ; bbWeight=0, gcrefRegs=804A {rcx rbx rsi r15}, byrefRegs=0000 {}, byref
-       movsxd   rdx, r12d
+G_M28192_IG08:        ; bbWeight=0, gcrefRegs=404A {rcx rbx rsi r14}, byrefRegs=0000 {}, byref
+       movsxd   rdx, r13d
        lea      rcx, bword ptr [rcx+8*rdx+0x10]
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
@@ -123,26 +120,26 @@ G_M28192_IG08:        ; bbWeight=0, gcrefRegs=804A {rcx rbx rsi r15}, byrefRegs=
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rdx]
        ; byrRegs -[rcx]
-       inc      r12d
-       mov      dword ptr [r15+0x14], r12d
-       mov      r13d, 1
+       inc      r13d
+       mov      dword ptr [r14+0x14], r13d
+       mov      r15d, 1
                        ;; size=29 bbWeight=0 PerfScore 0.00
-G_M28192_IG09:        ; bbWeight=0, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
-       mov      rcx, r15
+G_M28192_IG09:        ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     <unknown method>
-       ; gcrRegs -[rcx r15]
+       ; gcrRegs -[rcx r14]
        ; gcr arg pop 0
-       test     r13d, r13d
+       test     r15d, r15d
        jne      SHORT G_M28192_IG13
        inc      edi
-       cmp      r14d, edi
+       cmp      dword ptr [rsi+0x08], edi
        jne      SHORT G_M28192_IG10
        xor      edi, edi
                        ;; size=22 bbWeight=0 PerfScore 0.00
 G_M28192_IG10:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        inc      ebp
-       cmp      r14d, ebp
+       cmp      dword ptr [rsi+0x08], ebp
        jg       SHORT G_M28192_IG07
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M28192_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -150,32 +147,30 @@ G_M28192_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
 G_M28192_IG12:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=17 bbWeight=0 PerfScore 0.00
+                       ;; size=15 bbWeight=0 PerfScore 0.00
 G_M28192_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0 PerfScore 0.00
 G_M28192_IG14:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        ret      
-                       ;; size=17 bbWeight=0 PerfScore 0.00
+                       ;; size=15 bbWeight=0 PerfScore 0.00
 G_M28192_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
@@ -189,7 +184,7 @@ G_M28192_IG16:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        jmp      G_M28192_IG03
                        ;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 314, prolog size 19, PerfScore 27.75, instruction count 101, allocated bytes for code 314 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)
+Total bytes of code 305, prolog size 17, PerfScore 26.75, instruction count 97, allocated bytes for code 305 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -197,17 +192,16 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x10
-  CountOfUnwindCodes: 9
+  SizeOfProlog      : 0x0E
+  CountOfUnwindCodes: 8
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x10 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r12 (12)
+    CodeOffset: 0x0E UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
     CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r13 (13)
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)

+15 (+3.65%) : 92179.dasm - System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)

@@ -11,23 +11,21 @@
 ;
 ;  V00 arg0         [V00,T00] ( 18, 13.09)     ref  ->  rbx         class-hnd <System.RuntimeType>
 ;  V01 arg1         [V01,T01] (  9,  6.65)     ref  ->  rsi         class-hnd single-def <System.RuntimeType>
-;  V02 arg2         [V02,T05] (  3,  2   )   ubyte  ->  rdi         single-def
+;  V02 arg2         [V02,T05] (  4,  3.65)   ubyte  ->  rdi         single-def
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T11] (  2,  0   )     ref  ->  rbp         class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
-;  V05 tmp2         [V05,T12] (  2,  0   )     ref  ->  rbx         single-def "CASTCLASS eval op1"
+;  V04 tmp1         [V04,T09] (  2,  0   )     ref  ->  rbp         class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
+;  V05 tmp2         [V05,T10] (  2,  0   )     ref  ->  rbx         single-def "CASTCLASS eval op1"
 ;* V06 tmp3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;  V07 tmp4         [V07,T02] (  2,  6.61)     ref  ->  r14         class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
+;  V07 tmp4         [V07,T02] (  2,  6.61)     ref  ->  rbp         class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
 ;  V08 tmp5         [V08,T03] (  2,  6.61)     ref  ->  rbx         "CASTCLASS eval op1"
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;* V10 tmp7         [V10,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V10 tmp7         [V10,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V11 tmp8         [V11,T07] (  3,  2   )     int  ->  rbp        
 ;  V12 tmp9         [V12,T08] (  3,  2   )   ubyte  ->  r14         "Inline stloc first use temp"
 ;  V13 tmp10        [V13,T06] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V15 tmp12        [V15,T14] (  2,  0   )     int  ->  rdx         "argument with side effect"
+;  V15 tmp12        [V15,T12] (  2,  0   )     int  ->  rdx         "argument with side effect"
 ;  V16 tmp13        [V16,T04] (  2,  6.61)     int  ->  rdx         "argument with side effect"
-;  V17 cse0         [V17,T09] (  3,  1.65)     int  ->  rdi         "CSE - moderate"
-;  V18 cse1         [V18,T10] (  3,  0.83)    long  ->  rbp         "CSE - conservative"
 ;
 ; Lcl frame size = 48
 
@@ -91,7 +89,7 @@ G_M7917_IG06:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        test     eax, eax
        jge      SHORT G_M7917_IG08
                        ;; size=26 bbWeight=1 PerfScore 6.75
-G_M7917_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M7917_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     <unknown method>
@@ -116,9 +114,9 @@ G_M7917_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rcx rbp r8]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M7917_IG13
+       jne      G_M7917_IG13
        jmp      G_M7917_IG19
-                       ;; size=51 bbWeight=0 PerfScore 0.00
+                       ;; size=55 bbWeight=0 PerfScore 0.00
 G_M7917_IG08:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
@@ -142,22 +140,23 @@ G_M7917_IG10:        ; bbWeight=1.65, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
        call     <unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      r14, rax
-       ; gcrRegs +[r14]
+       mov      rbp, rax
+       ; gcrRegs +[rbp]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     <unknown method>
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        mov      edx, eax
-       mov      dword ptr [rsp+0x20], edi
-       mov      rcx, r14
+       movzx    rcx, dil
+       mov      dword ptr [rsp+0x20], ecx
+       mov      rcx, rbp
        ; gcrRegs +[rcx]
        mov      r8, rsi
        ; gcrRegs +[r8]
        xor      r9d, r9d
        call     [<unknown method>]
-       ; gcrRegs -[rcx r8 r14]
+       ; gcrRegs -[rcx rbp r8]
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M7917_IG13
@@ -170,12 +169,13 @@ G_M7917_IG10:        ; bbWeight=1.65, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
        ; gcrRegs +[rbx]
        test     rbx, rbx
        je       SHORT G_M7917_IG15
-                       ;; size=61 bbWeight=1.65 PerfScore 22.72
+                       ;; size=65 bbWeight=1.65 PerfScore 23.14
 G_M7917_IG11:        ; bbWeight=0.83, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       cmp      qword ptr [rbx], rbp
+       mov      rax, 0xD1FFAB1E      ; System.RuntimeType
+       cmp      qword ptr [rbx], rax
        je       SHORT G_M7917_IG10
-                       ;; size=5 bbWeight=0.83 PerfScore 3.31
+                       ;; size=15 bbWeight=0.83 PerfScore 3.51
 G_M7917_IG12:        ; bbWeight=0.41, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx rsi]
        jmp      SHORT G_M7917_IG15
@@ -223,8 +223,7 @@ G_M7917_IG18:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        jmp      G_M7917_IG07
                        ;; size=20 bbWeight=0 PerfScore 0.00
 G_M7917_IG19:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       movzx    rdi, dil
-       test     edi, edi
+       test     dil, dil
        je       SHORT G_M7917_IG15
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -235,13 +234,13 @@ G_M7917_IG19:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs +[rbx]
        test     rbx, rbx
        je       SHORT G_M7917_IG15
-       mov      rbp, 0xD1FFAB1E      ; System.RuntimeType
-       cmp      qword ptr [rbx], rbp
+       mov      rcx, 0xD1FFAB1E      ; System.RuntimeType
+       cmp      qword ptr [rbx], rcx
        je       G_M7917_IG10
        jmp      SHORT G_M7917_IG15
-                       ;; size=46 bbWeight=0 PerfScore 0.00
+                       ;; size=43 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 411, prolog size 10, PerfScore 55.86, instruction count 115, allocated bytes for code 411 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
+Total bytes of code 426, prolog size 10, PerfScore 56.48, instruction count 116, allocated bytes for code 426 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:

+15 (+3.65%) : 101535.dasm - System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)

@@ -11,23 +11,21 @@
 ;
 ;  V00 arg0         [V00,T00] ( 18, 12.42)     ref  ->  rbx         class-hnd <System.RuntimeType>
 ;  V01 arg1         [V01,T01] (  9,  6.53)     ref  ->  rsi         class-hnd single-def <System.RuntimeType>
-;  V02 arg2         [V02,T05] (  3,  2   )   ubyte  ->  rdi         single-def
+;  V02 arg2         [V02,T05] (  4,  3.53)   ubyte  ->  rdi         single-def
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T11] (  2,  0   )     ref  ->  rbp         class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
-;  V05 tmp2         [V05,T12] (  2,  0   )     ref  ->  rbx         single-def "CASTCLASS eval op1"
+;  V04 tmp1         [V04,T09] (  2,  0   )     ref  ->  rbp         class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
+;  V05 tmp2         [V05,T10] (  2,  0   )     ref  ->  rbx         single-def "CASTCLASS eval op1"
 ;* V06 tmp3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;  V07 tmp4         [V07,T02] (  2,  6.13)     ref  ->  r14         class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
+;  V07 tmp4         [V07,T02] (  2,  6.13)     ref  ->  rbp         class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
 ;  V08 tmp5         [V08,T03] (  2,  6.13)     ref  ->  rbx         "CASTCLASS eval op1"
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;* V10 tmp7         [V10,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V10 tmp7         [V10,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V11 tmp8         [V11,T07] (  3,  2   )     int  ->  rbp        
 ;  V12 tmp9         [V12,T08] (  3,  2   )   ubyte  ->  r14         "Inline stloc first use temp"
 ;  V13 tmp10        [V13,T06] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V15 tmp12        [V15,T14] (  2,  0   )     int  ->  rdx         "argument with side effect"
+;  V15 tmp12        [V15,T12] (  2,  0   )     int  ->  rdx         "argument with side effect"
 ;  V16 tmp13        [V16,T04] (  2,  6.13)     int  ->  rdx         "argument with side effect"
-;  V17 cse0         [V17,T09] (  3,  1.53)     int  ->  rdi         "CSE - moderate"
-;  V18 cse1         [V18,T10] (  3,  0.77)    long  ->  rbp         "CSE - conservative"
 ;
 ; Lcl frame size = 48
 
@@ -91,7 +89,7 @@ G_M7917_IG06:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        test     eax, eax
        jge      SHORT G_M7917_IG08
                        ;; size=26 bbWeight=1 PerfScore 6.75
-G_M7917_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M7917_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     <unknown method>
@@ -116,9 +114,9 @@ G_M7917_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rcx rbp r8]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M7917_IG13
+       jne      G_M7917_IG13
        jmp      G_M7917_IG19
-                       ;; size=51 bbWeight=0 PerfScore 0.00
+                       ;; size=55 bbWeight=0 PerfScore 0.00
 G_M7917_IG08:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
@@ -142,22 +140,23 @@ G_M7917_IG10:        ; bbWeight=1.53, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
        call     <unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      r14, rax
-       ; gcrRegs +[r14]
+       mov      rbp, rax
+       ; gcrRegs +[rbp]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     <unknown method>
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        mov      edx, eax
-       mov      dword ptr [rsp+0x20], edi
-       mov      rcx, r14
+       movzx    rcx, dil
+       mov      dword ptr [rsp+0x20], ecx
+       mov      rcx, rbp
        ; gcrRegs +[rcx]
        mov      r8, rsi
        ; gcrRegs +[r8]
        xor      r9d, r9d
        call     [<unknown method>]
-       ; gcrRegs -[rcx r8 r14]
+       ; gcrRegs -[rcx rbp r8]
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M7917_IG13
@@ -170,12 +169,13 @@ G_M7917_IG10:        ; bbWeight=1.53, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
        ; gcrRegs +[rbx]
        test     rbx, rbx
        je       SHORT G_M7917_IG15
-                       ;; size=61 bbWeight=1.53 PerfScore 21.06
+                       ;; size=65 bbWeight=1.53 PerfScore 21.44
 G_M7917_IG11:        ; bbWeight=0.77, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       cmp      qword ptr [rbx], rbp
+       mov      rax, 0xD1FFAB1E      ; System.RuntimeType
+       cmp      qword ptr [rbx], rax
        je       SHORT G_M7917_IG10
-                       ;; size=5 bbWeight=0.77 PerfScore 3.06
+                       ;; size=15 bbWeight=0.77 PerfScore 3.25
 G_M7917_IG12:        ; bbWeight=0.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx rsi]
        jmp      SHORT G_M7917_IG15
@@ -223,8 +223,7 @@ G_M7917_IG18:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        jmp      G_M7917_IG07
                        ;; size=20 bbWeight=0 PerfScore 0.00
 G_M7917_IG19:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       movzx    rdi, dil
-       test     edi, edi
+       test     dil, dil
        je       SHORT G_M7917_IG15
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -235,13 +234,13 @@ G_M7917_IG19:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs +[rbx]
        test     rbx, rbx
        je       SHORT G_M7917_IG15
-       mov      rbp, 0xD1FFAB1E      ; System.RuntimeType
-       cmp      qword ptr [rbx], rbp
+       mov      rcx, 0xD1FFAB1E      ; System.RuntimeType
+       cmp      qword ptr [rbx], rcx
        je       G_M7917_IG10
        jmp      SHORT G_M7917_IG15
-                       ;; size=46 bbWeight=0 PerfScore 0.00
+                       ;; size=43 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 411, prolog size 10, PerfScore 53.89, instruction count 115, allocated bytes for code 411 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
+Total bytes of code 426, prolog size 10, PerfScore 54.46, instruction count 116, allocated bytes for code 426 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:

+15 (+3.65%) : 88216.dasm - System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)

@@ -11,23 +11,21 @@
 ;
 ;  V00 arg0         [V00,T00] ( 18, 12.52)     ref  ->  rbx         class-hnd <System.RuntimeType>
 ;  V01 arg1         [V01,T01] (  9,  6.55)     ref  ->  rsi         class-hnd single-def <System.RuntimeType>
-;  V02 arg2         [V02,T05] (  3,  2   )   ubyte  ->  rdi         single-def
+;  V02 arg2         [V02,T05] (  4,  3.55)   ubyte  ->  rdi         single-def
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T11] (  2,  0   )     ref  ->  rbp         class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
-;  V05 tmp2         [V05,T12] (  2,  0   )     ref  ->  rbx         single-def "CASTCLASS eval op1"
+;  V04 tmp1         [V04,T09] (  2,  0   )     ref  ->  rbp         class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
+;  V05 tmp2         [V05,T10] (  2,  0   )     ref  ->  rbx         single-def "CASTCLASS eval op1"
 ;* V06 tmp3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;  V07 tmp4         [V07,T02] (  2,  6.19)     ref  ->  r14         class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
+;  V07 tmp4         [V07,T02] (  2,  6.19)     ref  ->  rbp         class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
 ;  V08 tmp5         [V08,T03] (  2,  6.19)     ref  ->  rbx         "CASTCLASS eval op1"
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;* V10 tmp7         [V10,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V10 tmp7         [V10,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V11 tmp8         [V11,T07] (  3,  2   )     int  ->  rbp        
 ;  V12 tmp9         [V12,T08] (  3,  2   )   ubyte  ->  r14         "Inline stloc first use temp"
 ;  V13 tmp10        [V13,T06] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V15 tmp12        [V15,T14] (  2,  0   )     int  ->  rdx         "argument with side effect"
+;  V15 tmp12        [V15,T12] (  2,  0   )     int  ->  rdx         "argument with side effect"
 ;  V16 tmp13        [V16,T04] (  2,  6.19)     int  ->  rdx         "argument with side effect"
-;  V17 cse0         [V17,T09] (  3,  1.55)     int  ->  rdi         "CSE - moderate"
-;  V18 cse1         [V18,T10] (  3,  0.77)    long  ->  rbp         "CSE - conservative"
 ;
 ; Lcl frame size = 48
 
@@ -91,7 +89,7 @@ G_M7917_IG06:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        test     eax, eax
        jge      SHORT G_M7917_IG08
                        ;; size=26 bbWeight=1 PerfScore 6.75
-G_M7917_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M7917_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     <unknown method>
@@ -116,9 +114,9 @@ G_M7917_IG07:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rcx rbp r8]
        ; gcr arg pop 0
        test     eax, eax
-       jne      SHORT G_M7917_IG13
+       jne      G_M7917_IG13
        jmp      G_M7917_IG19
-                       ;; size=51 bbWeight=0 PerfScore 0.00
+                       ;; size=55 bbWeight=0 PerfScore 0.00
 G_M7917_IG08:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
@@ -142,22 +140,23 @@ G_M7917_IG10:        ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
        call     <unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      r14, rax
-       ; gcrRegs +[r14]
+       mov      rbp, rax
+       ; gcrRegs +[rbp]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     <unknown method>
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        mov      edx, eax
-       mov      dword ptr [rsp+0x20], edi
-       mov      rcx, r14
+       movzx    rcx, dil
+       mov      dword ptr [rsp+0x20], ecx
+       mov      rcx, rbp
        ; gcrRegs +[rcx]
        mov      r8, rsi
        ; gcrRegs +[r8]
        xor      r9d, r9d
        call     [<unknown method>]
-       ; gcrRegs -[rcx r8 r14]
+       ; gcrRegs -[rcx rbp r8]
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M7917_IG13
@@ -170,12 +169,13 @@ G_M7917_IG10:        ; bbWeight=1.55, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {
        ; gcrRegs +[rbx]
        test     rbx, rbx
        je       SHORT G_M7917_IG15
-                       ;; size=61 bbWeight=1.55 PerfScore 21.29
+                       ;; size=65 bbWeight=1.55 PerfScore 21.68
 G_M7917_IG11:        ; bbWeight=0.77, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       cmp      qword ptr [rbx], rbp
+       mov      rax, 0xD1FFAB1E      ; System.RuntimeType
+       cmp      qword ptr [rbx], rax
        je       SHORT G_M7917_IG10
-                       ;; size=5 bbWeight=0.77 PerfScore 3.10
+                       ;; size=15 bbWeight=0.77 PerfScore 3.29
 G_M7917_IG12:        ; bbWeight=0.39, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx rsi]
        jmp      SHORT G_M7917_IG15
@@ -223,8 +223,7 @@ G_M7917_IG18:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        jmp      G_M7917_IG07
                        ;; size=20 bbWeight=0 PerfScore 0.00
 G_M7917_IG19:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       movzx    rdi, dil
-       test     edi, edi
+       test     dil, dil
        je       SHORT G_M7917_IG15
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -235,13 +234,13 @@ G_M7917_IG19:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs +[rbx]
        test     rbx, rbx
        je       SHORT G_M7917_IG15
-       mov      rbp, 0xD1FFAB1E      ; System.RuntimeType
-       cmp      qword ptr [rbx], rbp
+       mov      rcx, 0xD1FFAB1E      ; System.RuntimeType
+       cmp      qword ptr [rbx], rcx
        je       G_M7917_IG10
        jmp      SHORT G_M7917_IG15
-                       ;; size=46 bbWeight=0 PerfScore 0.00
+                       ;; size=43 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 411, prolog size 10, PerfScore 54.17, instruction count 115, allocated bytes for code 411 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
+Total bytes of code 426, prolog size 10, PerfScore 54.75, instruction count 116, allocated bytes for code 426 (MethodHash=5305e112) for method System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:

benchmarks.run_pgo.windows.x64.checked.mch

-15 (-1.06%) : 85532.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.Canon]:TryInsert(BenchmarksGame.ByteString,System.Canon,ubyte):ubyte:this (Tier1)

@@ -14,65 +14,64 @@
 ;  V02 arg2         [V02,T09] (  4,  3   )     ref  ->  rsi         class-hnd single-def <System.__Canon>
 ;  V03 arg3         [V03,T13] (  6,  2   )   ubyte  ->  rdi         single-def
 ;  V04 loc0         [V04,T02] ( 14,  9.11)     ref  ->  r13         class-hnd <<unknown class>>
-;  V05 loc1         [V05,T17] (  5,  2   )     ref  ->  [rsp+0x40]  class-hnd single-def <<unknown class>>
-;  V06 loc2         [V06,T15] (  7,  2.56)     int  ->  [rsp+0xA4]  spill-single-def
-;  V07 loc3         [V07,T12] (  7,  4.67)     int  ->  [rsp+0xA0] 
-;  V08 loc4         [V08,T16] (  5,  2.00)   byref  ->  [rsp+0x38] 
-;  V09 loc5         [V09,T06] ( 11,  5.67)     int  ->  [rsp+0x9C] 
+;  V05 loc1         [V05,T17] (  5,  2   )     ref  ->  [rsp+0x38]  class-hnd single-def <<unknown class>>
+;  V06 loc2         [V06,T15] (  8,  2.56)     int  ->  [rsp+0x94]  spill-single-def
+;  V07 loc3         [V07,T12] (  7,  4.67)     int  ->  [rsp+0x90] 
+;  V08 loc4         [V08,T16] (  5,  2.00)   byref  ->  [rsp+0x30] 
+;  V09 loc5         [V09,T06] ( 11,  5.67)     int  ->  [rsp+0x8C] 
 ;  V10 loc6         [V10,T08] (  6,  5   )     int  ->  rdi        
 ;  V11 loc7         [V11,T04] (  7,  7   )   byref  ->  r13         single-def
 ;  V12 loc8         [V12,T14] (  3,  3   )     int  ->  rdi        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref   
-;  V15 tmp2         [V15,T28] (  3,  0   )     int  ->   r8        
+;  V15 tmp2         [V15,T27] (  3,  0   )     int  ->   r8        
 ;* V16 tmp3         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp4         [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp5         [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp6         [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp7         [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V21 tmp8         [V21,T29] (  3,  0   )     int  ->   r8         "Inline return value spill temp"
+;  V21 tmp8         [V21,T28] (  3,  0   )     int  ->   r8         "Inline return value spill temp"
 ;  V22 tmp9         [V22,T18] (  6,  1   )     int  ->  rax         "Inline stloc first use temp"
-;  V23 tmp10        [V23,T25] (  8,  0   )     int  ->  rdx         "Inline stloc first use temp"
+;  V23 tmp10        [V23,T24] (  8,  0   )     int  ->  rdx         "Inline stloc first use temp"
 ;* V24 tmp11        [V24    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V25 tmp12        [V25,T26] (  4,  0   )     ref  ->  [rsp+0x30]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-;  V26 tmp13        [V26,T30] (  3,  0   )     int  ->  rcx         "Inlining Arg"
-;  V27 tmp14        [V27,T34] (  2,  0   )    long  ->  r11         "Inlining Arg"
-;  V28 tmp15        [V28,T27] (  4,  0   )     int  ->  [rsp+0x98]  spill-single-def "Inline stloc first use temp"
+;  V25 tmp12        [V25,T25] (  4,  0   )     ref  ->  [rsp+0x28]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V26 tmp13        [V26,T29] (  3,  0   )     int  ->  rcx         "Inlining Arg"
+;  V27 tmp14        [V27,T33] (  2,  0   )    long  ->  r11         "Inlining Arg"
+;  V28 tmp15        [V28,T26] (  4,  0   )     int  ->  [rsp+0x88]  spill-single-def "Inline stloc first use temp"
 ;* V29 tmp16        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp17        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp18        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp19        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V33 tmp20        [V33    ] (  2,  2.91)  struct (16) [rsp+0x88]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <BenchmarksGame.ByteString>
+;  V33 tmp20        [V33    ] (  2,  2.91)  struct (16) [rsp+0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <BenchmarksGame.ByteString>
 ;* V34 tmp21        [V34    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <BenchmarksGame.ByteString>
 ;* V35 tmp22        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp23        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;  V37 tmp24        [V37,T22] (  3,  0.01)     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V38 tmp25        [V38,T19] (  3,  0.01)     int  ->  [rsp+0x84]  spill-single-def "Inlining Arg"
-;  V39 tmp26        [V39,T21] (  2,  0.01)    long  ->  [rsp+0x78]  spill-single-def "Inlining Arg"
-;  V40 tmp27        [V40,T20] (  4,  0.01)     int  ->  [rsp+0x74]  spill-single-def "Inline stloc first use temp"
+;  V38 tmp25        [V38,T19] (  3,  0.01)     int  ->  [rsp+0x74]  spill-single-def "Inlining Arg"
+;  V39 tmp26        [V39,T21] (  2,  0.01)    long  ->  [rsp+0x68]  spill-single-def "Inlining Arg"
+;  V40 tmp27        [V40,T20] (  4,  0.01)     int  ->  [rsp+0x64]  spill-single-def "Inline stloc first use temp"
 ;  V41 tmp28        [V41,T10] ( 12,  4.73)     ref  ->  rbp         single-def "field V01.Array (fldOffset=0x0)" P-INDEP
 ;  V42 tmp29        [V42,T11] ( 11,  4.73)     int  ->  r14         "field V01.Start (fldOffset=0x8)" P-INDEP
 ;  V43 tmp30        [V43,T05] ( 12,  5.73)     int  ->  r15         "field V01.Length (fldOffset=0xc)" P-INDEP
-;  V44 tmp31        [V44    ] (  2,  2.91)     ref  ->  [rsp+0x88]  do-not-enreg[X] addr-exposed "field V33.Array (fldOffset=0x0)" P-DEP
-;  V45 tmp32        [V45    ] (  2,  2.91)     int  ->  [rsp+0x90]  do-not-enreg[X] addr-exposed "field V33.Start (fldOffset=0x8)" P-DEP
-;  V46 tmp33        [V46    ] (  2,  2.91)     int  ->  [rsp+0x94]  do-not-enreg[X] addr-exposed "field V33.Length (fldOffset=0xc)" P-DEP
+;  V44 tmp31        [V44    ] (  2,  2.91)     ref  ->  [rsp+0x78]  do-not-enreg[X] addr-exposed "field V33.Array (fldOffset=0x0)" P-DEP
+;  V45 tmp32        [V45    ] (  2,  2.91)     int  ->  [rsp+0x80]  do-not-enreg[X] addr-exposed "field V33.Start (fldOffset=0x8)" P-DEP
+;  V46 tmp33        [V46    ] (  2,  2.91)     int  ->  [rsp+0x84]  do-not-enreg[X] addr-exposed "field V33.Length (fldOffset=0xc)" P-DEP
 ;* V47 tmp34        [V47    ] (  0,  0   )     ref  ->  zero-ref    "field V34.Array (fldOffset=0x0)" P-INDEP
 ;* V48 tmp35        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V34.Start (fldOffset=0x8)" P-INDEP
 ;* V49 tmp36        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V34.Length (fldOffset=0xc)" P-INDEP
 ;* V50 tmp37        [V50    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <BenchmarksGame.ByteString>
-;  V51 tmp38        [V51,T31] (  3,  0   )     int  ->   r8         "index expr"
-;  V52 tmp39        [V52    ] ( 14,  5.83)  struct (16) [rsp+0x60]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <BenchmarksGame.ByteString>
-;* V53 tmp40        [V53,T35] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V54 tmp41        [V54,T32] (  3,  0   )     int  ->  rcx         "index expr"
-;  V55 tmp42        [V55,T33] (  3,  0   )     int  ->  rcx         "index expr"
-;  V56 tmp43        [V56    ] (  4,  0   )  struct (16) [rsp+0x50]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <BenchmarksGame.ByteString>
-;* V57 tmp44        [V57,T36] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V58 cse0         [V58,T07] (  4,  5.39)   byref  ->  [rsp+0x28]  spill-single-def "CSE - aggressive"
+;  V51 tmp38        [V51,T30] (  3,  0   )     int  ->   r8         "index expr"
+;  V52 tmp39        [V52    ] ( 14,  5.83)  struct (16) [rsp+0x50]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <BenchmarksGame.ByteString>
+;* V53 tmp40        [V53,T34] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V54 tmp41        [V54,T31] (  3,  0   )     int  ->  rcx         "index expr"
+;  V55 tmp42        [V55,T32] (  3,  0   )     int  ->  rcx         "index expr"
+;  V56 tmp43        [V56    ] (  4,  0   )  struct (16) [rsp+0x40]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <BenchmarksGame.ByteString>
+;* V57 tmp44        [V57,T35] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V58 cse0         [V58,T07] (  4,  5.39)   byref  ->  [rsp+0x20]  spill-single-def "CSE - aggressive"
 ;  V59 cse1         [V59,T23] (  3,  0.01)     int  ->  r12         "CSE - conservative"
-;  V60 cse2         [V60,T24] (  3,  0.00)    long  ->  [rsp+0x48]  spill-single-def "CSE - conservative"
-;  V61 cse3         [V61,T03] ( 10,  7.67)     int  ->  registers   multi-def "CSE - aggressive"
+;  V60 cse2         [V60,T03] ( 10,  7.67)     int  ->  registers   multi-def "CSE - aggressive"
 ;
-; Lcl frame size = 168
+; Lcl frame size = 152
 
 G_M56080_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -83,13 +82,13 @@ G_M56080_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 168
+       sub      rsp, 152
        vzeroupper 
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x50], ymm4
-       vmovdqu  ymmword ptr [rsp+0x70], ymm4
+       vmovdqu  ymmword ptr [rsp+0x40], ymm4
+       vmovdqu  ymmword ptr [rsp+0x60], ymm4
        xor      eax, eax
-       mov      qword ptr [rsp+0x90], rax
+       mov      qword ptr [rsp+0x80], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, r8
@@ -149,12 +148,12 @@ G_M56080_IG08:        ; bbWeight=1, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=
        je       SHORT G_M56080_IG10
                        ;; size=9 bbWeight=1 PerfScore 3.25
 G_M56080_IG09:        ; bbWeight=0, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefRegs=0000 {}, byref, isz
-       mov      gword ptr [rsp+0x60], rbp
-       mov      dword ptr [rsp+0x68], r14d
-       mov      dword ptr [rsp+0x6C], r15d
+       mov      gword ptr [rsp+0x50], rbp
+       mov      dword ptr [rsp+0x58], r14d
+       mov      dword ptr [rsp+0x5C], r15d
        mov      rcx, r12
        ; gcrRegs +[rcx]
-       lea      rdx, [rsp+0x60]
+       lea      rdx, [rsp+0x50]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
@@ -184,24 +183,23 @@ G_M56080_IG13:        ; bbWeight=0, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefR
        mov      r8d, eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
 G_M56080_IG14:        ; bbWeight=0, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefRegs=0000 {}, byref, isz
-       mov      dword ptr [rsp+0xA4], r8d
+       mov      dword ptr [rsp+0x94], r8d
        xor      r10d, r10d
-       mov      dword ptr [rsp+0xA0], r10d
+       mov      dword ptr [rsp+0x90], r10d
        mov      r9, gword ptr [rbx+0x08]
        ; gcrRegs +[r9]
-       mov      gword ptr [rsp+0x30], r9
+       mov      gword ptr [rsp+0x28], r9
        ; GC ptr vars +{V25}
        mov      ecx, dword ptr [r9+0x08]
        mov      r11, qword ptr [rbx+0x30]
        mov      edx, r8d
-       mov      qword ptr [rsp+0x48], rdx
        imul     r11, rdx
        shr      r11, 32
        inc      r11
-       mov      eax, ecx
-       imul     r11, rax
+       mov      edx, ecx
+       imul     r11, rdx
        shr      r11, 32
-       mov      dword ptr [rsp+0x98], r11d
+       mov      dword ptr [rsp+0x88], r11d
        mov      eax, r8d
        xor      edx, edx
        div      edx:eax, ecx
@@ -214,17 +212,17 @@ G_M56080_IG14:        ; bbWeight=0, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefR
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx r9]
        ; gcr arg pop 0
-                       ;; size=111 bbWeight=0 PerfScore 0.00
+                       ;; size=106 bbWeight=0 PerfScore 0.00
 G_M56080_IG15:        ; bbWeight=0, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefRegs=0000 {}, byref
-       mov      r11d, dword ptr [rsp+0x98]
-       mov      r9, gword ptr [rsp+0x30]
+       mov      r11d, dword ptr [rsp+0x88]
+       mov      r9, gword ptr [rsp+0x28]
        ; gcrRegs +[r9]
        cmp      r11d, dword ptr [r9+0x08]
        jae      G_M56080_IG40
        mov      edx, r11d
        lea      rax, bword ptr [r9+4*rdx+0x10]
        ; byrRegs +[rax]
-       mov      bword ptr [rsp+0x38], rax
+       mov      bword ptr [rsp+0x30], rax
        ; GC ptr vars +{V08}
        mov      r9d, dword ptr [rax]
        ; gcrRegs -[r9]
@@ -241,35 +239,35 @@ G_M56080_IG16:        ; bbWeight=2.56, gcVars=0000000000010000 {V08}, gcrefRegs=
        jbe      G_M56080_IG31
                        ;; size=13 bbWeight=2.56 PerfScore 8.31
 G_M56080_IG17:        ; bbWeight=1.56, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=0000 {}, byref
-       mov      dword ptr [rsp+0x9C], r9d
+       mov      dword ptr [rsp+0x8C], r9d
        mov      edx, r9d
        shl      rdx, 5
        lea      r11, bword ptr [r13+rdx+0x10]
        ; byrRegs +[r11]
-       mov      bword ptr [rsp+0x28], r11
+       mov      bword ptr [rsp+0x20], r11
        ; GC ptr vars +{V58}
-       mov      r8d, dword ptr [rsp+0xA4]
+       mov      r8d, dword ptr [rsp+0x94]
        cmp      dword ptr [r11+0x08], r8d
        jne      G_M56080_IG30
                        ;; size=43 bbWeight=1.56 PerfScore 15.17
 G_M56080_IG18:        ; bbWeight=0.73, gcVars=0000000000010080 {V08 V58}, gcrefRegs=2068 {rbx rbp rsi r13}, byrefRegs=0800 {r11}, gcvars, byref, nogc
        vmovdqu  xmm0, xmmword ptr [r11+0x10]
-       vmovdqu  xmmword ptr [rsp+0x88], xmm0
-                       ;; size=15 bbWeight=0.73 PerfScore 3.64
+       vmovdqu  xmmword ptr [rsp+0x78], xmm0
+                       ;; size=12 bbWeight=0.73 PerfScore 3.64
 G_M56080_IG19:        ; bbWeight=0.73, extend
-       mov      gword ptr [rsp+0x60], rbp
-       mov      dword ptr [rsp+0x68], r14d
-       mov      dword ptr [rsp+0x6C], r15d
-       lea      rdx, [rsp+0x60]
-       lea      rcx, [rsp+0x88]
+       mov      gword ptr [rsp+0x50], rbp
+       mov      dword ptr [rsp+0x58], r14d
+       mov      dword ptr [rsp+0x5C], r15d
+       lea      rdx, [rsp+0x50]
+       lea      rcx, [rsp+0x78]
        call     [<unknown method>]
        ; byrRegs -[r11]
        ; gcr arg pop 0
        test     eax, eax
-       mov      r11, bword ptr [rsp+0x28]
+       mov      r11, bword ptr [rsp+0x20]
        ; byrRegs +[r11]
        je       G_M56080_IG30
-                       ;; size=47 bbWeight=0.73 PerfScore 6.74
+                       ;; size=44 bbWeight=0.73 PerfScore 6.74
 G_M56080_IG20:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2060 {rbp rsi r13}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rbx]
        ; byrRegs -[r11]
@@ -279,7 +277,7 @@ G_M56080_IG20:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=2060 {
                        ;; size=6 bbWeight=0 PerfScore 0.00
 G_M56080_IG21:        ; bbWeight=0, gcrefRegs=2040 {rsi r13}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbp]
-       mov      r9d, dword ptr [rsp+0x9C]
+       mov      r9d, dword ptr [rsp+0x8C]
        cmp      r9d, r12d
        jae      G_M56080_IG40
        mov      ecx, r9d
@@ -302,7 +300,7 @@ G_M56080_IG22:        ; bbWeight=0, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byr
 G_M56080_IG23:        ; bbWeight=0, gcVars=0000000000010000 {V08}, gcrefRegs=3068 {rbx rbp rsi r12 r13}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rbx rsi r12-r13]
        ; GC ptr vars +{V08}
-       mov      dword ptr [rsp+0x9C], r9d
+       mov      dword ptr [rsp+0x8C], r9d
        mov      ecx, 1
        call     [System.Diagnostics.Debug:Assert(ubyte)]
        ; gcr arg pop 0
@@ -310,7 +308,7 @@ G_M56080_IG23:        ; bbWeight=0, gcVars=0000000000010000 {V08}, gcrefRegs=306
...

+7 (+0.25%) : 98182.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+d24[System.Canon]:MoveNext():this (Tier1-OSR)

@@ -30,12 +30,12 @@
 ;* V17 tmp6         [V17    ] (  0,        0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V18 tmp7         [V18    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[System.__Canon]>
 ;* V19 tmp8         [V19    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-;  V20 tmp9         [V20,T92] (  2,        0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V20 tmp9         [V20,T91] (  2,        0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;  V21 tmp10        [V21,T51] (  3,      599.94)     ref  ->  rcx         class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
-;  V22 tmp11        [V22,T87] (  3,        0   )    long  ->  rdx         "spilling helperCall"
+;  V22 tmp11        [V22,T86] (  3,        0   )    long  ->  rdx         "spilling helperCall"
 ;* V23 tmp12        [V23    ] (  0,        0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V24 tmp13        [V24    ] (  0,        0   )     int  ->  zero-ref    "dup spill"
-;  V25 tmp14        [V25,T88] (  3,        0   )    long  ->  rdx         "spilling helperCall"
+;  V25 tmp14        [V25,T87] (  3,        0   )    long  ->  rdx         "spilling helperCall"
 ;  V26 tmp15        [V26,T59] (  3,      199.98)     ref  ->   r8         "guarded devirt return temp"
 ;  V27 tmp16        [V27,T50] (  5,      599.94)     ref  ->  rcx         "guarded devirt arg temp"
 ;  V28 tmp17        [V28,T53] (  3,      399.96)     int  ->  rdx         "guarded devirt arg temp"
@@ -47,7 +47,7 @@
 ;* V34 tmp23        [V34    ] (  0,        0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;* V35 tmp24        [V35    ] (  0,        0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V36 tmp25        [V36    ] (  0,        0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Threading.CancellationToken>
-;* V37 tmp26        [V37,T93] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;* V37 tmp26        [V37,T92] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;* V38 tmp27        [V38    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V39 tmp28        [V39    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Threading.Tasks.UnwrapPromise`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V40 tmp29        [V40    ] (  0,        0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
@@ -109,7 +109,7 @@
 ;* V96 tmp85        [V96    ] (  0,        0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V97 tmp86        [V97    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp87        [V98    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V99 tmp88        [V99,T94] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V99 tmp88        [V99,T93] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
 ;* V100 tmp89       [V100    ] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Exception>
 ;* V101 tmp90       [V101    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.Exception[]>
 ;* V102 tmp91       [V102,T65] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -150,7 +150,7 @@
 ;* V137 tmp126      [V137    ] (  0,        0   )     ref  ->  zero-ref    single-def
 ;* V138 tmp127      [V138    ] (  0,        0   )     ref  ->  zero-ref    single-def
 ;* V139 tmp128      [V139,T63] (  0,        0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V140 tmp129      [V140,T82] (  0,        0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V140 tmp129      [V140,T81] (  0,        0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V141 tmp130      [V141    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V142 tmp131      [V142    ] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V143 tmp132      [V143    ] (  0,        0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -248,7 +248,7 @@
 ;* V235 tmp224      [V235    ] (  0,        0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V236 tmp225      [V236    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V237 tmp226      [V237    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V238 tmp227      [V238,T95] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
+;* V238 tmp227      [V238,T94] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.AggregateException>
 ;* V239 tmp228      [V239    ] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Exception>
 ;* V240 tmp229      [V240    ] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.Exception[]>
 ;* V241 tmp230      [V241,T66] (  0,        0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
@@ -289,7 +289,7 @@
 ;* V276 tmp265      [V276    ] (  0,        0   )     ref  ->  zero-ref    single-def
 ;* V277 tmp266      [V277    ] (  0,        0   )     ref  ->  zero-ref    single-def
 ;* V278 tmp267      [V278,T64] (  0,        0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V279 tmp268      [V279,T83] (  0,        0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V279 tmp268      [V279,T82] (  0,        0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V280 tmp269      [V280    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V281 tmp270      [V281    ] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V282 tmp271      [V282    ] (  0,        0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -432,7 +432,7 @@
 ;* V419 tmp408      [V419    ] (  0,        0   )     ref  ->  zero-ref   
 ;  V420 tmp409      [V420,T45] (  2,      799.13)     ref  ->  rax        
 ;  V421 tmp410      [V421,T03] (  9,    25971.57)     int  ->  [rbp-0x48]  "Inline stloc first use temp"
-;  V422 tmp411      [V422,T84] (  3,        0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V422 tmp411      [V422,T83] (  3,        0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V423 tmp412      [V423    ] (  0,        0   )     ref  ->  zero-ref   
 ;  V424 tmp413      [V424,T46] (  2,      799.13)     ref  ->  rdx        
 ;* V425 tmp414      [V425    ] (  0,        0   )     ref  ->  zero-ref   
@@ -452,11 +452,11 @@
 ;* V439 tmp428      [V439    ] (  0,        0   )     ref  ->  zero-ref   
 ;  V440 tmp429      [V440,T48] (  2,      799.13)     ref  ->  rax        
 ;  V441 tmp430      [V441,T04] (  9,    25971.57)     int  ->  r13         "Inline stloc first use temp"
-;  V442 tmp431      [V442,T85] (  3,        0   )     ref  ->  r15         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V442 tmp431      [V442,T84] (  3,        0   )     ref  ->  r15         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V443 tmp432      [V443    ] (  0,        0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V444 tmp433      [V444    ] (  0,        0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V445 tmp434      [V445    ] (  0,        0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V446 tmp435      [V446,T86] (  3,        0   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V446 tmp435      [V446,T85] (  3,        0   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V447 tmp436      [V447    ] (  0,        0   )     ref  ->  zero-ref    single-def "field V32._source (fldOffset=0x0)" P-INDEP
 ;* V448 tmp437      [V448    ] (  0,        0   )     ref  ->  zero-ref    single-def "field V34._source (fldOffset=0x0)" P-INDEP
 ;* V449 tmp438      [V449    ] (  0,        0   )     ref  ->  zero-ref    single-def "field V36._source (fldOffset=0x0)" P-INDEP
@@ -501,7 +501,7 @@
 ;* V488 tmp477      [V488    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V489 tmp478      [V489    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V490 tmp479      [V490,T67] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
-;* V491 tmp480      [V491,T96] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
+;* V491 tmp480      [V491,T95] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V492 tmp481      [V492    ] (  0,        0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V493 tmp482      [V493    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V494 tmp483      [V494    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
@@ -509,16 +509,16 @@
 ;* V496 tmp485      [V496    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V497 tmp486      [V497    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V498 tmp487      [V498,T68] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
-;* V499 tmp488      [V499,T97] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
+;* V499 tmp488      [V499,T96] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V500 tmp489      [V500    ] (  0,        0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V501 tmp490      [V501    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V502 tmp491      [V502,T09] (  2,    12786.00)     ref  ->  rcx         "argument with side effect"
-;  V503 tmp492      [V503,T98] (  2,        0   )     ref  ->  rdx         "argument with side effect"
+;  V503 tmp492      [V503,T97] (  2,        0   )     ref  ->  rdx         "argument with side effect"
 ;* V504 tmp493      [V504    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V505 tmp494      [V505    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V506 tmp495      [V506,T05] (  3,    19179.01)     ref  ->  rcx         "arr expr"
 ;  V507 tmp496      [V507,T10] (  2,    12786.00)     ref  ->  rcx         "argument with side effect"
-;  V508 tmp497      [V508,T99] (  2,        0   )     ref  ->  rdx         "argument with side effect"
+;  V508 tmp497      [V508,T98] (  2,        0   )     ref  ->  rdx         "argument with side effect"
 ;* V509 tmp498      [V509    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V510 tmp499      [V510    ] (  0,        0   )     ref  ->  zero-ref    "argument with side effect"
 ;  V511 tmp500      [V511,T34] (  2,     1598.25)     ref  ->  rdx         "argument with side effect"
@@ -528,10 +528,9 @@
 ;  V515 cse2        [V515,T39] (  3,     1198.69)     ref  ->  rcx         "CSE - conservative"
 ;  V516 cse3        [V516,T01] (  3,917768750.15)     int  ->  rcx         "CSE - aggressive"
 ;  V517 cse4        [V517,T11] (  9,    11986.88)     int  ->  [rbp-0x50]  spill-single-def "CSE - moderate"
-;  V518 cse5        [V518,T81] ( 15,        0   )     ref  ->  rdx         multi-def "CSE - conservative"
-;  V519 rat0        [V519,T89] (  3,        0   )    long  ->  rdx         "fgMakeTemp is creating a new local variable"
-;  V520 rat1        [V520,T90] (  3,        0   )    long  ->  rcx         "spilling expr"
-;  V521 rat2        [V521,T91] (  3,        0   )    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V518 rat0        [V518,T88] (  3,        0   )    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V519 rat1        [V519,T89] (  3,        0   )    long  ->  rcx         "spilling expr"
+;  V520 rat2        [V520,T90] (  3,        0   )    long  ->  rdx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 104
 
@@ -1477,15 +1476,15 @@ G_M48189_IG67:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
                        ;; size=11 bbWeight=0 PerfScore 0.00
 G_M48189_IG68:        ; bbWeight=0, gcrefRegs=A000 {r13 r15}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs +[r13 r15]
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        jmp      G_M48189_IG27
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+                       ;; size=31 bbWeight=0 PerfScore 0.00
 G_M48189_IG69:        ; bbWeight=0, gcrefRegs=8040 {rsi r15}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[r13] +[rsi]
        mov      rcx, 0xD1FFAB1E
@@ -1699,7 +1698,7 @@ G_M48189_IG88:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 2778, prolog size 94, PerfScore 1376941859.12, instruction count 611, allocated bytes for code 2778 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
+Total bytes of code 2785, prolog size 94, PerfScore 1376941859.12, instruction count 611, allocated bytes for code 2785 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:

+11 (+0.36%) : 100328.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan1[System.String],ubyte):System.Buffers.SearchValues1System.String

@@ -11,12 +11,12 @@
 ;
 ;  V00 arg0         [V00,T07] (  3,  6   )   byref  ->  rcx         ld-addr-op single-def
 ;  V01 arg1         [V01,T18] (  3,  3   )   ubyte  ->  rdx         ld-addr-op single-def
-;  V02 loc0         [V02,T82] (  8,  0   )     ref  ->  r14         class-hnd exact single-def <System.Collections.Generic.HashSet`1[System.String]>
+;  V02 loc0         [V02,T81] (  8,  0   )     ref  ->  r14         class-hnd exact single-def <System.Collections.Generic.HashSet`1[System.String]>
 ;  V03 loc1         [V03    ] ( 11,  0   )  struct (16) [rsp+0x240]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Span`1[System.String]>
-;  V04 loc2         [V04,T95] (  4,  0   )     int  ->  registers   ptr
+;  V04 loc2         [V04,T94] (  4,  0   )     int  ->  registers   ptr
 ;  V05 loc3         [V05    ] (  4,  0   )     ref  ->  [rsp+0x238]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <System.Collections.Generic.HashSet`1[System.String]>
 ;  V06 loc4         [V06    ] (  3,  0   )  struct (160) [rsp+0xD0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op unsafe-buffer <System.Buffers.AhoCorasickBuilder>
-;  V07 loc5         [V07,T109] (  2,  0   )     ref  ->  rbx         class-hnd single-def <System.Buffers.SearchValues`1[System.String]>
+;  V07 loc5         [V07,T108] (  2,  0   )     ref  ->  rbx         class-hnd single-def <System.Buffers.SearchValues`1[System.String]>
 ;  V08 loc6         [V08,T33] (  6,  3   )     ref  ->  rdi         class-hnd single-def <System.String>
 ;  V09 loc7         [V09    ] (  3,  3   )     ref  ->  [rsp+0x230]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd ptr <System.String>
 ;  V10 loc8         [V10    ] (  5,  4   )   ubyte  ->  [rsp+0x22C]  do-not-enreg[X] addr-exposed ld-addr-op
@@ -24,43 +24,43 @@
 ;  V12 loc10        [V12    ] (  2,  1   )   ubyte  ->  [rsp+0x224]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V13 loc11        [V13,T29] (  4,  3.83)     int  ->  rsi         ld-addr-op
 ;* V14 loc12        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[System.String]>
-;  V15 loc13        [V15,T83] (  6,  0   )     int  ->  rbp        
-;  V16 loc14        [V16,T98] (  3,  0   )     ref  ->  rdx         class-hnd <System.String>
+;  V15 loc13        [V15,T82] (  6,  0   )     int  ->  rbp        
+;  V16 loc14        [V16,T97] (  3,  0   )     ref  ->  rdx         class-hnd <System.String>
 ;  V17 loc15        [V17    ] (  3,  0   )  struct (24) [rsp+0x208]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.HashSet`1+Enumerator[System.String]>
-;  V18 loc16        [V18,T110] (  2,  0   )     ref  ->  [rsp+0x170]  class-hnd exact spill-single-def ptr <System.String>
+;  V18 loc16        [V18,T109] (  2,  0   )     ref  ->  [rsp+0x170]  class-hnd exact spill-single-def ptr <System.String>
 ;  V19 tmp0         [V19,T72] (  1,  1   )     int  ->  [rsp+0x204]  do-not-enreg[V] "GSCookie dummy"
 ;  V20 OutArgs      [V20    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V21 tmp2         [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp3         [V22    ] (  0,  0   )     int  ->  zero-ref    ptr
-;  V23 tmp4         [V23,T111] (  2,  0   )     ref  ->  rbp        
-;  V24 tmp5         [V24,T99] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
-;  V25 tmp6         [V25,T96] (  4,  0   )     int  ->  rsi         "impSpillLclRefs"
+;  V23 tmp4         [V23,T110] (  2,  0   )     ref  ->  rbp        
+;  V24 tmp5         [V24,T98] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+;  V25 tmp6         [V25,T95] (  4,  0   )     int  ->  rsi         "impSpillLclRefs"
 ;* V26 tmp7         [V26    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V27 tmp8         [V27,T112] (  2,  0   )     ref  ->   r8         class-hnd single-def "dup spill" <<unknown class>>
+;  V27 tmp8         [V27,T111] (  2,  0   )     ref  ->   r8         class-hnd single-def "dup spill" <<unknown class>>
 ;* V28 tmp9         [V28    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[System.String]>
 ;* V29 tmp10        [V29    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[System.String]>
-;  V30 tmp11        [V30,T88] (  4,  0   )     ref  ->   r8        
+;  V30 tmp11        [V30,T87] (  4,  0   )     ref  ->   r8        
 ;  V31 tmp12        [V31    ] (  2,  0   )  struct (160) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op unsafe-buffer "NewObj constructor temp" <System.Buffers.AhoCorasickBuilder>
 ;  V32 tmp13        [V32    ] (  2,  0   )  struct (16) [rsp+0x1F0]  do-not-enreg[HS] must-init hidden-struct-arg ptr "spilled call-like call argument" <System.ReadOnlySpan`1[System.String]>
 ;  V33 tmp14        [V33    ] (  2,  0   )  struct (16) [rsp+0x1E0]  do-not-enreg[HS] must-init hidden-struct-arg ptr "spilled call-like call argument" <System.ReadOnlySpan`1[System.String]>
-;  V34 tmp15        [V34,T89] (  4,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V35 tmp16        [V35,T90] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+;  V34 tmp15        [V34,T88] (  4,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V35 tmp16        [V35,T89] (  4,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
 ;* V36 tmp17        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.String]>
 ;* V37 tmp18        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V38 tmp19        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.String>
 ;* V39 tmp20        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V40 tmp21        [V40,T22] (  5,  4   )     ref  ->  rsi         class-hnd "Inlining Arg" <System.String>
 ;* V41 tmp22        [V41    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V42 tmp23        [V42,T85] (  5,  0   )     ref  ->  rsi         class-hnd exact single-def "Inline stloc first use temp" <System.String>
+;  V42 tmp23        [V42,T84] (  5,  0   )     ref  ->  rsi         class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V43 tmp24        [V43    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V44 tmp25        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V45 tmp26        [V45    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V46 tmp27        [V46    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V47 tmp28        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp29        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V49 tmp30        [V49,T134] (  2,  0   )     int  ->  r12         "Inlining Arg"
-;  V50 tmp31        [V50,T113] (  2,  0   )   byref  ->  r13         single-def "Inlining Arg"
-;  V51 tmp32        [V51,T114] (  2,  0   )     ref  ->   r8         class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle]>
+;  V49 tmp30        [V49,T133] (  2,  0   )     int  ->  r12         "Inlining Arg"
+;  V50 tmp31        [V50,T112] (  2,  0   )   byref  ->  r13         single-def "Inlining Arg"
+;  V51 tmp32        [V51,T113] (  2,  0   )     ref  ->   r8         class-hnd exact single-def "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Ssse3AndWasmHandleZeroInNeedle]>
 ;* V52 tmp33        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V53 tmp34        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V54 tmp35        [V54    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -68,10 +68,10 @@
 ;* V56 tmp37        [V56    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp38        [V57    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V58 tmp39        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V59 tmp40        [V59,T135] (  2,  0   )     int  ->  r14         "Inlining Arg"
-;  V60 tmp41        [V60,T115] (  2,  0   )   byref  ->  r15         single-def "Inlining Arg"
-;  V61 tmp42        [V61,T136] (  2,  0   )     int  ->  rdi         "Inlining Arg"
-;  V62 tmp43        [V62,T116] (  2,  0   )   byref  ->  rbp         single-def "Inlining Arg"
+;  V59 tmp40        [V59,T134] (  2,  0   )     int  ->  r14         "Inlining Arg"
+;  V60 tmp41        [V60,T114] (  2,  0   )   byref  ->  r15         single-def "Inlining Arg"
+;  V61 tmp42        [V61,T135] (  2,  0   )     int  ->  rdi         "Inlining Arg"
+;  V62 tmp43        [V62,T115] (  2,  0   )   byref  ->  rbp         single-def "Inlining Arg"
 ;* V63 tmp44        [V63    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[System.String]>
 ;* V64 tmp45        [V64    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.String]>
 ;  V65 tmp46        [V65,T17] (  5,  5   )     int  ->  r14         "Inline stloc first use temp"
@@ -88,8 +88,8 @@
 ;  V76 tmp57        [V76,T55] (  2,  2   )   byref  ->  r10         single-def
 ;  V77 tmp58        [V77,T51] (  3,  2   )     int  ->  r11        
 ;* V78 tmp59        [V78    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.String]>
-;  V79 tmp60        [V79,T86] (  5,  0   )     int  ->  rsi         "Inline stloc first use temp"
-;  V80 tmp61        [V80,T91] (  4,  0   )     ref  ->  rcx         class-hnd "Inline stloc first use temp" <System.String>
+;  V79 tmp60        [V79,T85] (  5,  0   )     int  ->  rsi         "Inline stloc first use temp"
+;  V80 tmp61        [V80,T90] (  4,  0   )     ref  ->  rcx         class-hnd "Inline stloc first use temp" <System.String>
 ;* V81 tmp62        [V81    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp63        [V82    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V83 tmp64        [V83    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
@@ -119,9 +119,9 @@
 ;* V107 tmp88       [V107    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V108 tmp89       [V108    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V109 tmp90       [V109    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V110 tmp91       [V110,T137] (  2,  0   )     int  ->  r14         "Inlining Arg"
-;  V111 tmp92       [V111,T117] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
-;  V112 tmp93       [V112,T118] (  2,  0   )     ref  ->   r8         class-hnd exact "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
+;  V110 tmp91       [V110,T136] (  2,  0   )     int  ->  r14         "Inlining Arg"
+;  V111 tmp92       [V111,T116] (  2,  0   )   byref  ->  rdi         "Inlining Arg"
+;  V112 tmp93       [V112,T117] (  2,  0   )     ref  ->   r8         class-hnd exact "Inlining Arg" <System.Buffers.AsciiCharSearchValues`1[System.Buffers.IndexOfAnyAsciiSearcher+Default]>
 ;* V113 tmp94       [V113    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V114 tmp95       [V114    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V115 tmp96       [V115    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -132,12 +132,12 @@
 ;  V120 tmp101      [V120,T04] ( 18, 11.80)     ref  ->  rbp         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V121 tmp102      [V121,T48] (  3,  0   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Collections.Generic.HashSet`1[System.String]>
 ;  V122 tmp103      [V122,T21] (  6,  4.00)   ubyte  ->  rbx         "Inlining Arg"
-;  V123 tmp104      [V123,T92] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-;  V124 tmp105      [V124,T93] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+;  V123 tmp104      [V123,T91] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+;  V124 tmp105      [V124,T92] (  4,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
 ;* V125 tmp106      [V125    ] (  0,  0   )     int  ->  zero-ref   
 ;* V126 tmp107      [V126    ] (  0,  0   )     int  ->  zero-ref   
-;  V127 tmp108      [V127,T119] (  2,  0   )     ref  ->  rsi        
-;  V128 tmp109      [V128,T94] (  4,  0   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+;  V127 tmp108      [V127,T118] (  2,  0   )     ref  ->  rsi        
+;  V128 tmp109      [V128,T93] (  4,  0   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
 ;  V129 tmp110      [V129,T38] (  3,  2.96)     int  ->  rcx         "Inline stloc first use temp"
 ;  V130 tmp111      [V130,T39] (  4,  2.84)   ubyte  ->   r9         "Inlining Arg"
 ;  V131 tmp112      [V131,T40] (  4,  2.84)   ubyte  ->  rdx         "Inlining Arg"
@@ -145,9 +145,9 @@
 ;* V133 tmp114      [V133    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def ptr "Inline stloc first use temp" <System.Buffers.SearchValues`1[System.String]>
 ;  V134 tmp115      [V134,T62] (  6,  1.16)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V135 tmp116      [V135    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V136 tmp117      [V136,T100] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V137 tmp118      [V137,T101] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V138 tmp119      [V138,T102] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V136 tmp117      [V136,T99] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V137 tmp118      [V137,T100] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V138 tmp119      [V138,T101] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V139 tmp120      [V139,T05] ( 10, 11.62)     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V140 tmp121      [V140    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V141 tmp122      [V141,T10] ( 16,  6.49)     int  ->  registers   ld-addr-op ptr "Inline ldloca(s) first use temp"
@@ -202,9 +202,9 @@
 ;* V190 tmp171      [V190    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V191 tmp172      [V191    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V192 tmp173      [V192    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V193 tmp174      [V193,T97] (  4,  0   )     int  ->  rsi         "Inlining Arg"
-;  V194 tmp175      [V194,T103] (  3,  0   )   byref  ->  rdi         single-def "Inlining Arg"
-;  V195 tmp176      [V195,T138] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V193 tmp174      [V193,T96] (  4,  0   )     int  ->  rsi         "Inlining Arg"
+;  V194 tmp175      [V194,T102] (  3,  0   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V195 tmp176      [V195,T137] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
 ;  V196 tmp177      [V196    ] (  2,  0   )  ushort  ->  [rsp+0x1DC]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V197 tmp178      [V197    ] (  2,  0   )  ushort  ->  [rsp+0x1D8]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V198 tmp179      [V198    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -228,10 +228,10 @@
 ;* V216 tmp197      [V216    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V217 tmp198      [V217    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V218 tmp199      [V218    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "Inlining Arg"
-;  V219 tmp200      [V219,T84] (  6,  0   )  ushort  ->  r14         "Inlining Arg"
-;  V220 tmp201      [V220,T87] (  5,  0   )  ushort  ->  r15         "Inlining Arg"
+;  V219 tmp200      [V219,T83] (  6,  0   )  ushort  ->  r14         "Inlining Arg"
+;  V220 tmp201      [V220,T86] (  5,  0   )  ushort  ->  r15         "Inlining Arg"
 ;* V221 tmp202      [V221    ] (  0,  0   )     int  ->  zero-ref    ptr "Inlining Arg"
-;  V222 tmp203      [V222,T106] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V222 tmp203      [V222,T105] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
 ;* V223 tmp204      [V223    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V224 tmp205      [V224    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V225 tmp206      [V225    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "Inline stloc first use temp"
@@ -260,44 +260,44 @@
 ;* V248 tmp229      [V248    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V249 tmp230      [V249    ] (  1,  0   )     int  ->  [rsp+0x1D0]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V250 tmp231      [V250    ] (  1,  0   )     int  ->  [rsp+0x1C8]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;  V251 tmp232      [V251,T104] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V251 tmp232      [V251,T103] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V252 tmp233      [V252    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[System.String]>
 ;  V253 tmp234      [V253    ] (  7,  0   )   byref  ->  [rsp+0x240]  do-not-enreg[X] addr-exposed ptr "field V03._reference (fldOffset=0x0)" P-DEP
 ;  V254 tmp235      [V254    ] (  8,  0   )     int  ->  [rsp+0x248]  do-not-enreg[X] addr-exposed ptr "field V03._length (fldOffset=0x8)" P-DEP
-;  V255 tmp236      [V255,T120] (  2,  0   )   byref  ->  rsi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V256 tmp237      [V256,T107] (  3,  0   )     int  ->  rdi         "field V14._length (fldOffset=0x8)" P-INDEP
+;  V255 tmp236      [V255,T119] (  2,  0   )   byref  ->  rsi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V256 tmp237      [V256,T106] (  3,  0   )     int  ->  rdi         "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V257 tmp238      [V257    ] (  2,  0   )     ref  ->  [rsp+0x208]  do-not-enreg[X] addr-exposed "field V17._hashSet (fldOffset=0x0)" P-DEP
 ;  V258 tmp239      [V258    ] (  3,  0   )     ref  ->  [rsp+0x210]  do-not-enreg[X] addr-exposed ptr "field V17._current (fldOffset=0x8)" P-DEP
 ;  V259 tmp240      [V259    ] (  2,  0   )     int  ->  [rsp+0x218]  do-not-enreg[X] addr-exposed "field V17._version (fldOffset=0x10)" P-DEP
 ;  V260 tmp241      [V260    ] (  2,  0   )     int  ->  [rsp+0x21C]  do-not-enreg[X] addr-exposed "field V17._index (fldOffset=0x14)" P-DEP
-;  V261 tmp242      [V261,T121] (  2,  0   )   byref  ->  rsi         single-def "field V28._reference (fldOffset=0x0)" P-INDEP
-;  V262 tmp243      [V262,T139] (  2,  0   )     int  ->  rdi         "field V28._length (fldOffset=0x8)" P-INDEP
+;  V261 tmp242      [V261,T120] (  2,  0   )   byref  ->  rsi         single-def "field V28._reference (fldOffset=0x0)" P-INDEP
+;  V262 tmp243      [V262,T138] (  2,  0   )     int  ->  rdi         "field V28._length (fldOffset=0x8)" P-INDEP
 ;* V263 tmp244      [V263    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V29._reference (fldOffset=0x0)" P-INDEP
 ;* V264 tmp245      [V264    ] (  0,  0   )     int  ->  zero-ref    ptr "field V29._length (fldOffset=0x8)" P-INDEP
-;  V265 tmp246      [V265,T122] (  2,  0   )   byref  ->  [rsp+0x1F0]  do-not-enreg[H] hidden-struct-arg "field V32._reference (fldOffset=0x0)" P-DEP
-;  V266 tmp247      [V266,T140] (  2,  0   )     int  ->  [rsp+0x1F8]  do-not-enreg[H] hidden-struct-arg "field V32._length (fldOffset=0x8)" P-DEP
-;  V267 tmp248      [V267,T123] (  2,  0   )   byref  ->  [rsp+0x1E0]  do-not-enreg[H] hidden-struct-arg "field V33._reference (fldOffset=0x0)" P-DEP
-;  V268 tmp249      [V268,T141] (  2,  0   )     int  ->  [rsp+0x1E8]  do-not-enreg[H] hidden-struct-arg "field V33._length (fldOffset=0x8)" P-DEP
+;  V265 tmp246      [V265,T121] (  2,  0   )   byref  ->  [rsp+0x1F0]  do-not-enreg[H] hidden-struct-arg "field V32._reference (fldOffset=0x0)" P-DEP
+;  V266 tmp247      [V266,T139] (  2,  0   )     int  ->  [rsp+0x1F8]  do-not-enreg[H] hidden-struct-arg "field V32._length (fldOffset=0x8)" P-DEP
+;  V267 tmp248      [V267,T122] (  2,  0   )   byref  ->  [rsp+0x1E0]  do-not-enreg[H] hidden-struct-arg "field V33._reference (fldOffset=0x0)" P-DEP
+;  V268 tmp249      [V268,T140] (  2,  0   )     int  ->  [rsp+0x1E8]  do-not-enreg[H] hidden-struct-arg "field V33._length (fldOffset=0x8)" P-DEP
 ;  V269 tmp250      [V269,T56] (  2,  2   )   byref  ->  rbp         single-def "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V270 tmp251      [V270,T73] (  0,  0   )     int  ->  zero-ref    ptr "field V36._length (fldOffset=0x8)" P-INDEP
 ;* V271 tmp252      [V271    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V272 tmp253      [V272    ] (  0,  0   )     int  ->  zero-ref    ptr "field V41._length (fldOffset=0x8)" P-INDEP
-;  V273 tmp254      [V273,T124] (  2,  0   )   byref  ->  r15         "field V43._reference (fldOffset=0x0)" P-INDEP
-;  V274 tmp255      [V274,T142] (  2,  0   )     int  ->  r14         "field V43._length (fldOffset=0x8)" P-INDEP
-;  V275 tmp256      [V275,T125] (  2,  0   )   byref  ->  rbp         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-;  V276 tmp257      [V276,T143] (  2,  0   )     int  ->  rdi         "field V44._length (fldOffset=0x8)" P-INDEP
-;  V277 tmp258      [V277,T126] (  2,  0   )   byref  ->  rcx         "field V46._reference (fldOffset=0x0)" P-INDEP
-;  V278 tmp259      [V278,T144] (  2,  0   )     int  ->  rdx         "field V46._length (fldOffset=0x8)" P-INDEP
-;  V279 tmp260      [V279,T127] (  2,  0   )   byref  ->  rcx         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
-;  V280 tmp261      [V280,T145] (  2,  0   )     int  ->  rdx         "field V47._length (fldOffset=0x8)" P-INDEP
+;  V273 tmp254      [V273,T123] (  2,  0   )   byref  ->  r15         "field V43._reference (fldOffset=0x0)" P-INDEP
+;  V274 tmp255      [V274,T141] (  2,  0   )     int  ->  r14         "field V43._length (fldOffset=0x8)" P-INDEP
+;  V275 tmp256      [V275,T124] (  2,  0   )   byref  ->  rbp         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;  V276 tmp257      [V276,T142] (  2,  0   )     int  ->  rdi         "field V44._length (fldOffset=0x8)" P-INDEP
+;  V277 tmp258      [V277,T125] (  2,  0   )   byref  ->  rcx         "field V46._reference (fldOffset=0x0)" P-INDEP
+;  V278 tmp259      [V278,T143] (  2,  0   )     int  ->  rdx         "field V46._length (fldOffset=0x8)" P-INDEP
+;  V279 tmp260      [V279,T126] (  2,  0   )   byref  ->  rcx         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+;  V280 tmp261      [V280,T144] (  2,  0   )     int  ->  rdx         "field V47._length (fldOffset=0x8)" P-INDEP
 ;* V281 tmp262      [V281    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V48._reference (fldOffset=0x0)" P-INDEP
 ;* V282 tmp263      [V282    ] (  0,  0   )     int  ->  zero-ref    "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V283 tmp264      [V283    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V52._reference (fldOffset=0x0)" P-INDEP
 ;* V284 tmp265      [V284    ] (  0,  0   )     int  ->  zero-ref    ptr "field V52._length (fldOffset=0x8)" P-INDEP
 ;* V285 tmp266      [V285    ] (  0,  0   )   byref  ->  zero-ref    single-def ptr "field V53._reference (fldOffset=0x0)" P-INDEP
 ;* V286 tmp267      [V286    ] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
-;  V287 tmp268      [V287,T128] (  2,  0   )   byref  ->  r15         single-def "field V57._reference (fldOffset=0x0)" P-INDEP
-;  V288 tmp269      [V288,T146] (  2,  0   )     int  ->  r14         "field V57._length (fldOffset=0x8)" P-INDEP
+;  V287 tmp268      [V287,T127] (  2,  0   )   byref  ->  r15         single-def "field V57._reference (fldOffset=0x0)" P-INDEP
+;  V288 tmp269      [V288,T145] (  2,  0   )     int  ->  r14         "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V289 tmp270      [V289    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V290 tmp271      [V290    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;  V291 tmp272      [V291,T36] (  3,  2   )   byref  ->  rbp         single-def "field V63._reference (fldOffset=0x0)" P-INDEP
@@ -308,10 +308,10 @@
 ;* V296 tmp277      [V296    ] (  0,  0   )     int  ->  zero-ref    ptr "field V73._length (fldOffset=0x8)" P-INDEP
 ;* V297 tmp278      [V297    ] (  0,  0   )   byref  ->  zero-ref    "field V74._reference (fldOffset=0x0)" P-INDEP
 ;* V298 tmp279      [V298    ] (  0,  0   )     int  ->  zero-ref    "field V74._length (fldOffset=0x8)" P-INDEP
-;  V299 tmp280      [V299,T129] (  2,  0   )   byref  ->  rbp         single-def "field V78._reference (fldOffset=0x0)" P-INDEP
-;* V300 tmp281      [V300,T150] (  0,  0   )     int  ->  zero-ref    ptr "field V78._length (fldOffset=0x8)" P-INDEP
-;  V301 tmp282      [V301,T130] (  2,  0   )   byref  ->  rcx         "field V81._reference (fldOffset=0x0)" P-INDEP
-;  V302 tmp283      [V302,T147] (  2,  0   )     int  ->  rdx         "field V81._length (fldOffset=0x8)" P-INDEP
+;  V299 tmp280      [V299,T128] (  2,  0   )   byref  ->  rbp         single-def "field V78._reference (fldOffset=0x0)" P-INDEP
+;* V300 tmp281      [V300,T149] (  0,  0   )     int  ->  zero-ref    ptr "field V78._length (fldOffset=0x8)" P-INDEP
+;  V301 tmp282      [V301,T129] (  2,  0   )   byref  ->  rcx         "field V81._reference (fldOffset=0x0)" P-INDEP
+;  V302 tmp283      [V302,T146] (  2,  0   )     int  ->  rdx         "field V81._length (fldOffset=0x8)" P-INDEP
 ;  V303 tmp284      [V303,T12] (  3,  6   )   byref  ->  rcx         "field V82._reference (fldOffset=0x0)" P-INDEP
 ;  V304 tmp285      [V304,T14] (  3,  6   )     int  ->  rdx         "field V82._length (fldOffset=0x8)" P-INDEP
 ;  V305 tmp286      [V305,T57] (  2,  2   )   byref  ->  rcx         "field V83._reference (fldOffset=0x0)" P-INDEP
@@ -332,10 +332,10 @@
...

+10 (+0.70%) : 89050.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+d24[System.Canon]:MoveNext():this (Tier1-OSR)

@@ -30,12 +30,12 @@
 ;* V17 tmp6         [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V18 tmp7         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.Tests.RentReturnArrayPoolTests`1+<>c__DisplayClass24_0[System.__Canon]>
 ;* V19 tmp8         [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Func`1[System.Threading.Tasks.Task]>
-;  V20 tmp9         [V20,T93] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V20 tmp9         [V20,T92] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;  V21 tmp10        [V21,T01] (  3,599.94)     ref  ->  rcx         class-hnd "impAppendStmt" <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
-;  V22 tmp11        [V22,T86] (  3,  0   )    long  ->  rdx         "spilling helperCall"
+;  V22 tmp11        [V22,T85] (  3,  0   )    long  ->  rdx         "spilling helperCall"
 ;* V23 tmp12        [V23    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V24 tmp13        [V24    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V25 tmp14        [V25,T87] (  3,  0   )    long  ->  rdx         "spilling helperCall"
+;  V25 tmp14        [V25,T86] (  3,  0   )    long  ->  rdx         "spilling helperCall"
 ;  V26 tmp15        [V26,T07] (  4,199.98)     ref  ->  rdi         "guarded devirt return temp"
 ;  V27 tmp16        [V27,T00] (  5,599.94)     ref  ->  rcx         "guarded devirt arg temp"
 ;  V28 tmp17        [V28,T04] (  3,399.96)     int  ->  rdx         "guarded devirt arg temp"
@@ -177,7 +177,7 @@
 ;* V164 tmp153      [V164    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V165 tmp154      [V165,T61] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V166 tmp155      [V166,T14] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V167 tmp156      [V167,T81] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V167 tmp156      [V167,T80] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V168 tmp157      [V168    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V169 tmp158      [V169    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V170 tmp159      [V170    ] (  0,  0   )     ref  ->  zero-ref    single-def
@@ -197,7 +197,7 @@
 ;* V184 tmp173      [V184    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V185 tmp174      [V185    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V186 tmp175      [V186,T16] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V187 tmp176      [V187,T82] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V187 tmp176      [V187,T81] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V188 tmp177      [V188    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V189 tmp178      [V189    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V190 tmp179      [V190    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -388,7 +388,7 @@
 ;* V375 tmp364      [V375    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V376 tmp365      [V376,T66] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V377 tmp366      [V377,T12] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V378 tmp367      [V378,T83] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V378 tmp367      [V378,T82] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V379 tmp368      [V379    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V380 tmp369      [V380    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V381 tmp370      [V381    ] (  0,  0   )     ref  ->  zero-ref    single-def
@@ -408,7 +408,7 @@
 ;* V395 tmp384      [V395    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V396 tmp385      [V396    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V397 tmp386      [V397,T13] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V398 tmp387      [V398,T84] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
+;* V398 tmp387      [V398,T83] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V399 tmp388      [V399    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V400 tmp389      [V400    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;* V401 tmp390      [V401    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
@@ -489,7 +489,7 @@
 ;* V476 tmp465      [V476    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V477 tmp466      [V477    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V478 tmp467      [V478    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V479 tmp468      [V479,T85] (  3,  0   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
+;  V479 tmp468      [V479,T84] (  3,  0   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V480 tmp469      [V480    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V32._source (fldOffset=0x0)" P-INDEP
 ;* V481 tmp470      [V481    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V34._source (fldOffset=0x0)" P-INDEP
 ;* V482 tmp471      [V482    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V36._source (fldOffset=0x0)" P-INDEP
@@ -541,12 +541,12 @@
 ;* V528 tmp517      [V528    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V529 tmp518      [V529    ] (  0,  0   )     ref  ->  zero-ref    "arr expr"
 ;* V530 tmp519      [V530,T26] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V531 tmp520      [V531,T94] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V531 tmp520      [V531,T93] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V532 tmp521      [V532    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V533 tmp522      [V533    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V534 tmp523      [V534,T27] (  0,  0   )     ref  ->  zero-ref    "arr expr"
 ;* V535 tmp524      [V535,T28] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V536 tmp525      [V536,T95] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V536 tmp525      [V536,T94] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V537 tmp526      [V537    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V538 tmp527      [V538    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V539 tmp528      [V539    ] (  0,  0   )     ref  ->  zero-ref    single-def "arr expr"
@@ -560,23 +560,22 @@
 ;* V547 tmp536      [V547    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V548 tmp537      [V548    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V549 tmp538      [V549,T29] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V550 tmp539      [V550,T96] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V550 tmp539      [V550,T95] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V551 tmp540      [V551    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V552 tmp541      [V552    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V553 tmp542      [V553,T30] (  0,  0   )     ref  ->  zero-ref    "arr expr"
 ;* V554 tmp543      [V554,T31] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V555 tmp544      [V555,T97] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;* V555 tmp544      [V555,T96] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V556 tmp545      [V556    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V557 tmp546      [V557    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V558 tmp547      [V558    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V559 tmp548      [V559,T98] (  2,  0   )    long  ->  rcx         "argument with side effect"
+;  V559 tmp548      [V559,T97] (  2,  0   )    long  ->  rcx         "argument with side effect"
 ;  V560 PSPSym      [V560,T78] (  1,  1   )    long  ->  [rbp-0x50]  do-not-enreg[V] "PSPSym"
-;  V561 cse0        [V561,T80] (  7, 99.89)     ref  ->  rdx         multi-def "CSE - conservative"
-;  V562 rat0        [V562,T88] (  3,  0   )    long  ->  rcx         "runtime lookup"
-;  V563 rat1        [V563,T89] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
-;  V564 rat2        [V564,T90] (  3,  0   )    long  ->  rdx         "fgMakeTemp is creating a new local variable"
-;  V565 rat3        [V565,T91] (  3,  0   )    long  ->  rcx         "spilling expr"
-;  V566 rat4        [V566,T92] (  3,  0   )    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V561 rat0        [V561,T87] (  3,  0   )    long  ->  rcx         "runtime lookup"
+;  V562 rat1        [V562,T88] (  3,  0   )    long  ->  rcx         "fgMakeTemp is creating a new local variable"
+;  V563 rat2        [V563,T89] (  3,  0   )    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V564 rat3        [V564,T90] (  3,  0   )    long  ->  rcx         "spilling expr"
+;  V565 rat4        [V565,T91] (  3,  0   )    long  ->  rdx         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 56
 
@@ -908,17 +907,17 @@ G_M48189_IG29:        ; bbWeight=0, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi},
        ; gcrRegs -[r12]
        jmp      G_M48189_IG35
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M48189_IG30:        ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0040 {rsi}, byref, isz
+G_M48189_IG30:        ; bbWeight=0, gcrefRegs=C000 {r14 r15}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs +[r15]
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-       jmp      SHORT G_M48189_IG25
-                       ;; size=21 bbWeight=0 PerfScore 0.00
+       jmp      G_M48189_IG25
+                       ;; size=31 bbWeight=0 PerfScore 0.00
 G_M48189_IG31:        ; bbWeight=49.95, gcrefRegs=5000 {r12 r14}, byrefRegs=0040 {rsi}, byref, isz
        ; gcrRegs -[r15] +[r12]
        mov      ecx, dword ptr [r12+0x34]
@@ -1180,7 +1179,7 @@ G_M48189_IG55:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1427, prolog size 88, PerfScore 7354.04, instruction count 329, allocated bytes for code 1427 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
+Total bytes of code 1437, prolog size 88, PerfScore 7354.04, instruction count 329, allocated bytes for code 1437 (MethodHash=eb7043c2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:

+21 (+1.29%) : 100334.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues1System.String

@@ -19,17 +19,17 @@
 ;  V07 loc2         [V07,T17] (  5,  3   )     ref  ->  rax         class-hnd <System.Buffers.SearchValues`1[System.String]>
 ;  V08 loc3         [V08,T18] (  3,  2.96)     int  ->   r8        
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T48] (  4,  0   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
-;  V11 tmp2         [V11,T49] (  4,  0   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
+;  V10 tmp1         [V10,T47] (  4,  0   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+TrueConst]>
+;  V11 tmp2         [V11,T48] (  4,  0   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesFallback`1[System.Buffers.SearchValues+FalseConst]>
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T63] (  2,  0   )     ref  ->  rsi        
-;  V15 tmp6         [V15,T50] (  4,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
+;  V14 tmp5         [V14,T62] (  2,  0   )     ref  ->  rsi        
+;  V15 tmp6         [V15,T49] (  4,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.HashSet`1[System.String]>
 ;  V16 tmp7         [V16,T27] (  6,  1.16)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V18 tmp9         [V18,T53] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V19 tmp10        [V19,T54] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V20 tmp11        [V20,T55] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V18 tmp9         [V18,T52] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V19 tmp10        [V19,T53] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V20 tmp11        [V20,T54] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V21 tmp12        [V21,T04] ( 10, 11.62)     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V23 tmp14        [V23,T08] ( 16,  6.49)     int  ->  registers   ld-addr-op "Inline ldloca(s) first use temp"
@@ -84,9 +84,9 @@
 ;* V72 tmp63        [V72    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V73 tmp64        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V74 tmp65        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V75 tmp66        [V75,T51] (  4,  0   )     int  ->  rbp         "Inlining Arg"
-;  V76 tmp67        [V76,T56] (  3,  0   )   byref  ->  r14         single-def "Inlining Arg"
-;  V77 tmp68        [V77,T64] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V75 tmp66        [V75,T50] (  4,  0   )     int  ->  rbp         "Inlining Arg"
+;  V76 tmp67        [V76,T55] (  3,  0   )   byref  ->  r14         single-def "Inlining Arg"
+;  V77 tmp68        [V77,T63] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
 ;  V78 tmp69        [V78    ] (  2,  0   )  ushort  ->  [rsp+0x3C]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V79 tmp70        [V79    ] (  2,  0   )  ushort  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V80 tmp71        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -110,10 +110,10 @@
 ;* V98 tmp89        [V98    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V99 tmp90        [V99    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V100 tmp91       [V100    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V101 tmp92       [V101,T44] (  6,  0   )  ushort  ->  r15         "Inlining Arg"
-;  V102 tmp93       [V102,T46] (  5,  0   )  ushort  ->  r13         "Inlining Arg"
+;  V101 tmp92       [V101,T43] (  6,  0   )  ushort  ->  r15         "Inlining Arg"
+;  V102 tmp93       [V102,T45] (  5,  0   )  ushort  ->  r13         "Inlining Arg"
 ;* V103 tmp94       [V103    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V104 tmp95       [V104,T61] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V104 tmp95       [V104,T60] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
 ;* V105 tmp96       [V105    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V106 tmp97       [V106    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V107 tmp98       [V107    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inline stloc first use temp"
@@ -142,17 +142,17 @@
 ;* V130 tmp121      [V130    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V131 tmp122      [V131,T36] (  6,  0.76)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Buffers.SearchValues`1[System.String]>
 ;* V132 tmp123      [V132    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V133 tmp124      [V133,T57] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
-;  V134 tmp125      [V134,T58] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
-;  V135 tmp126      [V135,T59] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
+;  V133 tmp124      [V133,T56] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveUnicode]>
+;  V134 tmp125      [V134,T57] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAscii]>
+;  V135 tmp126      [V135,T58] (  3,  0   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]>
 ;  V136 tmp127      [V136,T25] (  3,  2.28)     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength8OrLongerOrUnknown,System.Buffers.StringSearchValuesHelper+CaseSensitive]>
 ;* V137 tmp128      [V137    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V138 tmp129      [V138    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V139 tmp130      [V139    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V140 tmp131      [V140    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V141 tmp132      [V141,T52] (  4,  0   )     int  ->  rbp         "Inlining Arg"
-;  V142 tmp133      [V142,T60] (  3,  0   )   byref  ->  r14         single-def "Inlining Arg"
-;  V143 tmp134      [V143,T65] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V141 tmp132      [V141,T51] (  4,  0   )     int  ->  rbp         "Inlining Arg"
+;  V142 tmp133      [V142,T59] (  3,  0   )   byref  ->  r14         single-def "Inlining Arg"
+;  V143 tmp134      [V143,T64] (  2,  0   )     int  ->  rax         "Inline return value spill temp"
 ;  V144 tmp135      [V144    ] (  2,  0   )  ushort  ->  [rsp+0x34]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;  V145 tmp136      [V145    ] (  2,  0   )  ushort  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
 ;* V146 tmp137      [V146    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
@@ -176,10 +176,10 @@
 ;* V164 tmp155      [V164    ] (  0,  0   )   ubyte  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V165 tmp156      [V165    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V166 tmp157      [V166    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V167 tmp158      [V167,T45] (  6,  0   )  ushort  ->  r15         "Inlining Arg"
-;  V168 tmp159      [V168,T47] (  5,  0   )  ushort  ->  r13         "Inlining Arg"
+;  V167 tmp158      [V167,T44] (  6,  0   )  ushort  ->  r15         "Inlining Arg"
+;  V168 tmp159      [V168,T46] (  5,  0   )  ushort  ->  r13         "Inlining Arg"
 ;* V169 tmp160      [V169    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V170 tmp161      [V170,T62] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
+;  V170 tmp161      [V170,T61] (  3,  0   )     int  ->  rax         "Inline return value spill temp"
 ;* V171 tmp162      [V171    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V172 tmp163      [V172    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V173 tmp164      [V173    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inline stloc first use temp"
@@ -276,7 +276,6 @@
 ;* V264 tmp255      [V264    ] (  0,  0   )   byref  ->  zero-ref    "field V196._reference (fldOffset=0x0)" P-INDEP
 ;* V265 tmp256      [V265    ] (  0,  0   )     int  ->  zero-ref    "field V196._length (fldOffset=0x8)" P-INDEP
 ;  V266 cse0        [V266,T09] ( 13,  6.48)     int  ->  rbp         "CSE - aggressive"
-;  V267 cse1        [V267,T43] (  9,  0   )     ref  ->  rdx         multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 64
 
@@ -505,27 +504,27 @@ G_M46798_IG34:        ; bbWeight=0.58, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0
        jne      SHORT G_M46798_IG36
                        ;; size=5 bbWeight=0.58 PerfScore 0.73
 G_M46798_IG35:        ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=19 bbWeight=0 PerfScore 0.00
+                       ;; size=26 bbWeight=0 PerfScore 0.00
 G_M46798_IG36:        ; bbWeight=0.58, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
        cmp      r15d, r13d
        jne      SHORT G_M46798_IG38
                        ;; size=5 bbWeight=0.58 PerfScore 0.73
 G_M46798_IG37:        ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=19 bbWeight=0 PerfScore 0.00
+                       ;; size=26 bbWeight=0 PerfScore 0.00
 G_M46798_IG38:        ; bbWeight=0.58, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
        test     r13d, r13d
        jle      SHORT G_M46798_IG41
@@ -853,15 +852,15 @@ G_M46798_IG56:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
                        ;; size=5 bbWeight=0 PerfScore 0.00
 G_M46798_IG57:        ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx rsi r14]
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        jmp      G_M46798_IG43
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+                       ;; size=31 bbWeight=0 PerfScore 0.00
 G_M46798_IG58:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r14]
        mov      rcx, 0xD1FFAB1E      ; System.Buffers.SingleStringSearchValuesThreeChars`2[System.Buffers.StringSearchValuesHelper+ValueLength4To7,System.Buffers.StringSearchValuesHelper+CaseInsensitiveAsciiLetters]
@@ -1003,7 +1002,7 @@ RWD00     dd  7F7FFFFFh       ; 3.40282e+38
 RWD04      dd  3FC00000h       ;       1.5
 
 
-; Total bytes of code 1632, prolog size 26, PerfScore 165.43, instruction count 407, allocated bytes for code 1632 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
+Total bytes of code 1653, prolog size 26, PerfScore 165.43, instruction count 407, allocated bytes for code 1653 (MethodHash=3e464931) for method System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
 ; ============================================================
 
 Unwind Info:

benchmarks.run_tiered.windows.x64.checked.mch

-10 (-0.80%) : 48441.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)

@@ -14,24 +14,24 @@
 ;  V03 arg3         [V03,T05] ( 12,  2   )     ref  ->  [rbp+0x28]  class-hnd EH-live single-def <System.Xml.XmlTextReaderImpl+NodeData>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T31] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V06 tmp1         [V06,T30] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;  V08 tmp3         [V08,T04] (  2,  4   )     int  ->   r8         "spilling unroll qmark"
 ;* V09 tmp4         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V10 tmp5         [V10,T19] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V11 tmp6         [V11,T23] (  3,  0   )     int  ->  rbx         "Inlining Arg"
-;  V12 tmp7         [V12,T24] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V10 tmp5         [V10,T18] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V11 tmp6         [V11,T22] (  3,  0   )     int  ->  rbx         "Inlining Arg"
+;  V12 tmp7         [V12,T23] (  3,  0   )     int  ->  rdi         "Inlining Arg"
 ;  V13 tmp8         [V13,T10] ( 11,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V14 tmp9         [V14,T14] (  4,  0   )     ref  ->  r13         class-hnd exact single-def "dup spill" <System.String[]>
-;  V15 tmp10        [V15,T32] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V16 tmp11        [V16,T33] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V17 tmp12        [V17,T20] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp13        [V18,T25] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V19 tmp14        [V19,T26] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V15 tmp10        [V15,T31] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V16 tmp11        [V16,T32] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V17 tmp12        [V17,T19] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V18 tmp13        [V18,T24] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V19 tmp14        [V19,T25] (  3,  0   )     int  ->  r14         "Inlining Arg"
 ;  V20 tmp15        [V20,T11] ( 11,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V21 tmp16        [V21,T15] (  4,  0   )     ref  ->  r12         class-hnd exact single-def "dup spill" <System.String[]>
-;  V22 tmp17        [V22,T34] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V23 tmp18        [V23,T35] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V22 tmp17        [V22,T33] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V23 tmp18        [V23,T34] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp19        [V24    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V25 tmp20        [V25,T06] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
@@ -39,25 +39,24 @@
 ;* V28 tmp23        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp24        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp25        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V31 tmp26        [V31,T21] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V32 tmp27        [V32,T27] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V33 tmp28        [V33,T28] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V31 tmp26        [V31,T20] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V32 tmp27        [V32,T26] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V33 tmp28        [V33,T27] (  3,  0   )     int  ->  r14         "Inlining Arg"
 ;  V34 tmp29        [V34,T12] ( 11,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V35 tmp30        [V35,T16] (  4,  0   )     ref  ->  r12         class-hnd exact single-def "dup spill" <System.String[]>
-;  V36 tmp31        [V36,T36] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V37 tmp32        [V37,T37] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V38 tmp33        [V38,T22] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V39 tmp34        [V39,T29] (  3,  0   )     int  ->  rsi         "Inlining Arg"
-;  V40 tmp35        [V40,T30] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V36 tmp31        [V36,T35] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V37 tmp32        [V37,T36] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V38 tmp33        [V38,T21] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V39 tmp34        [V39,T28] (  3,  0   )     int  ->  rsi         "Inlining Arg"
+;  V40 tmp35        [V40,T29] (  3,  0   )     int  ->  rdi         "Inlining Arg"
 ;  V41 tmp36        [V41,T13] ( 11,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V42 tmp37        [V42,T17] (  4,  0   )     ref  ->  r13         class-hnd exact single-def "dup spill" <System.String[]>
-;  V43 tmp38        [V43,T38] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V44 tmp39        [V44,T39] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V43 tmp38        [V43,T37] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V44 tmp39        [V44,T38] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V45 tmp40        [V45,T03] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
 ;  V46 PSPSym       [V46,T08] (  1,  1   )    long  ->  [rbp-0x40]  do-not-enreg[V] "PSPSym"
-;  V47 cse0         [V47,T18] (  4,  0   )     ref  ->  rdx         multi-def "CSE - aggressive"
-;  V48 cse1         [V48,T07] (  3,  3   )     ref  ->  rdx         "CSE - aggressive"
-;  V49 rat0         [V49,T09] (  3,  6   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V47 cse0         [V47,T07] (  3,  3   )     ref  ->  rdx         "CSE - aggressive"
+;  V48 rat0         [V48,T09] (  3,  6   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 40
 
@@ -206,21 +205,16 @@ G_M20580_IG10:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        ; gcr arg pop 0
        mov      r13, rax
        ; gcrRegs +[r13]
-       lea      rcx, bword ptr [r13+0x10]
-       ; byrRegs +[rcx]
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
-       ; byrRegs -[rcx]
-       mov      rcx, rsi
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
+       mov      gword ptr [r13+0x10], rcx
+       mov      rcx, rsi
        mov      rdx, r13
        ; gcrRegs +[rdx]
        mov      r8d, ebx
        mov      r9d, edi
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx] +[rax]
+       ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        mov      rcx, 0xD1FFAB1E
        mov      qword ptr [r14+0x70], rcx
@@ -259,8 +253,6 @@ G_M20580_IG10:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        ; byrRegs -[rcx]
        mov      dword ptr [r14+0x98], ebx
        mov      dword ptr [r14+0x9C], edi
-                       ;; size=233 bbWeight=0 PerfScore 0.00
-G_M20580_IG11:        ; bbWeight=0, extend
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
        mov      rdx, r14
@@ -269,8 +261,10 @@ G_M20580_IG11:        ; bbWeight=0, extend
        call     [System.Xml.XmlTextReaderImpl:Throw(System.Exception):this]
        ; gcrRegs -[rcx rdx r14]
        ; gcr arg pop 0
+                       ;; size=241 bbWeight=0 PerfScore 0.00
+G_M20580_IG11:        ; bbWeight=0, extend
        int3     
-                       ;; size=14 bbWeight=0 PerfScore 0.00
+                       ;; size=1 bbWeight=0 PerfScore 0.00
 G_M20580_IG12:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rsi]
        ; GC ptr vars +{V00 V01 V03}
@@ -492,21 +486,16 @@ G_M20580_IG14:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        ; gcr arg pop 0
        mov      r13, rax
        ; gcrRegs +[r13]
-       lea      rcx, bword ptr [r13+0x10]
-       ; byrRegs +[rcx]
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
-       ; byrRegs -[rcx]
-       mov      rcx, rbx
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
+       mov      gword ptr [r13+0x10], rcx
+       mov      rcx, rbx
        mov      rdx, r13
        ; gcrRegs +[rdx]
        mov      r8d, esi
        mov      r9d, edi
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx] +[rax]
+       ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        mov      rcx, 0xD1FFAB1E
        mov      qword ptr [r14+0x70], rcx
@@ -554,7 +543,7 @@ G_M20580_IG14:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        ; gcrRegs -[rcx rdx r14]
        ; gcr arg pop 0
        int3     
-                       ;; size=230 bbWeight=0 PerfScore 0.00
+                       ;; size=225 bbWeight=0 PerfScore 0.00
 G_M20580_IG15:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
        ; gcrRegs +[rdx]
        ; GC ptr vars +{V00 V01 V03}
@@ -603,7 +592,7 @@ RWD00   dq  0070007400740068h, 0077002F002F003Ah, 0077002E00770077h, 0072006F002E
 RWD32      dq  00670072006F002Eh, 003000300032002Fh, 006D0078002F0030h, 002F0073006E006Ch
 
 
-; Total bytes of code 1250, prolog size 42, PerfScore 86.25, instruction count 289, allocated bytes for code 1250 (MethodHash=02a7af9b) for method System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
+Total bytes of code 1240, prolog size 42, PerfScore 86.25, instruction count 287, allocated bytes for code 1240 (MethodHash=02a7af9b) for method System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)
 ; ============================================================
 
 Unwind Info:

coreclr_tests.run.windows.x64.checked.mch

-13 (-2.45%) : 236714.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)

@@ -42,11 +42,11 @@
 ;  V30 tmp28        [V30,T13] (  4,  1.20)     ref  ->  rax        
 ;* V31 tmp29        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V32 tmp30        [V32    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V33 tmp31        [V33,T21] (  5,  0.39)     ref  ->  rdi        
+;  V33 tmp31        [V33,T21] (  6,  0.59)     ref  ->  rdi        
 ;* V34 tmp32        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V35 tmp33        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V36 tmp34        [V36,T22] (  2,  0.39)     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.String>
-;  V37 tmp35        [V37,T24] (  4,  0.29)     ref  ->  rdi        
+;  V36 tmp34        [V36,T25] (  2,  0.39)     ref  ->  rdx         class-hnd exact single-def "dup spill" <System.String>
+;  V37 tmp35        [V37,T22] (  5,  0.49)     ref  ->  rdx        
 ;* V38 tmp36        [V38,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V39 tmp37        [V39,T08] (  3,  1.89)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.String>
 ;  V40 tmp38        [V40,T05] (  8,  4.39)     ref  ->  rcx         class-hnd single-def "dup spill" <System.Globalization.CultureInfo>
@@ -57,18 +57,17 @@
 ;  V45 tmp43        [V45,T14] (  4,  1.20)     ref  ->  rax        
 ;* V46 tmp44        [V46    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V47 tmp45        [V47    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V48 tmp46        [V48,T25] (  4,  0.29)     ref  ->  rdi        
+;  V48 tmp46        [V48,T23] (  5,  0.49)     ref  ->  rdx        
 ;  V49 tmp47        [V49,T27] (  3,  0.29)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V50 tmp48        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V51 tmp49        [V51,T23] (  2,  0.39)     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.String>
-;  V52 tmp50        [V52,T26] (  4,  0.29)     ref  ->  rdi        
+;  V51 tmp49        [V51,T26] (  2,  0.39)     ref  ->  rdx         class-hnd exact single-def "dup spill" <System.String>
+;  V52 tmp50        [V52,T24] (  5,  0.49)     ref  ->  rdx        
 ;* V53 tmp51        [V53,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V54 tmp52        [V54    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V55 tmp53        [V55    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V56 tmp54        [V56,T30] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
-;  V57 tmp55        [V57,T31] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V58 cse0         [V58,T29] (  8,  0   )     ref  ->  rdi         multi-def "CSE - conservative"
-;  V59 cse1         [V59,T12] (  3,  1.25)     int  ->   r8         "CSE - moderate"
+;  V56 tmp54        [V56,T29] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
+;  V57 tmp55        [V57,T30] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V58 cse0         [V58,T12] (  3,  1.25)     int  ->   r8         "CSE - moderate"
 ;
 ; Lcl frame size = 32
 
@@ -136,10 +135,10 @@ G_M25213_IG09:        ; bbWeight=0.68, gcVars=0000000000000000 {}, gcrefRegs=004
                        ;; size=13 bbWeight=0.68 PerfScore 3.59
 G_M25213_IG10:        ; bbWeight=0.30, gcrefRegs=004E {rcx rdx rbx rsi}, byrefRegs=0000 {}, byref
        test     rcx, rcx
-       je       G_M25213_IG49
+       je       G_M25213_IG41
                        ;; size=9 bbWeight=0.30 PerfScore 0.37
 G_M25213_IG11:        ; bbWeight=0.29, gcrefRegs=004E {rcx rdx rbx rsi}, byrefRegs=0000 {}, byref
-       jmp      G_M25213_IG47
+       jmp      G_M25213_IG39
                        ;; size=5 bbWeight=0.29 PerfScore 0.58
 G_M25213_IG12:        ; bbWeight=0.68, gcrefRegs=004E {rcx rdx rbx rsi}, byrefRegs=0000 {}, byref
        add      rcx, 12
@@ -153,7 +152,7 @@ G_M25213_IG12:        ; bbWeight=0.68, gcrefRegs=004E {rcx rdx rbx rsi}, byrefRe
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       G_M25213_IG49
+       je       G_M25213_IG41
                        ;; size=25 bbWeight=0.68 PerfScore 3.42
 G_M25213_IG13:        ; bbWeight=0.68, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      gword ptr [rbx+0x30], 0
@@ -179,19 +178,19 @@ G_M25213_IG16:        ; bbWeight=0.01, gcrefRegs=004E {rcx rdx rbx rsi}, byrefRe
 G_M25213_IG17:        ; bbWeight=0.15, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        test     rdx, rdx
-       jne      G_M25213_IG49
+       jne      G_M25213_IG41
        jmp      SHORT G_M25213_IG19
                        ;; size=11 bbWeight=0.15 PerfScore 0.47
 G_M25213_IG18:        ; bbWeight=0.16, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
        test     eax, eax
-       je       G_M25213_IG49
+       je       G_M25213_IG41
                        ;; size=8 bbWeight=0.16 PerfScore 0.20
 G_M25213_IG19:        ; bbWeight=0.63, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbx+0x20]
        ; gcrRegs +[rcx]
        test     rcx, rcx
-       je       G_M25213_IG36
+       je       G_M25213_IG32
                        ;; size=13 bbWeight=0.63 PerfScore 2.05
 G_M25213_IG20:        ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rdx, 0xD1FFAB1E      ; System.Globalization.CultureInfo
@@ -222,10 +221,10 @@ G_M25213_IG24:        ; bbWeight=0.95, epilog, nogc, extend
 G_M25213_IG25:        ; bbWeight=0.63, gcVars=0000000000000000 {}, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rax rbx rsi]
        test     rax, rax
-       je       G_M25213_IG36
+       je       SHORT G_M25213_IG32
        cmp      dword ptr [rax+0x08], 0
-       je       SHORT G_M25213_IG36
-                       ;; size=15 bbWeight=0.63 PerfScore 3.32
+       je       SHORT G_M25213_IG32
+                       ;; size=11 bbWeight=0.63 PerfScore 3.32
 G_M25213_IG26:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rcx, rbx
@@ -267,134 +266,110 @@ G_M25213_IG29:        ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0
        mov      rax, gword ptr [rcx+0x48]
        ; gcrRegs +[rax]
        test     rax, rax
-       jne      SHORT G_M25213_IG35
+       jne      SHORT G_M25213_IG31
                        ;; size=9 bbWeight=0.37 PerfScore 1.20
-G_M25213_IG30:        ; bbWeight=0.10, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG30:        ; bbWeight=0.10, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rdx, gword ptr [rcx+0x30]
        ; gcrRegs +[rdx]
-       mov      rdi, gword ptr [rdx+0x18]
+       mov      rdx, gword ptr [rdx+0x18]
+       mov      rax, 0xD1FFAB1E
+       ; gcrRegs +[rax]
+       test     rdx, rdx
+       cmove    rdx, rax
+       mov      rdi, rdx
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       jne      SHORT G_M25213_IG32
-                       ;; size=13 bbWeight=0.10 PerfScore 0.52
-G_M25213_IG31:        ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdx rdi]
-       mov      rdi, 0xD1FFAB1E
-       ; gcrRegs +[rdi]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG32:        ; bbWeight=0.10, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       test     rdi, rdi
-       jne      SHORT G_M25213_IG34
-                       ;; size=5 bbWeight=0.10 PerfScore 0.12
-G_M25213_IG33:        ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi]
-       mov      rdi, 0xD1FFAB1E
-       ; gcrRegs +[rdi]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG34:        ; bbWeight=0.10, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, byref
+       cmove    rdi, rax
        lea      rcx, bword ptr [rcx+0x48]
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
        mov      rdx, rdi
-       ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx]
+       ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
        mov      rax, rdi
        ; gcrRegs +[rax]
-                       ;; size=15 bbWeight=0.10 PerfScore 0.20
-G_M25213_IG35:        ; bbWeight=0.37, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
+                       ;; size=50 bbWeight=0.10 PerfScore 0.74
+G_M25213_IG31:        ; bbWeight=0.37, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
-       jmp      G_M25213_IG25
-                       ;; size=5 bbWeight=0.37 PerfScore 0.74
-G_M25213_IG36:        ; bbWeight=0.63, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+       jmp      SHORT G_M25213_IG25
+                       ;; size=2 bbWeight=0.37 PerfScore 0.74
+G_M25213_IG32:        ; bbWeight=0.63, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rcx, gword ptr [rsi+0x20]
        ; gcrRegs +[rcx]
        test     rcx, rcx
        je       G_M25213_IG23
                        ;; size=13 bbWeight=0.63 PerfScore 2.05
-G_M25213_IG37:        ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG33:        ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rdx, 0xD1FFAB1E      ; System.Globalization.CultureInfo
        cmp      qword ptr [rcx], rdx
-       je       SHORT G_M25213_IG40
+       je       SHORT G_M25213_IG36
                        ;; size=15 bbWeight=0.37 PerfScore 1.57
-G_M25213_IG38:        ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
+G_M25213_IG34:        ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
        mov      rax, qword ptr [rcx]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]System.Globalization.CultureInfo:get_Name():System.String:this
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG39:        ; bbWeight=0.63, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
+G_M25213_IG35:        ; bbWeight=0.63, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref
        test     rax, rax
        je       G_M25213_IG23
        cmp      dword ptr [rax+0x08], 0
        je       G_M25213_IG23
        jmp      G_M25213_IG26
                        ;; size=24 bbWeight=0.63 PerfScore 4.58
-G_M25213_IG40:        ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG36:        ; bbWeight=0.37, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax] +[rcx]
        mov      rax, gword ptr [rcx+0x48]
        ; gcrRegs +[rax]
        test     rax, rax
-       jne      SHORT G_M25213_IG46
+       jne      SHORT G_M25213_IG38
                        ;; size=9 bbWeight=0.37 PerfScore 1.20
-G_M25213_IG41:        ; bbWeight=0.10, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M25213_IG37:        ; bbWeight=0.10, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rdx, gword ptr [rcx+0x30]
        ; gcrRegs +[rdx]
-       mov      rdi, gword ptr [rdx+0x18]
+       mov      rdx, gword ptr [rdx+0x18]
+       mov      rax, 0xD1FFAB1E
+       ; gcrRegs +[rax]
+       test     rdx, rdx
+       cmove    rdx, rax
+       test     rdx, rdx
+       cmove    rdx, rax
+       mov      rdi, rdx
        ; gcrRegs +[rdi]
-       test     rdi, rdi
-       jne      SHORT G_M25213_IG43
-                       ;; size=13 bbWeight=0.10 PerfScore 0.52
-G_M25213_IG42:        ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdx rdi]
-       mov      rdi, 0xD1FFAB1E
-       ; gcrRegs +[rdi]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG43:        ; bbWeight=0.10, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       test     rdi, rdi
-       jne      SHORT G_M25213_IG45
-                       ;; size=5 bbWeight=0.10 PerfScore 0.12
-G_M25213_IG44:        ; bbWeight=0, gcrefRegs=004A {rcx rbx rsi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rdi]
-       mov      rdi, 0xD1FFAB1E
-       ; gcrRegs +[rdi]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M25213_IG45:        ; bbWeight=0.10, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, byref
        lea      rcx, bword ptr [rcx+0x48]
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
        mov      rdx, rdi
-       ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx]
+       ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
        mov      rax, rdi
        ; gcrRegs +[rax]
-                       ;; size=15 bbWeight=0.10 PerfScore 0.20
-G_M25213_IG46:        ; bbWeight=0.37, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
+                       ;; size=50 bbWeight=0.10 PerfScore 0.74
+G_M25213_IG38:        ; bbWeight=0.37, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
-       jmp      SHORT G_M25213_IG39
+       jmp      SHORT G_M25213_IG35
                        ;; size=2 bbWeight=0.37 PerfScore 0.74
...

-5 (-1.92%) : 277569.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)

@@ -8,31 +8,29 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 10,  3.65)     ref  ->  rsi         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T04] ( 10,  3.65)     ref  ->  rsi         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T02] ( 11, 11.33)     ref  ->  rbx         class-hnd single-def <System.Type>
-;  V02 loc0         [V02,T07] (  4,  0.60)     ref  ->  rcx         class-hnd exact <System.RuntimeType>
-;  V03 loc1         [V03,T04] (  3,  5.60)     ref  ->  rsi         class-hnd single-def <System.Type[]>
+;  V02 loc0         [V02,T06] (  4,  0.60)     ref  ->  rcx         class-hnd exact <System.RuntimeType>
+;  V03 loc1         [V03,T03] (  4, 10   )     ref  ->  rsi         class-hnd single-def <System.Type[]>
 ;  V04 loc2         [V04,T01] (  5, 18.80)     int  ->  rdi        
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T06] (  2,  0.96)     ref  ->  rcx         single-def "CASTCLASS eval op1"
+;  V06 tmp1         [V06,T05] (  2,  0.96)     ref  ->  rcx         single-def "CASTCLASS eval op1"
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V09 tmp4         [V09,T00] (  3, 33.60)     ref  ->  rcx         "argument with side effect"
-;  V10 cse0         [V10,T05] (  3,  4.40)     int  ->  rbp         "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M35267_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
-       push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-                       ;; size=14 bbWeight=1 PerfScore 4.75
+                       ;; size=13 bbWeight=1 PerfScore 3.75
 G_M35267_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        test     rbx, rbx
        je       G_M35267_IG16
@@ -66,14 +64,13 @@ G_M35267_IG06:        ; bbWeight=0, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {},
        ; gcrRegs +[rdx]
                        ;; size=3 bbWeight=0 PerfScore 0.00
 G_M35267_IG07:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
-       pop      rbp
        pop      rsi
        pop      rdi
        jmp      <unknown method>
        ; gcr arg pop 0
-                       ;; size=13 bbWeight=0 PerfScore 0.00
+                       ;; size=12 bbWeight=0 PerfScore 0.00
 G_M35267_IG08:        ; bbWeight=0.60, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rcx rdx] +[rbx]
        mov      rdx, rbx
@@ -111,14 +108,13 @@ G_M35267_IG09:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs +[rdx]
                        ;; size=42 bbWeight=0 PerfScore 0.00
 G_M35267_IG10:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
-       pop      rbp
        pop      rsi
        pop      rdi
        tail.jmp [System.Type:ImplementInterface(System.Type):ubyte:this]
        ; gcr arg pop 0
-                       ;; size=14 bbWeight=0 PerfScore 0.00
+                       ;; size=13 bbWeight=0 PerfScore 0.00
 G_M35267_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rcx rdx]
        cmp      byte  ptr [rsi], sil
@@ -137,10 +133,9 @@ G_M35267_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0048 {
        mov      rsi, rax
        ; gcrRegs +[rsi]
        xor      edi, edi
-       mov      ebp, dword ptr [rsi+0x08]
-       test     ebp, ebp
+       cmp      dword ptr [rsi+0x08], 0
        jle      SHORT G_M35267_IG14
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=35 bbWeight=0 PerfScore 0.00
 G_M35267_IG12:        ; bbWeight=5.60, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      ecx, edi
@@ -158,34 +153,32 @@ G_M35267_IG12:        ; bbWeight=5.60, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
                        ;; size=27 bbWeight=5.60 PerfScore 60.20
 G_M35267_IG13:        ; bbWeight=4.40, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        inc      edi
-       cmp      ebp, edi
-       jg       SHORT G_M35267_IG12
-                       ;; size=6 bbWeight=4.40 PerfScore 6.60
+       cmp      edi, dword ptr [rsi+0x08]
+       jl       SHORT G_M35267_IG12
+                       ;; size=7 bbWeight=4.40 PerfScore 18.70
 G_M35267_IG14:        ; bbWeight=2.36, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rsi]
        mov      eax, 1
                        ;; size=5 bbWeight=2.36 PerfScore 0.59
 G_M35267_IG15:        ; bbWeight=2.36, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
-       pop      rbp
        pop      rsi
        pop      rdi
        ret      
-                       ;; size=9 bbWeight=2.36 PerfScore 7.67
+                       ;; size=8 bbWeight=2.36 PerfScore 6.49
 G_M35267_IG16:        ; bbWeight=30.24, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
                        ;; size=2 bbWeight=30.24 PerfScore 7.56
 G_M35267_IG17:        ; bbWeight=30.24, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
-       pop      rbp
        pop      rsi
        pop      rdi
        ret      
-                       ;; size=9 bbWeight=30.24 PerfScore 98.28
+                       ;; size=8 bbWeight=30.24 PerfScore 83.16
 
-; Total bytes of code 261, prolog size 8, PerfScore 194.42, instruction count 89, allocated bytes for code 261 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
+Total bytes of code 256, prolog size 7, PerfScore 189.22, instruction count 83, allocated bytes for code 256 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -193,13 +186,12 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x07
+  CountOfUnwindCodes: 4
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)

-7 (-1.57%) : 227599.dasm - NumericSortRect:Run():double:this (Tier1)

@@ -12,36 +12,34 @@
 ;  V00 this         [V00,T01] ( 16,152.25)     ref  ->  rbx         this class-hnd single-def <NumericSortRect>
 ;  V01 loc0         [V01,T03] (  4, 52.50)     ref  ->  registers   class-hnd <int[,]>
 ;  V02 loc1         [V02,T02] (  5,128   )    long  ->  rdi        
-;  V03 loc2         [V03,T15] (  4, 86   )  double  ->  mm6        
+;  V03 loc2         [V03,T14] (  4, 86   )  double  ->  mm6        
 ;  V04 loc3         [V04,T07] (  3, 14.25)   short  ->  rcx        
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  6, 17.25)  struct ( 8) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "NewObjArrayArgs"
-;  V07 tmp2         [V07,T12] (  2,  4   )     int  ->   r8         "impImportNewObjArray"
-;  V08 tmp3         [V08,T13] (  2,  4   )     int  ->  rcx         "impImportNewObjArray"
+;  V07 tmp2         [V07,T11] (  2,  4   )     int  ->   r8         "impImportNewObjArray"
+;  V08 tmp3         [V08,T12] (  2,  4   )     int  ->  rcx         "impImportNewObjArray"
 ;* V09 tmp4         [V09    ] (  0,  0   )  double  ->  zero-ref    "impAppendStmt"
 ;  V10 tmp5         [V10,T04] (  2, 19   )     int  ->   r8         "impImportNewObjArray"
 ;  V11 tmp6         [V11,T05] (  2, 19   )     int  ->  rcx         "impImportNewObjArray"
-;  V12 tmp7         [V12,T17] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V13 tmp8         [V13,T14] (  2,  4   )    long  ->   r8         "argument with side effect"
+;  V12 tmp7         [V12,T16] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V13 tmp8         [V13,T13] (  2,  4   )    long  ->   r8         "argument with side effect"
 ;  V14 tmp9         [V14,T06] (  2, 19   )    long  ->   r8         "argument with side effect"
-;  V15 tmp10        [V15,T18] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V16 cse0         [V16,T08] (  3, 14.25)     int  ->  rbp         "CSE - aggressive"
-;  V17 cse1         [V17,T09] (  3, 14.25)     int  ->  r14         "CSE - aggressive"
-;  V18 cse2         [V18,T16] (  2, 43   )  double  ->  mm7         hoist "CSE - aggressive"
-;  V19 cse3         [V19,T11] (  2,  4.75)    long  ->  rdi         hoist "CSE - moderate"
-;  V20 cse4         [V20,T10] (  4,  6.75)    long  ->  rsi         hoist multi-def "CSE - aggressive"
-;  V21 rat0         [V21,T00] (  3,252   )    long  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
+;  V15 tmp10        [V15,T17] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V16 cse0         [V16,T08] (  3, 14.25)     int  ->  rdi         "CSE - aggressive"
+;  V17 cse1         [V17,T09] (  3, 14.25)     int  ->  rbp         "CSE - aggressive"
+;  V18 cse2         [V18,T15] (  2, 43   )  double  ->  mm7         hoist "CSE - aggressive"
+;  V19 cse3         [V19,T10] (  4,  6.75)    long  ->  rsi         hoist multi-def "CSE - aggressive"
+;  V20 rat0         [V20,T00] (  3,252   )    long  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 80
 
 G_M15242_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 88
+       sub      rsp, 80
        vzeroupper 
        vmovaps  xmmword ptr [rsp+0x40], xmm6
        vmovaps  xmmword ptr [rsp+0x30], xmm7
@@ -49,7 +47,7 @@ G_M15242_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      qword ptr [rsp+0x28], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=37 bbWeight=1 PerfScore 12.75
+                       ;; size=35 bbWeight=1 PerfScore 11.75
 G_M15242_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        cmp      dword ptr [rbx+0x10], 0
        je       G_M15242_IG11
@@ -112,20 +110,19 @@ G_M15242_IG06:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
 G_M15242_IG07:        ; bbWeight=1, epilog, nogc, extend
        vmovaps  xmm6, xmmword ptr [rsp+0x40]
        vmovaps  xmm7, xmmword ptr [rsp+0x30]
-       add      rsp, 88
+       add      rsp, 80
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
-       pop      r15
        ret      
-                       ;; size=25 bbWeight=1 PerfScore 12.25
+                       ;; size=23 bbWeight=1 PerfScore 11.75
 G_M15242_IG08:        ; bbWeight=4.75, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       movsx    rbp, word  ptr [rbx+0x20]
-       mov      r8d, ebp
-       mov      r14d, dword ptr [rbx+0x1C]
-       mov      ecx, r14d
+       movsx    rdi, word  ptr [rbx+0x20]
+       mov      r8d, edi
+       mov      ebp, dword ptr [rbx+0x1C]
+       mov      ecx, ebp
        mov      dword ptr [rsp+0x28], r8d
        mov      dword ptr [rsp+0x2C], ecx
        lea      r8, [rsp+0x28]
@@ -134,17 +131,18 @@ G_M15242_IG08:        ; bbWeight=4.75, gcVars=0000000000000000 {}, gcrefRegs=000
        call     CORINFO_HELP_NEW_MDARR
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
-       mov      r8d, ebp
-       mov      edx, r14d
-       mov      rcx, r15
+       mov      r14, rax
+       ; gcrRegs +[r14]
+       mov      r8d, edi
+       mov      edx, ebp
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     [NumericSortRect:DoNumSortIteration(int[,],int,int):int]
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        movsxd   rcx, eax
-       cmp      rcx, qword ptr [rdi]
+       mov      rax, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
+       cmp      rcx, qword ptr [rax]
        jg       SHORT G_M15242_IG09
        movsx    rcx, word  ptr [rbx+0x20]
        lea      eax, [rcx+0x01]
@@ -152,23 +150,22 @@ G_M15242_IG08:        ; bbWeight=4.75, gcVars=0000000000000000 {}, gcrefRegs=000
        cmp      ecx, 0x3E8
        jg       SHORT G_M15242_IG12
        jmp      SHORT G_M15242_IG08
-                       ;; size=90 bbWeight=4.75 PerfScore 130.62
-G_M15242_IG09:        ; bbWeight=2.38, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
-       mov      rsi, r15
+                       ;; size=97 bbWeight=4.75 PerfScore 131.81
+G_M15242_IG09:        ; bbWeight=2.38, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+       mov      rsi, r14
        ; gcrRegs +[rsi]
        jmp      G_M15242_IG03
                        ;; size=8 bbWeight=2.38 PerfScore 5.34
 G_M15242_IG10:        ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rsi r15]
+       ; gcrRegs -[rsi r14]
        mov      dword ptr [rbx+0x10], 1
        jmp      G_M15242_IG06
                        ;; size=12 bbWeight=0.25 PerfScore 0.75
 G_M15242_IG11:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      word  ptr [rbx+0x20], 1
        mov      rsi, 0xD1FFAB1E      ; int[,]
-       mov      rdi, 0xD1FFAB1E      ; static handle
        jmp      G_M15242_IG08
-                       ;; size=31 bbWeight=0 PerfScore 0.00
+                       ;; size=21 bbWeight=0 PerfScore 0.00
 G_M15242_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -199,7 +196,7 @@ RWD00   dq  3FF0000000000000h   ;            1
 RWD08      dq  408F400000000000h   ;         1000
 
 
-; Total bytes of code 445, prolog size 34, PerfScore 1142.97, instruction count 108, allocated bytes for code 445 (MethodHash=6a49c475) for method NumericSortRect:Run():double:this (Tier1)
+Total bytes of code 438, prolog size 32, PerfScore 1142.66, instruction count 106, allocated bytes for code 438 (MethodHash=6a49c475) for method NumericSortRect:Run():double:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -207,19 +204,18 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x1B
-  CountOfUnwindCodes: 11
+  SizeOfProlog      : 0x19
+  CountOfUnwindCodes: 10
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x1B UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM7 (7)
+    CodeOffset: 0x19 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM7 (7)
       Scaled Small Offset: 3 * 16 = 48 = 0x00030
-    CodeOffset: 0x15 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
+    CodeOffset: 0x13 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
       Scaled Small Offset: 4 * 16 = 64 = 0x00040
-    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

+19 (+4.12%) : 369099.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)

@@ -9,11 +9,11 @@
 ; 11 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 19,  9.03)     ref  ->  rbx         class-hnd single-def <Internal.TypeSystem.FieldDesc>
+;  V00 arg0         [V00,T00] ( 18,  9.03)     ref  ->  rbx         class-hnd single-def <Internal.TypeSystem.FieldDesc>
 ;  V01 arg1         [V01,T04] (  4,  4   )    long  ->  rbp         single-def
 ;  V02 arg2         [V02,T01] (  9,  9   )     int  ->  rsi         single-def
 ;  V03 arg3         [V03,T02] (  6,  6   )     int  ->  rdi         single-def
-;  V04 loc0         [V04,T14] (  2,  2   )     ref  ->  rcx         class-hnd exact <Internal.TypeSystem.Ecma.EcmaField>
+;  V04 loc0         [V04,T15] (  2,  2   )     ref  ->  rcx         class-hnd exact <Internal.TypeSystem.Ecma.EcmaField>
 ;* V05 loc1         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;* V06 loc2         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,23 +23,23 @@
 ;* V11 tmp4         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
 ;* V12 tmp5         [V12    ] (  0,  0   )     int  ->  zero-ref    "guarded devirt return temp"
 ;* V13 tmp6         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
-;  V14 tmp7         [V14,T21] (  2,  0   )     int  ->  rax         "guarded devirt return temp"
+;  V14 tmp7         [V14,T22] (  2,  0   )     int  ->  rax         "guarded devirt return temp"
 ;* V15 tmp8         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
 ;* V16 tmp9         [V16,T23] (  0,  0   )     int  ->  zero-ref    "guarded devirt return temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
-;  V18 tmp11        [V18,T15] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
+;  V18 tmp11        [V18,T16] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
 ;  V19 tmp12        [V19,T09] (  3,  2.99)     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V20 tmp13        [V20    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V21 tmp14        [V21,T16] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
+;  V21 tmp14        [V21,T17] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
 ;  V22 tmp15        [V22,T10] (  3,  2.99)     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V23 tmp16        [V23    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V24 tmp17        [V24,T17] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
+;  V24 tmp17        [V24,T18] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
 ;  V25 tmp18        [V25,T11] (  3,  2.99)     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V26 tmp19        [V26    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V27 tmp20        [V27,T18] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
+;  V27 tmp20        [V27,T19] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
 ;  V28 tmp21        [V28,T12] (  3,  2.99)     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T19] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
+;  V30 tmp23        [V30,T20] (  3,  2   )     int  ->  rax         "Inline return value spill temp"
 ;  V31 tmp24        [V31,T13] (  3,  2.99)     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V32 tmp25        [V32    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V33 tmp26        [V33,T03] (  4,  8   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <ubyte[]>
@@ -54,7 +54,7 @@
 ;* V42 tmp35        [V42    ] (  0,  0   )     int  ->  zero-ref    single-def "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V43 tmp36        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp37        [V44    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x8)" P-INDEP
-;  V45 tmp38        [V45,T20] (  2,  2.00)   byref  ->  rcx         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V45 tmp38        [V45,T21] (  2,  2.00)   byref  ->  rcx         single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V46 tmp39        [V46    ] (  0,  0   )     int  ->  zero-ref    single-def "field V09._length (fldOffset=0x8)" P-INDEP
 ;  V47 tmp40        [V47,T08] (  3,  3   )   byref  ->  rbx         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;  V48 tmp41        [V48,T05] (  5,  5   )     int  ->  rcx         "field V34._length (fldOffset=0x8)" P-INDEP
@@ -62,22 +62,23 @@
 ;* V50 tmp43        [V50    ] (  0,  0   )     int  ->  zero-ref    single-def "field V35._length (fldOffset=0x8)" P-INDEP
 ;* V51 tmp44        [V51    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V52 tmp45        [V52    ] (  0,  0   )     int  ->  zero-ref    single-def "field V37._length (fldOffset=0x8)" P-INDEP
-;  V53 cse0         [V53,T22] (  5,  0   )    long  ->  rsi         "CSE - moderate"
+;  V53 cse0         [V53,T14] (  6,  2   )    long  ->  r14         "CSE - moderate"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M56569_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 32
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rbp, rdx
        mov      esi, r8d
        mov      edi, r9d
-                       ;; size=20 bbWeight=1 PerfScore 5.25
+                       ;; size=22 bbWeight=1 PerfScore 6.25
 G_M56569_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        xor      ecx, ecx
        test     rbp, rbp
@@ -94,23 +95,23 @@ G_M56569_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        shr      ecx, 31
        call     [<unknown method>]
        ; gcr arg pop 0
+       mov      r14, qword ptr [rbx]
        mov      rcx, 0xD1FFAB1E      ; Internal.TypeSystem.Ecma.EcmaField
-       cmp      qword ptr [rbx], rcx
+       cmp      r14, rcx
        je       SHORT G_M56569_IG04
-                       ;; size=55 bbWeight=1 PerfScore 17.25
+                       ;; size=58 bbWeight=1 PerfScore 16.50
 G_M56569_IG03:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rbx]
-       mov      rsi, qword ptr [rax+0x50]
-       call     [rsi+0x18]<unknown method>
+       mov      rax, qword ptr [r14+0x50]
+       call     [rax+0x18]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      ecx, eax
        call     [<unknown method>]
        ; gcr arg pop 0
        jmp      G_M56569_IG28
-                       ;; size=26 bbWeight=0 PerfScore 0.00
+                       ;; size=23 bbWeight=0 PerfScore 0.00
 G_M56569_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      eax, dword ptr [rbx+0x2C]
        and      eax, 3
@@ -184,13 +185,14 @@ G_M56569_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
 G_M56569_IG14:        ; bbWeight=0, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
+       pop      r14
        ret      
-                       ;; size=9 bbWeight=0 PerfScore 0.00
+                       ;; size=11 bbWeight=0 PerfScore 0.00
 G_M56569_IG15:        ; bbWeight=0.99, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx]
        jmp      SHORT G_M56569_IG12
@@ -224,8 +226,8 @@ G_M56569_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M56569_IG19:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        ; byrRegs +[rbx]
-       mov      edi, edi
-       add      rbx, rdi
+       mov      r14d, edi
+       add      rbx, r14
        mov      ecx, esi
        not      ecx
        shr      ecx, 31
@@ -242,15 +244,16 @@ G_M56569_IG19:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        ; byrRegs -[rcx rdx rbx]
        ; gcr arg pop 0
        mov      eax, 1
-                       ;; size=42 bbWeight=1.00 PerfScore 9.75
+                       ;; size=43 bbWeight=1.00 PerfScore 9.75
 G_M56569_IG20:        ; bbWeight=1.00, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
+       pop      r14
        ret      
-                       ;; size=9 bbWeight=1.00 PerfScore 3.25
+                       ;; size=11 bbWeight=1.00 PerfScore 3.75
 G_M56569_IG21:        ; bbWeight=0.99, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rbx]
        jmp      G_M56569_IG10
@@ -297,7 +300,8 @@ G_M56569_IG27:        ; bbWeight=0.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
 G_M56569_IG28:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       call     [rsi+0x30]<unknown method>
+       mov      rax, qword ptr [r14+0x50]
+       call     [rax+0x30]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      ecx, eax
@@ -305,20 +309,22 @@ G_M56569_IG28:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       call     [rsi+0x28]<unknown method>
+       mov      rax, qword ptr [r14+0x50]
+       call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
        jne      G_M56569_IG13
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       call     [rsi+0x20]<unknown method>
+       mov      rax, qword ptr [r14+0x50]
+       call     [rax+0x20]<unknown method>
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        jmp      G_M56569_IG13
-                       ;; size=39 bbWeight=0 PerfScore 0.00
+                       ;; size=51 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 461, prolog size 8, PerfScore 89.29, instruction count 140, allocated bytes for code 461 (MethodHash=736c2306) for method Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
+Total bytes of code 480, prolog size 10, PerfScore 90.04, instruction count 146, allocated bytes for code 480 (MethodHash=736c2306) for method Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -326,13 +332,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x0A
+  CountOfUnwindCodes: 6
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)

+18 (+6.36%) : 277624.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)

@@ -29,17 +29,17 @@
 ;* V18 tmp16        [V18    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp17        [V19    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp18        [V20    ] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V21 tmp19        [V21,T11] (  3,   0   )   ubyte  ->  rdx         "Inline return value spill temp"
+;  V21 tmp19        [V21,T10] (  3,   0   )   ubyte  ->  rdx         "Inline return value spill temp"
 ;  V22 tmp20        [V22,T05] ( 10,   4.50)     int  ->  rsi         "Inline stloc first use temp"
 ;  V23 tmp21        [V23    ] (  2,   9   )  struct ( 8) [rsp+0x28]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
 ;  V24 tmp22        [V24    ] (  2,   9   )  struct ( 8) [rsp+0x20]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-;  V25 tmp23        [V25,T14] (  2,   0   )   float  ->  mm6         "impAppendStmt"
-;  V26 tmp24        [V26,T12] (  3,   0   )     int  ->  rcx        
+;  V25 tmp23        [V25,T13] (  2,   0   )   float  ->  mm6         "impAppendStmt"
+;  V26 tmp24        [V26,T11] (  3,   0   )     int  ->  rcx        
 ;* V27 tmp25        [V27    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp26        [V28    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp27        [V29    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp28        [V30    ] (  0,   0   )   float  ->  zero-ref    "Inline return value spill temp"
-;  V31 tmp29        [V31,T13] (  3,   0   )     int  ->  rcx        
+;  V31 tmp29        [V31,T12] (  3,   0   )     int  ->  rcx        
 ;* V32 tmp30        [V32    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V33 tmp31        [V33    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp32        [V34    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -48,7 +48,6 @@
 ;  V37 tmp35        [V37    ] (  3,1620   )    long  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V09._00 (fldOffset=0x0)" P-DEP
 ;  V38 tmp36        [V38    ] (  2,   4.50)    long  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed "field V23._00 (fldOffset=0x0)" P-DEP
 ;  V39 tmp37        [V39    ] (  2,   4.50)    long  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed "field V24._00 (fldOffset=0x0)" P-DEP
-;  V40 cse0         [V40,T10] (  6,   0   )     ref  ->  rdx         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 120
 
@@ -129,14 +128,14 @@ G_M21877_IG08:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
 G_M21877_IG09:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     cl, cl
        jne      SHORT G_M21877_IG10
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=23 bbWeight=0 PerfScore 0.00
+                       ;; size=30 bbWeight=0 PerfScore 0.00
 G_M21877_IG10:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        movsxd   rcx, esi
        lea      rdx, bword ptr [rsp+0x28]
@@ -156,14 +155,14 @@ G_M21877_IG11:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
 G_M21877_IG12:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        test     cl, cl
        jne      SHORT G_M21877_IG13
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=23 bbWeight=0 PerfScore 0.00
+                       ;; size=30 bbWeight=0 PerfScore 0.00
 G_M21877_IG13:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        movsxd   rcx, esi
        lea      rdx, bword ptr [rsp+0x20]
@@ -173,11 +172,11 @@ G_M21877_IG13:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        jae      SHORT G_M21877_IG14
        inc      esi
        cmp      esi, 2
-       jl       SHORT G_M21877_IG07
+       jl       G_M21877_IG07
        xor      edx, edx
        ; byrRegs -[rdx]
        jmp      SHORT G_M21877_IG15
-                       ;; size=29 bbWeight=0 PerfScore 0.00
+                       ;; size=33 bbWeight=0 PerfScore 0.00
 G_M21877_IG14:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      edx, 1
                        ;; size=5 bbWeight=0 PerfScore 0.00
@@ -185,7 +184,7 @@ G_M21877_IG15:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        jmp      G_M21877_IG05
                        ;; size=5 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 283, prolog size 14, PerfScore 13961.25, instruction count 79, allocated bytes for code 283 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 301, prolog size 14, PerfScore 13961.25, instruction count 79, allocated bytes for code 301 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+18 (+17.65%) : 516183.dasm - TestApp:test22(int):int (FullOpts)

@@ -7,19 +7,15 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5,  5   )     int  ->  rcx         single-def
-;  V01 loc0         [V01,T08] (  3,  2   )     int  ->  rax        
+;  V00 arg0         [V00,T00] (  7,  6.50)     int  ->  rcx         single-def
+;  V01 loc0         [V01,T05] (  3,  2   )     int  ->  rax        
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  8,  7   )     ref  ->  registers   "Field obj"
+;  V03 tmp1         [V03,T01] (  8,  7   )     ref  ->  rax         "Field obj"
 ;  V04 tmp2         [V04,T02] (  3,  6   )     ref  ->  rax         single-def "arr expr"
 ;  V05 tmp3         [V05,T03] (  3,  6   )     ref  ->  rax         single-def "arr expr"
-;* V06 tmp4         [V06,T11] (  0,  0   )     ref  ->  zero-ref    single-def "arr expr"
-;  V07 cse0         [V07,T04] (  3,  3   )    long  ->  rdx         "CSE - stress mode"
-;  V08 cse1         [V08,T05] (  2,  2   )     ref  ->  rax         "CSE - stress mode"
-;  V09 cse2         [V09,T10] (  2,  2   )     int  ->  r10         "CSE - stress mode"
-;  V10 cse3         [V10,T09] (  2,  2   )     ref  ->  rax         "CSE - stress mode"
-;  V11 cse4         [V11,T06] (  3,  2.50)     ref  ->  rax         "CSE - stress mode"
-;  V12 cse5         [V12,T07] (  3,  2.50)     ref  ->  rdx         "CSE - stress mode"
+;  V06 tmp4         [V06,T06] (  2,  2   )     ref  ->  rax         single-def "arr expr"
+;  V07 cse0         [V07,T07] (  2,  2   )     int  ->   r8         "CSE - unknown"
+;  V08 cse1         [V08,T04] (  3,  2.50)     ref  ->   r8         "CSE - unknown"
 ;
 ; Lcl frame size = 40
 
@@ -35,39 +31,41 @@ G_M47962_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      edx, ecx
        mov      rax, gword ptr [rax+8*rdx+0x10]
        cmp      byte  ptr [rax], al
-       mov      r8, gword ptr [rax+0x10]
-       ; gcrRegs +[r8]
+       mov      rdx, gword ptr [rax+0x10]
+       ; gcrRegs +[rdx]
        mov      rax, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        ; gcrRegs -[rax]
        mov      rax, gword ptr [rax]
        ; gcrRegs +[rax]
-       mov      r10d, dword ptr [rax+0x08]
-       cmp      ecx, r10d
+       mov      r8d, dword ptr [rax+0x08]
+       cmp      ecx, r8d
        jae      SHORT G_M47962_IG06
-       mov      rax, gword ptr [rax+8*rdx+0x10]
-       mov      rcx, rax
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rcx], cl
-       mov      rdx, gword ptr [rcx+0x10]
-       ; gcrRegs +[rdx]
-       cmp      r8, rdx
+       mov      r8d, ecx
+       mov      rax, gword ptr [rax+8*r8+0x10]
+       cmp      byte  ptr [rax], al
+       mov      r8, gword ptr [rax+0x10]
+       ; gcrRegs +[r8]
+       cmp      rdx, r8
        je       SHORT G_M47962_IG04
                        ;; size=72 bbWeight=1 PerfScore 27.50
 G_M47962_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax rcx rdx r8]
+       ; gcrRegs -[rax rdx r8]
        mov      eax, 100
        jmp      SHORT G_M47962_IG05
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M47962_IG04:        ; bbWeight=0.50, gcrefRegs=0005 {rax rdx}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rax rdx]
-       mov      rcx, rax
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rcx], cl
-       mov      eax, dword ptr [rdx+0x08]
+G_M47962_IG04:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[r8]
+       mov      rax, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
+       mov      rax, gword ptr [rax]
+       ; gcrRegs +[rax]
+       mov      ecx, ecx
+       mov      rax, gword ptr [rax+8*rcx+0x10]
+       cmp      byte  ptr [rax], al
+       mov      eax, dword ptr [r8+0x08]
        ; gcrRegs -[rax]
-                       ;; size=8 bbWeight=0.50 PerfScore 2.62
+                       ;; size=26 bbWeight=0.50 PerfScore 4.75
 G_M47962_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rcx rdx]
+       ; gcrRegs -[r8]
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
@@ -77,7 +75,7 @@ G_M47962_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 102, prolog size 4, PerfScore 32.75, instruction count 29, allocated bytes for code 102 (MethodHash=eca744a5) for method TestApp:test_2_2(int):int (FullOpts)
+Total bytes of code 120, prolog size 4, PerfScore 34.88, instruction count 32, allocated bytes for code 120 (MethodHash=eca744a5) for method TestApp:test_2_2(int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.pmi.windows.x64.checked.mch

-10 (-0.83%) : 134786.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)

@@ -14,24 +14,24 @@
 ;  V03 arg3         [V03,T05] ( 12,  2   )     ref  ->  [rbp+0x28]  class-hnd EH-live single-def <System.Xml.XmlTextReaderImpl+NodeData>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T31] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V06 tmp1         [V06,T30] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
 ;  V08 tmp3         [V08,T04] (  2,  4   )     int  ->   r8         "spilling unroll qmark"
 ;* V09 tmp4         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V10 tmp5         [V10,T19] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V11 tmp6         [V11,T23] (  3,  0   )     int  ->  rbx         "Inlining Arg"
-;  V12 tmp7         [V12,T24] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V10 tmp5         [V10,T18] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V11 tmp6         [V11,T22] (  3,  0   )     int  ->  rbx         "Inlining Arg"
+;  V12 tmp7         [V12,T23] (  3,  0   )     int  ->  rdi         "Inlining Arg"
 ;  V13 tmp8         [V13,T10] ( 11,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V14 tmp9         [V14,T14] (  4,  0   )     ref  ->  r13         class-hnd exact single-def "dup spill" <System.String[]>
-;  V15 tmp10        [V15,T32] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V16 tmp11        [V16,T33] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V17 tmp12        [V17,T20] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V18 tmp13        [V18,T25] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V19 tmp14        [V19,T26] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V15 tmp10        [V15,T31] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V16 tmp11        [V16,T32] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V17 tmp12        [V17,T19] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V18 tmp13        [V18,T24] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V19 tmp14        [V19,T25] (  3,  0   )     int  ->  r14         "Inlining Arg"
 ;  V20 tmp15        [V20,T11] ( 11,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V21 tmp16        [V21,T15] (  4,  0   )     ref  ->  r12         class-hnd exact single-def "dup spill" <System.String[]>
-;  V22 tmp17        [V22,T34] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V23 tmp18        [V23,T35] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V22 tmp17        [V22,T33] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V23 tmp18        [V23,T34] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V24 tmp19        [V24    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V25 tmp20        [V25,T07] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V26 tmp21        [V26    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
@@ -39,25 +39,24 @@
 ;* V28 tmp23        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp24        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp25        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V31 tmp26        [V31,T21] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V32 tmp27        [V32,T27] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V33 tmp28        [V33,T28] (  3,  0   )     int  ->  r14         "Inlining Arg"
+;  V31 tmp26        [V31,T20] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V32 tmp27        [V32,T26] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V33 tmp28        [V33,T27] (  3,  0   )     int  ->  r14         "Inlining Arg"
 ;  V34 tmp29        [V34,T12] ( 11,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V35 tmp30        [V35,T16] (  4,  0   )     ref  ->  r12         class-hnd exact single-def "dup spill" <System.String[]>
-;  V36 tmp31        [V36,T36] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V37 tmp32        [V37,T37] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V38 tmp33        [V38,T22] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V39 tmp34        [V39,T29] (  3,  0   )     int  ->  rsi         "Inlining Arg"
-;  V40 tmp35        [V40,T30] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V36 tmp31        [V36,T35] (  2,  0   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V37 tmp32        [V37,T36] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V38 tmp33        [V38,T21] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V39 tmp34        [V39,T28] (  3,  0   )     int  ->  rsi         "Inlining Arg"
+;  V40 tmp35        [V40,T29] (  3,  0   )     int  ->  rdi         "Inlining Arg"
 ;  V41 tmp36        [V41,T13] ( 11,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V42 tmp37        [V42,T17] (  4,  0   )     ref  ->  r13         class-hnd exact single-def "dup spill" <System.String[]>
-;  V43 tmp38        [V43,T38] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V44 tmp39        [V44,T39] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V43 tmp38        [V43,T37] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V44 tmp39        [V44,T38] (  2,  0   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V45 tmp40        [V45,T03] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
 ;  V46 PSPSym       [V46,T08] (  1,  1   )    long  ->  [rbp-0x40]  do-not-enreg[V] "PSPSym"
-;  V47 cse0         [V47,T18] (  4,  0   )     ref  ->  rdx         multi-def "CSE - moderate"
-;  V48 cse1         [V48,T06] (  3,  3   )     ref  ->  rdx         "CSE - aggressive"
-;  V49 rat0         [V49,T09] (  3,  6   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V47 cse0         [V47,T06] (  3,  3   )     ref  ->  rdx         "CSE - aggressive"
+;  V48 rat0         [V48,T09] (  3,  6   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 40
 
@@ -136,14 +135,14 @@ G_M20580_IG09:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        cmp      rsi, gword ptr [rcx+0xD0]
        je       SHORT G_M20580_IG10
        cmp      byte  ptr [rcx+0x17E], 0
-       je       G_M20580_IG16
+       je       G_M20580_IG15
                        ;; size=26 bbWeight=1 PerfScore 9.00
 G_M20580_IG10:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        cmp      dword ptr [rbx+0x08], 0
        jne      SHORT G_M20580_IG11
        cmp      dword ptr [rsi+0x08], 0
-       jg       G_M20580_IG17
+       jg       G_M20580_IG16
                        ;; size=16 bbWeight=1 PerfScore 8.00
 G_M20580_IG11:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbp+0x10]
@@ -183,7 +182,7 @@ G_M20580_IG13:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
        cmp      rsi, gword ptr [rcx+0xD8]
-       jne      G_M20580_IG15
+       jne      G_M20580_IG14
        call     [<unknown method>]
        ; gcrRegs -[rcx rsi] +[rax]
        ; gcr arg pop 0
@@ -211,21 +210,16 @@ G_M20580_IG13:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        ; gcr arg pop 0
        mov      r13, rax
        ; gcrRegs +[r13]
-       lea      rcx, bword ptr [r13+0x10]
-       ; byrRegs +[rcx]
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
-       ; byrRegs -[rcx]
-       mov      rcx, rsi
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
+       mov      gword ptr [r13+0x10], rcx
+       mov      rcx, rsi
        mov      rdx, r13
        ; gcrRegs +[rdx]
        mov      r8d, ebx
        mov      r9d, edi
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx] +[rax]
+       ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        mov      rcx, 0xD1FFAB1E
        mov      qword ptr [r14+0x70], rcx
@@ -266,8 +260,6 @@ G_M20580_IG13:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        mov      dword ptr [r14+0x9C], edi
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
-                       ;; size=227 bbWeight=0 PerfScore 0.00
-G_M20580_IG14:        ; bbWeight=0, extend
        mov      rdx, r14
        ; gcrRegs +[rdx]
        ; GC ptr vars -{V00}
@@ -275,7 +267,100 @@ G_M20580_IG14:        ; bbWeight=0, extend
        ; gcrRegs -[rcx rdx r14]
        ; gcr arg pop 0
        int3     
-                       ;; size=10 bbWeight=0 PerfScore 0.00
+                       ;; size=232 bbWeight=0 PerfScore 0.00
+G_M20580_IG14:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs +[rsi]
+       ; GC ptr vars +{V00 V01 V03}
+       call     [<unknown method>]
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
+       mov      rbx, rax
+       ; gcrRegs +[rbx]
+       mov      r9, gword ptr [rbp+0x28]
+       ; gcrRegs +[r9]
+       mov      edi, dword ptr [r9+0x70]
+       mov      r14d, dword ptr [r9+0x74]
+       mov      rcx, 0xD1FFAB1E      ; System.Xml.XmlException
+       ; GC ptr vars -{V01 V03}
+       call     CORINFO_HELP_NEWSFAST
+       ; gcrRegs -[r9]
+       ; gcr arg pop 0
+       mov      r15, rax
+       ; gcrRegs +[r15]
+       mov      rcx, gword ptr [rbp+0x10]
+       ; gcrRegs +[rcx]
+       mov      r13, gword ptr [rcx+0x1B8]
+       ; gcrRegs +[r13]
+       mov      rcx, 0xD1FFAB1E      ; System.String[]
+       ; gcrRegs -[rcx]
+       mov      edx, 1
+       call     CORINFO_HELP_NEWARR_1_OBJ
+       ; gcr arg pop 0
+       mov      r12, rax
+       ; gcrRegs +[r12]
+       lea      rcx, bword ptr [r12+0x10]
+       ; byrRegs +[rcx]
+       mov      rdx, rsi
+       ; gcrRegs +[rdx]
+       call     CORINFO_HELP_ASSIGN_REF
+       ; gcrRegs -[rax rdx rsi]
+       ; byrRegs -[rcx]
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+       mov      rdx, r12
+       ; gcrRegs +[rdx]
+       mov      r8d, edi
+       mov      r9d, r14d
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdx] +[rax]
+       ; gcr arg pop 0
+       mov      rcx, 0xD1FFAB1E
+       mov      qword ptr [r15+0x70], rcx
+       lea      rcx, bword ptr [r15+0x10]
+       ; byrRegs +[rcx]
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       call     CORINFO_HELP_ASSIGN_REF
+       ; gcrRegs -[rax rdx]
+       ; byrRegs -[rcx]
+       xor      rcx, rcx
+       ; gcrRegs +[rcx]
+       mov      gword ptr [r15+0x20], rcx
+       mov      dword ptr [r15+0x74], 0xD1FFAB1E
+       lea      rcx, bword ptr [r15+0x78]
+       ; gcrRegs -[rcx]
+       ; byrRegs +[rcx]
+       mov      rdx, rbx
+       ; gcrRegs +[rdx]
+       call     CORINFO_HELP_ASSIGN_REF
+       ; gcrRegs -[rdx rbx]
+       ; byrRegs -[rcx]
+       lea      rcx, bword ptr [r15+0x80]
+       ; byrRegs +[rcx]
+       mov      rdx, r12
+       ; gcrRegs +[rdx]
+       call     CORINFO_HELP_ASSIGN_REF
+       ; gcrRegs -[rdx r12]
+       ; byrRegs -[rcx]
+       lea      rcx, bword ptr [r15+0x88]
+       ; byrRegs +[rcx]
+       mov      rdx, r13
+       ; gcrRegs +[rdx]
+       call     CORINFO_HELP_ASSIGN_REF
+       ; gcrRegs -[rdx r13]
+       ; byrRegs -[rcx]
+       mov      dword ptr [r15+0x98], edi
+       mov      dword ptr [r15+0x9C], r14d
+       mov      rcx, gword ptr [rbp+0x10]
+       ; gcrRegs +[rcx]
+       mov      rdx, r15
+       ; gcrRegs +[rdx]
+       ; GC ptr vars -{V00}
+       call     [System.Xml.XmlTextReaderImpl:Throw(System.Exception):this]
+       ; gcrRegs -[rcx rdx r15]
+       ; gcr arg pop 0
+       int3     
+                       ;; size=214 bbWeight=0 PerfScore 0.00
 G_M20580_IG15:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rsi]
        ; GC ptr vars +{V00 V01 V03}
@@ -369,100 +454,7 @@ G_M20580_IG15:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs
        ; gcr arg pop 0
        int3     
                        ;; size=214 bbWeight=0 PerfScore 0.00
-G_M20580_IG16:        ; bbWeight=0, gcVars=0000000000000022 {V00 V03}, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs +[rsi]
-       ; GC ptr vars +{V00 V01 V03}
-       call     [<unknown method>]
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
-       mov      r9, gword ptr [rbp+0x28]
...

-5 (-0.44%) : 134713.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)

@@ -56,11 +56,10 @@
 ;  V45 tmp40        [V45,T08] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
 ;  V46 tmp41        [V46,T15] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V47 PSPSym       [V47,T24] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
-;  V48 cse0         [V48,T36] (  2,  0   )     ref  ->  rdx         "CSE - moderate"
-;  V49 cse1         [V49,T10] (  8,  5   )     int  ->  rbx         multi-def "CSE - moderate"
-;  V50 cse2         [V50,T21] (  3,  2.75)     int  ->   r8         "CSE - moderate"
-;  V51 rat0         [V51,T25] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V52 rat1         [V52,T26] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V48 cse0         [V48,T10] (  8,  5   )     int  ->  rbx         multi-def "CSE - moderate"
+;  V49 cse1         [V49,T21] (  3,  2.75)     int  ->   r8         "CSE - moderate"
+;  V50 rat0         [V50,T25] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V51 rat1         [V51,T26] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -427,21 +426,16 @@ G_M23682_IG36:        ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
        ; gcr arg pop 0
        mov      r14, rax
        ; gcrRegs +[r14]
-       lea      rcx, bword ptr [r14+0x10]
-       ; byrRegs +[rcx]
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
-       ; byrRegs -[rcx]
-       mov      rcx, rbx
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
+       mov      gword ptr [r14+0x10], rcx
+       mov      rcx, rbx
        mov      rdx, r14
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        xor      r9d, r9d
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx] +[rax]
+       ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        mov      rcx, 0xD1FFAB1E
        mov      qword ptr [rsi+0x70], rcx
@@ -489,7 +483,7 @@ G_M23682_IG36:        ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
        ; gcrRegs -[rcx rdx rsi]
        ; gcr arg pop 0
        int3     
-                       ;; size=212 bbWeight=0 PerfScore 0.00
+                       ;; size=207 bbWeight=0 PerfScore 0.00
 G_M23682_IG37:        ; bbWeight=0, gcVars=0000000000000013 {V00 V01 V02}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
        ; gcrRegs +[rdx]
        ; GC ptr vars +{V00 V01 V02}
@@ -580,7 +574,7 @@ RWD48   dq  0075002D00360034h, 0032002D00730063h
 RWD64      dq  002D006600740075h, 0045004200360031h
 
 
-; Total bytes of code 1147, prolog size 33, PerfScore 181.17, instruction count 282, allocated bytes for code 1147 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
+Total bytes of code 1142, prolog size 33, PerfScore 181.17, instruction count 281, allocated bytes for code 1142 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-9 (-0.32%) : 227184.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)

@@ -24,16 +24,16 @@
 ;  V13 loc11        [V13,T14] (  3,  8.50)   ubyte  ->  rbp         ld-addr-op
 ;  V14 loc12        [V14,T15] (  3,  8.50)   ubyte  ->  r15         ld-addr-op
 ;  V15 OutArgs      [V15    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V16 tmp1         [V16,T95] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V16 tmp1         [V16,T94] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V17 tmp2         [V17    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V18 tmp3         [V18,T96] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V19 tmp4         [V19,T97] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V20 tmp5         [V20,T98] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V21 tmp6         [V21,T99] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V22 tmp7         [V22,T100] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V23 tmp8         [V23,T101] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V24 tmp9         [V24,T102] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V25 tmp10        [V25,T103] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V18 tmp3         [V18,T95] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V19 tmp4         [V19,T96] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V20 tmp5         [V20,T97] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V21 tmp6         [V21,T98] (  3,  0   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V22 tmp7         [V22,T99] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V23 tmp8         [V23,T100] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V24 tmp9         [V24,T101] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V25 tmp10        [V25,T102] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V26 tmp11        [V26,T82] (  3,  1.50)     ref  ->  r15         class-hnd "Inline return value spill temp" <System.String>
 ;  V27 tmp12        [V27,T28] (  4,  6   )     ref  ->  rbp         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V28 tmp13        [V28,T45] (  5,  3.08)     int  ->  r14         single-def "Inline stloc first use temp"
@@ -119,7 +119,7 @@
 ;* V108 tmp93       [V108    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V109 tmp94       [V109    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
 ;  V110 tmp95       [V110,T51] (  3,  3   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V111 tmp96       [V111,T104] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V111 tmp96       [V111,T103] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V112 tmp97       [V112,T12] (  4, 10   )     ref  ->  rcx         class-hnd "Inline return value spill temp" <System.String>
 ;  V113 tmp98       [V113,T00] (  4, 24   )     ref  ->  rsi         class-hnd exact "Inlining Arg" <System.String>
 ;  V114 tmp99       [V114,T02] (  5, 12.34)     int  ->  r13         "Inline stloc first use temp"
@@ -134,7 +134,7 @@
 ;  V123 tmp108      [V123,T24] (  2,  8   )    long  ->   r8         "Inlining Arg"
 ;* V124 tmp109      [V124    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V125 tmp110      [V125    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
-;  V126 tmp111      [V126,T105] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V126 tmp111      [V126,T104] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V127 tmp112      [V127,T13] (  4, 10   )     ref  ->  rcx         class-hnd "Inline return value spill temp" <System.String>
 ;  V128 tmp113      [V128,T01] (  4, 24   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.String>
 ;  V129 tmp114      [V129,T03] (  5, 12.34)     int  ->  r13         "Inline stloc first use temp"
@@ -173,32 +173,32 @@
 ;* V162 tmp147      [V162    ] (  0,  0   )     int  ->  zero-ref    single-def "field V106._length (fldOffset=0x8)" P-INDEP
 ;* V163 tmp148      [V163    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V108._reference (fldOffset=0x0)" P-INDEP
 ;* V164 tmp149      [V164    ] (  0,  0   )     int  ->  zero-ref    single-def "field V108._length (fldOffset=0x8)" P-INDEP
-;  V165 tmp150      [V165,T106] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V166 tmp151      [V166,T107] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V167 tmp152      [V167,T108] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V168 tmp153      [V168,T109] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V169 tmp154      [V169,T110] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V170 tmp155      [V170,T111] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V171 tmp156      [V171,T112] (  2,  0   )     ref  ->   r8         "argument with side effect"
-;  V172 tmp157      [V172,T113] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V173 tmp158      [V173,T114] (  2,  0   )     ref  ->   r8         "argument with side effect"
-;  V174 tmp159      [V174,T115] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V175 tmp160      [V175,T116] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V176 tmp161      [V176,T117] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V177 tmp162      [V177,T118] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V178 tmp163      [V178,T119] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
-;  V179 tmp164      [V179,T120] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V180 tmp165      [V180,T121] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V181 tmp166      [V181,T122] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V182 tmp167      [V182,T123] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V183 tmp168      [V183,T124] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V184 tmp169      [V184,T125] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V185 tmp170      [V185,T126] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V186 tmp171      [V186,T127] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V187 tmp172      [V187,T128] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V188 tmp173      [V188,T129] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V189 tmp174      [V189,T130] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V190 tmp175      [V190,T131] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V165 tmp150      [V165,T105] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V166 tmp151      [V166,T106] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V167 tmp152      [V167,T107] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V168 tmp153      [V168,T108] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V169 tmp154      [V169,T109] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V170 tmp155      [V170,T110] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V171 tmp156      [V171,T111] (  2,  0   )     ref  ->   r8         "argument with side effect"
+;  V172 tmp157      [V172,T112] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V173 tmp158      [V173,T113] (  2,  0   )     ref  ->   r8         "argument with side effect"
+;  V174 tmp159      [V174,T114] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V175 tmp160      [V175,T115] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V176 tmp161      [V176,T116] (  2,  0   )     ref  ->  rbx         single-def "argument with side effect"
+;  V177 tmp162      [V177,T117] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V178 tmp163      [V178,T118] (  2,  0   )     ref  ->  r13         single-def "argument with side effect"
+;  V179 tmp164      [V179,T119] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V180 tmp165      [V180,T120] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V181 tmp166      [V181,T121] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V182 tmp167      [V182,T122] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V183 tmp168      [V183,T123] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V184 tmp169      [V184,T124] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V185 tmp170      [V185,T125] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V186 tmp171      [V186,T126] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V187 tmp172      [V187,T127] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V188 tmp173      [V188,T128] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V189 tmp174      [V189,T129] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V190 tmp175      [V190,T130] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
 ;  V191 cse0        [V191,T83] (  3,  1.50)   byref  ->  r13         "CSE - conservative"
 ;  V192 cse1        [V192,T84] (  3,  1.50)   byref  ->  r13         "CSE - conservative"
 ;  V193 cse2        [V193,T85] (  3,  1.50)   byref  ->  r13         "CSE - conservative"
@@ -206,7 +206,6 @@
 ;  V195 cse4        [V195,T06] (  3, 12   )     ref  ->  r13         "CSE - aggressive"
 ;  V196 cse5        [V196,T07] (  3, 12   )     ref  ->  r13         "CSE - aggressive"
 ;  V197 cse6        [V197,T08] (  3, 12   )     ref  ->  r13         "CSE - aggressive"
-;  V198 cse7        [V198,T94] ( 12,  0   )     ref  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 104
 
@@ -1113,33 +1112,31 @@ G_M39588_IG56:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=37 bbWeight=0 PerfScore 0.00
 G_M39588_IG57:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx]
-       mov      r15, 0xD1FFAB1E
-       ; gcrRegs +[r15]
-       mov      rcx, r15
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        jmp      G_M39588_IG12
-                       ;; size=18 bbWeight=0 PerfScore 0.00
+                       ;; size=15 bbWeight=0 PerfScore 0.00
 G_M39588_IG58:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx rbx r15]
+       ; gcrRegs -[rcx rbx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
+       mov      rbx, rax
+       ; gcrRegs +[rbx]
        call     [<unknown method>]
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, r15
+       mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rdx]
        ; gcr arg pop 0
-       mov      rcx, r15
+       mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     CORINFO_HELP_THROW
-       ; gcrRegs -[rcx r15]
+       ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
                        ;; size=44 bbWeight=0 PerfScore 0.00
 G_M39588_IG59:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -1159,36 +1156,12 @@ G_M39588_IG59:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=38 bbWeight=0 PerfScore 0.00
 G_M39588_IG60:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx]
-       mov      r15, 0xD1FFAB1E
-       ; gcrRegs +[r15]
-       mov      rcx, r15
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        jmp      G_M39588_IG15
-                       ;; size=18 bbWeight=0 PerfScore 0.00
+                       ;; size=15 bbWeight=0 PerfScore 0.00
 G_M39588_IG61:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx rbx r15]
-       mov      rcx, 0xD1FFAB1E      ; <unknown class>
-       call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[rax]
-       ; gcr arg pop 0
-       mov      r15, rax
-       ; gcrRegs +[r15]
-       call     [<unknown method>]
-       ; gcr arg pop 0
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
-       ; gcr arg pop 0
-       mov      rcx, r15
-       ; gcrRegs +[rcx]
-       call     CORINFO_HELP_THROW
-       ; gcrRegs -[rcx r15]
-       ; gcr arg pop 0
-                       ;; size=44 bbWeight=0 PerfScore 0.00
-G_M39588_IG62:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rcx rbx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -1197,38 +1170,60 @@ G_M39588_IG62:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcr arg pop 0
+       mov      rdx, rax
+       ; gcrRegs +[rdx]
+       mov      rcx, rsi
+       ; gcrRegs +[rcx]
+       call     [<unknown method>]
+       ; gcrRegs -[rax rcx rdx]
+       ; gcr arg pop 0
+       mov      rcx, rsi
+       ; gcrRegs +[rcx]
+       call     CORINFO_HELP_THROW
+       ; gcrRegs -[rcx rsi]
+       ; gcr arg pop 0
+                       ;; size=44 bbWeight=0 PerfScore 0.00
+G_M39588_IG62:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      rcx, 0xD1FFAB1E      ; <unknown class>
+       call     CORINFO_HELP_NEWSFAST
+       ; gcrRegs +[rax]
+       ; gcr arg pop 0
        mov      rdi, rax
        ; gcrRegs +[rdi]
+       call     [<unknown method>]
+       ; gcr arg pop 0
+       mov      rbx, rax
+       ; gcrRegs +[rbx]
        mov      ecx, 0x1329
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, rdi
+       mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rdi]
+       ; gcrRegs -[rcx rdx rbx]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      r13, rax
+       ; gcrRegs +[r13]
        mov      ecx, 0x12F9
        mov      rdx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        ; gcr arg pop 0
        mov      r8, rax
        ; gcrRegs +[r8]
-       mov      rdx, rbx
+       mov      rdx, r13
        ; gcrRegs +[rdx]
-       mov      rcx, rsi
+       mov      rcx, rdi
        ; gcrRegs +[rcx]
...

+28 (+2.54%) : 232825.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  r14        
 ;  V10 loc7         [V10,T08] (  3, 12   )     ref  ->   r8         class-hnd <System.Xml.XmlDictionaryString>
 ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T23] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T24] (  3,  0   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->  rcx         "Inlining Arg"
+;  V17 tmp6         [V17,T19] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  rsi         "Inlining Arg"
-;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V19 tmp8         [V19,T25] (  3,  0   )     int  ->  rsi         "Inlining Arg"
+;  V20 tmp9         [V20,T29] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T39] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V26 tmp15        [V26,T30] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->  rcx         "Inlining Arg"
+;  V28 tmp17        [V28,T20] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  rbp         "Inlining Arg"
+;  V30 tmp19        [V30,T26] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V31 tmp20        [V31,T31] (  2,  0   )   byref  ->  rbp         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V37 tmp26        [V37,T32] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->  rcx         "Inlining Arg"
+;  V41 tmp30        [V41,T21] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  rsi         "Inlining Arg"
-;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V43 tmp32        [V43,T27] (  3,  0   )     int  ->  rsi         "Inlining Arg"
+;  V44 tmp33        [V44,T33] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V50 tmp39        [V50,T34] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  rbx         "Inlining Arg"
+;  V52 tmp41        [V52,T22] (  4,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  rsi         "Inlining Arg"
+;  V54 tmp43        [V54,T28] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V55 tmp44        [V55,T35] (  2,  0   )   byref  ->  rsi         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V61 tmp50        [V61,T36] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T06] (  4, 12   )     int  ->  r13         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.24)     ref  ->  r15         class-hnd exact "Inlining Arg" <System.String>
@@ -106,11 +106,10 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T09] (  3, 12   )     ref  ->   r8         "arr expr"
-;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V98 tmp87        [V98,T37] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V99 tmp88        [V99,T38] (  2,  0   )     ref  ->  rdx         "argument with side effect"
 ;  V100 cse0        [V100,T17] (  3,  3   )     ref  ->  rcx         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  6, 10   )     int  ->  rbp         multi-def "CSE - aggressive"
-;  V102 cse2        [V102,T19] ( 12,  0   )     ref  ->  rdx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
@@ -384,15 +383,15 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      esi, dword ptr [rsp+0x48]
        sub      esi, ecx
        jns      SHORT G_M45430_IG30
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        ; byrRegs -[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=74 bbWeight=0 PerfScore 0.00
+                       ;; size=81 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 11
        jb       SHORT G_M45430_IG31
@@ -433,15 +432,15 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r15d, dword ptr [rsp+0x48]
        sub      r15d, ecx
        jns      SHORT G_M45430_IG33
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        ; byrRegs -[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=67 bbWeight=0 PerfScore 0.00
+                       ;; size=74 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
        test     r15d, r15d
        je       SHORT G_M45430_IG34
@@ -513,15 +512,15 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      esi, dword ptr [rsp+0x48]
        sub      esi, ecx
        jns      SHORT G_M45430_IG38
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        ; byrRegs -[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=74 bbWeight=0 PerfScore 0.00
+                       ;; size=81 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 11
        jb       SHORT G_M45430_IG39
@@ -569,15 +568,15 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      edi, dword ptr [rsp+0x48]
        sub      edi, ebx
        jns      SHORT G_M45430_IG43
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       mov      rcx, rdx
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        ; byrRegs -[rcx]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        test     edi, edi
        je       SHORT G_M45430_IG44
@@ -625,7 +624,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=50 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1104, prolog size 40, PerfScore 236.59, instruction count 286, allocated bytes for code 1104 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1132, prolog size 40, PerfScore 236.59, instruction count 286, allocated bytes for code 1132 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+18 (+3.56%) : 233543.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)

@@ -16,29 +16,29 @@
 ;  V05 loc2         [V05,T02] (  4, 12.50)     ref  ->  r15         class-hnd <System.Xml.XmlDictionaryString>
 ;  V06 loc3         [V06    ] ( 17,  0   )  struct (40) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T14] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V08 tmp1         [V08,T13] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V10 tmp3         [V10,T12] (  4,  0   )     int  ->  rcx         "Inlining Arg"
+;  V10 tmp3         [V10,T11] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V12 tmp5         [V12,T15] (  3,  0   )     int  ->  rsi         "Inlining Arg"
-;  V13 tmp6         [V13,T17] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V12 tmp5         [V12,T14] (  3,  0   )     int  ->  rsi         "Inlining Arg"
+;  V13 tmp6         [V13,T16] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp9         [V16,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp9         [V16,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T18] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V19 tmp12        [V19,T17] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V21 tmp14        [V21,T13] (  4,  0   )     int  ->  rbx         "Inlining Arg"
+;  V21 tmp14        [V21,T12] (  4,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V23 tmp16        [V23,T16] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V24 tmp17        [V24,T19] (  2,  0   )   byref  ->  rsi         "Inlining Arg"
+;  V23 tmp16        [V23,T15] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V24 tmp17        [V24,T18] (  2,  0   )   byref  ->  rsi         "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V27 tmp20        [V27,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V27 tmp20        [V27,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T20] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V30 tmp23        [V30,T19] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;  V31 tmp24        [V31,T00] (  5, 26.98)     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;  V32 tmp25        [V32,T10] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V33 tmp26        [V33,T05] (  2,  8   )   byref  ->  rcx         "impAppendStmt"
@@ -59,10 +59,9 @@
 ;* V48 tmp41        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V50 tmp43        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V51 tmp44        [V51,T21] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V52 cse0         [V52,T11] (  6,  0   )     ref  ->  rdx         multi-def "CSE - aggressive"
-;  V53 cse1         [V53,T07] (  3,  6   )     int  ->  r14         "CSE - aggressive"
-;  V54 cse2         [V54,T09] (  3,  5.49)     int  ->   r8         "CSE - aggressive"
+;  V51 tmp44        [V51,T20] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V52 cse0         [V52,T07] (  3,  6   )     int  ->  r14         "CSE - aggressive"
+;  V53 cse1         [V53,T09] (  3,  5.49)     int  ->   r8         "CSE - aggressive"
 ;
 ; Lcl frame size = 72
 
@@ -207,7 +206,7 @@ G_M28309_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcr arg pop 0
        mov      ecx, dword ptr [rsp+0x30]
        cmp      ecx, dword ptr [rsp+0x40]
-       ja       SHORT G_M28309_IG19
+       ja       G_M28309_IG19
        mov      rdx, bword ptr [rsp+0x38]
        ; byrRegs +[rdx]
        mov      eax, ecx
@@ -216,15 +215,15 @@ G_M28309_IG15:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      esi, dword ptr [rsp+0x40]
        sub      esi, ecx
        jns      SHORT G_M28309_IG16
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        ; byrRegs -[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=70 bbWeight=0 PerfScore 0.00
+                       ;; size=81 bbWeight=0 PerfScore 0.00
 G_M28309_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 8
        jb       SHORT G_M28309_IG17
@@ -270,15 +269,15 @@ G_M28309_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      edi, dword ptr [rsp+0x40]
        sub      edi, ebx
        jns      SHORT G_M28309_IG21
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       mov      rcx, rdx
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        ; byrRegs -[rcx]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M28309_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        test     edi, edi
        je       SHORT G_M28309_IG22
@@ -326,7 +325,7 @@ G_M28309_IG23:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=50 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 506, prolog size 38, PerfScore 88.54, instruction count 141, allocated bytes for code 506 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
+Total bytes of code 524, prolog size 38, PerfScore 88.54, instruction count 141, allocated bytes for code 524 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+18 (+3.63%) : 233542.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)

@@ -16,29 +16,29 @@
 ;  V05 loc2         [V05,T01] (  6, 16.25)     ref  ->  r15         class-hnd exact <System.String>
 ;  V06 loc3         [V06    ] ( 17,  0   )  struct (40) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T13] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V08 tmp1         [V08,T12] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V10 tmp3         [V10,T11] (  4,  0   )     int  ->  rcx         "Inlining Arg"
+;  V10 tmp3         [V10,T10] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V12 tmp5         [V12,T14] (  3,  0   )     int  ->  rsi         "Inlining Arg"
-;  V13 tmp6         [V13,T16] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V12 tmp5         [V12,T13] (  3,  0   )     int  ->  rsi         "Inlining Arg"
+;  V13 tmp6         [V13,T15] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp9         [V16,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp9         [V16,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T17] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V19 tmp12        [V19,T16] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V21 tmp14        [V21,T12] (  4,  0   )     int  ->  rbx         "Inlining Arg"
+;  V21 tmp14        [V21,T11] (  4,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V23 tmp16        [V23,T15] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V24 tmp17        [V24,T18] (  2,  0   )   byref  ->  rsi         "Inlining Arg"
+;  V23 tmp16        [V23,T14] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V24 tmp17        [V24,T17] (  2,  0   )   byref  ->  rsi         "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V27 tmp20        [V27,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V27 tmp20        [V27,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T19] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V30 tmp23        [V30,T18] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;  V31 tmp24        [V31,T09] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V32 tmp25        [V32,T04] (  2,  8   )   byref  ->  rcx         "impAppendStmt"
 ;* V33 tmp26        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -58,10 +58,9 @@
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp41        [V48    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V50 tmp43        [V50,T20] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V51 cse0         [V51,T10] (  6,  0   )     ref  ->  rdx         multi-def "CSE - aggressive"
-;  V52 cse1         [V52,T06] (  3,  6   )     int  ->  r14         "CSE - aggressive"
-;  V53 cse2         [V53,T08] (  3,  5.49)     int  ->   r8         "CSE - aggressive"
+;  V50 tmp43        [V50,T19] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V51 cse0         [V51,T06] (  3,  6   )     int  ->  r14         "CSE - aggressive"
+;  V52 cse1         [V52,T08] (  3,  5.49)     int  ->   r8         "CSE - aggressive"
 ;
 ; Lcl frame size = 72
 
@@ -199,7 +198,7 @@ G_M58179_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; gcr arg pop 0
        mov      ecx, dword ptr [rsp+0x30]
        cmp      ecx, dword ptr [rsp+0x40]
-       ja       SHORT G_M58179_IG18
+       ja       G_M58179_IG18
        mov      rdx, bword ptr [rsp+0x38]
        ; byrRegs +[rdx]
        mov      eax, ecx
@@ -208,15 +207,15 @@ G_M58179_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      esi, dword ptr [rsp+0x40]
        sub      esi, ecx
        jns      SHORT G_M58179_IG15
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        ; byrRegs -[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=70 bbWeight=0 PerfScore 0.00
+                       ;; size=81 bbWeight=0 PerfScore 0.00
 G_M58179_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 8
        jb       SHORT G_M58179_IG16
@@ -262,15 +261,15 @@ G_M58179_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      edi, dword ptr [rsp+0x40]
        sub      edi, ebx
        jns      SHORT G_M58179_IG20
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       mov      rcx, rdx
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        ; byrRegs -[rcx]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M58179_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        test     edi, edi
        je       SHORT G_M58179_IG21
@@ -318,7 +317,7 @@ G_M58179_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=50 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 496, prolog size 38, PerfScore 77.99, instruction count 138, allocated bytes for code 496 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
+Total bytes of code 514, prolog size 38, PerfScore 77.99, instruction count 138, allocated bytes for code 514 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries_tests.run.windows.x64.Release.mch

-20 (-2.50%) : 386559.dasm - System.Resources.ResourceManager:GetResourceFileName(System.Globalization.CultureInfo):System.String:this (Tier1)

@@ -26,35 +26,35 @@
 ;  V14 tmp12        [V14,T13] (  4,  3   )     ref  ->  rdi        
 ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V16 tmp14        [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V17 tmp15        [V17,T23] (  5,  0   )     ref  ->  rdi        
+;  V17 tmp15        [V17,T22] (  6,  0   )     ref  ->  rdi        
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V19 tmp17        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V20 tmp18        [V20,T32] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.String>
-;  V21 tmp19        [V21,T27] (  4,  0   )     ref  ->  rdi        
+;  V20 tmp18        [V20,T31] (  2,  0   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <System.String>
+;  V21 tmp19        [V21,T26] (  5,  0   )     ref  ->  rcx        
 ;  V22 tmp20        [V22,T09] (  2,  4   )     ref  ->  rbp         class-hnd exact single-def "dup spill" <System.String>
 ;  V23 tmp21        [V23,T14] (  4,  3   )     ref  ->  rbp        
 ;* V24 tmp22        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V25 tmp23        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V26 tmp24        [V26,T24] (  5,  0   )     ref  ->  rbp        
+;  V26 tmp24        [V26,T23] (  6,  0   )     ref  ->  rbp        
 ;* V27 tmp25        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V28 tmp26        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V29 tmp27        [V29,T33] (  2,  0   )     ref  ->  rbp         class-hnd exact single-def "dup spill" <System.String>
-;  V30 tmp28        [V30,T28] (  4,  0   )     ref  ->  rbp        
+;  V29 tmp27        [V29,T32] (  2,  0   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <System.String>
+;  V30 tmp28        [V30,T27] (  5,  0   )     ref  ->  rcx        
 ;  V31 tmp29        [V31,T15] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V32 tmp30        [V32,T10] (  2,  4   )   byref  ->  rcx         single-def "impAppendStmt"
 ;  V33 tmp31        [V33,T17] (  2,  2   )     ref  ->  r14         class-hnd exact single-def "dup spill" <System.String>
 ;  V34 tmp32        [V34,T19] (  4,  1.50)     ref  ->  r14        
 ;* V35 tmp33        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V36 tmp34        [V36    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V37 tmp35        [V37,T25] (  5,  0   )     ref  ->  r14        
+;  V37 tmp35        [V37,T24] (  6,  0   )     ref  ->  r14        
 ;* V38 tmp36        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V39 tmp37        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V40 tmp38        [V40,T34] (  2,  0   )     ref  ->  r14         class-hnd exact single-def "dup spill" <System.String>
-;  V41 tmp39        [V41,T29] (  4,  0   )     ref  ->  r14        
+;  V40 tmp38        [V40,T33] (  2,  0   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <System.String>
+;  V41 tmp39        [V41,T28] (  5,  0   )     ref  ->  rcx        
 ;* V42 tmp40        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V43 tmp41        [V43,T01] (  5, 10.50)     int  ->  r15         "Inline stloc first use temp"
 ;  V44 tmp42        [V44,T03] (  6,  8   )  ushort  ->  r12         "Inline stloc first use temp"
-;  V45 tmp43        [V45,T31] (  3,  0   )     ref  ->  rdi         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V45 tmp43        [V45,T30] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V46 tmp44        [V46,T07] (  3,  5   )     int  ->  rax        
 ;* V47 tmp45        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V48 tmp46        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -67,11 +67,11 @@
 ;  V55 tmp53        [V55,T20] (  4,  1.50)     ref  ->   r8        
 ;* V56 tmp54        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "dup spill" <System.String>
 ;* V57 tmp55        [V57    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V58 tmp56        [V58,T26] (  5,  0   )     ref  ->  rdi        
+;  V58 tmp56        [V58,T25] (  6,  0   )     ref  ->  rdi        
 ;* V59 tmp57        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
 ;* V60 tmp58        [V60    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureData>
-;  V61 tmp59        [V61,T35] (  2,  0   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.String>
-;  V62 tmp60        [V62,T30] (  4,  0   )     ref  ->  rdi        
+;  V61 tmp59        [V61,T34] (  2,  0   )     ref  ->  rcx         class-hnd exact single-def "dup spill" <System.String>
+;  V62 tmp60        [V62,T29] (  5,  0   )     ref  ->  rcx        
 ;* V63 tmp61        [V63    ] (  0,  0   )   byref  ->  zero-ref    "field V47._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp62        [V64    ] (  0,  0   )     int  ->  zero-ref    "field V47._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp63        [V65    ] (  0,  0   )   byref  ->  zero-ref    "field V48._reference (fldOffset=0x0)" P-INDEP
@@ -84,10 +84,9 @@
 ;* V72 tmp70        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x8)" P-INDEP
 ;* V73 tmp71        [V73    ] (  0,  0   )   byref  ->  zero-ref    "field V53._reference (fldOffset=0x0)" P-INDEP
 ;* V74 tmp72        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
-;  V75 tmp73        [V75,T36] (  2,  0   )     ref  ->  rcx         "argument with side effect"
-;  V76 tmp74        [V76,T37] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V77 cse0         [V77,T22] ( 16,  0   )     ref  ->  registers   multi-def "CSE - aggressive"
-;  V78 cse1         [V78,T12] (  3,  3.50)     int  ->  r13         "CSE - moderate"
+;  V75 tmp73        [V75,T35] (  2,  0   )     ref  ->  rcx         "argument with side effect"
+;  V76 tmp74        [V76,T36] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V77 cse0         [V77,T12] (  3,  3.50)     int  ->  r13         "CSE - moderate"
 ;
 ; Lcl frame size = 40
 
@@ -109,88 +108,76 @@ G_M51875_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M51875_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rax, 0xD1FFAB1E      ; System.Globalization.CultureInfo
        cmp      qword ptr [rbx], rax
-       jne      G_M51875_IG38
+       jne      G_M51875_IG31
        mov      rdi, gword ptr [rbx+0x48]
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       jne      SHORT G_M51875_IG06
+       jne      SHORT G_M51875_IG04
                        ;; size=28 bbWeight=1 PerfScore 7.50
-G_M51875_IG03:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG03:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdi]
        mov      rcx, gword ptr [rbx+0x30]
        ; gcrRegs +[rcx]
-       mov      rdi, gword ptr [rcx+0x18]
+       mov      rcx, gword ptr [rcx+0x18]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
+       test     rcx, rcx
+       cmove    rcx, rdx
+       mov      rdi, rcx
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       jne      SHORT G_M51875_IG04
-       mov      rdi, 0xD1FFAB1E
-                       ;; size=23 bbWeight=0 PerfScore 0.00
-G_M51875_IG04:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rcx]
-       test     rdi, rdi
-       jne      SHORT G_M51875_IG05
-       mov      rdi, 0xD1FFAB1E
-                       ;; size=15 bbWeight=0 PerfScore 0.00
-G_M51875_IG05:        ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
+       cmove    rdi, rdx
        lea      rcx, bword ptr [rbx+0x48]
+       ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
        mov      rdx, rdi
-       ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rdx]
        ; byrRegs -[rcx]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG06:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+                       ;; size=47 bbWeight=0 PerfScore 0.00
+G_M51875_IG04:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        call     [<unknown method>]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rcx, 0xD1FFAB1E      ; System.Globalization.CultureInfo
        cmp      qword ptr [rax], rcx
-       jne      G_M51875_IG39
+       jne      G_M51875_IG32
        mov      rbp, gword ptr [rax+0x48]
        ; gcrRegs +[rbp]
        test     rbp, rbp
-       jne      SHORT G_M51875_IG10
+       jne      SHORT G_M51875_IG06
                        ;; size=34 bbWeight=1 PerfScore 10.50
-G_M51875_IG07:        ; bbWeight=0, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG05:        ; bbWeight=0, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbp]
        mov      rcx, gword ptr [rax+0x30]
        ; gcrRegs +[rcx]
-       mov      rbp, gword ptr [rcx+0x18]
+       mov      rcx, gword ptr [rcx+0x18]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
+       test     rcx, rcx
+       cmove    rcx, rdx
+       mov      rbp, rcx
        ; gcrRegs +[rbp]
        test     rbp, rbp
-       jne      SHORT G_M51875_IG08
-       mov      rcx, 0xD1FFAB1E
-       mov      rbp, rcx
-                       ;; size=26 bbWeight=0 PerfScore 0.00
-G_M51875_IG08:        ; bbWeight=0, gcrefRegs=00E9 {rax rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rcx]
-       test     rbp, rbp
-       jne      SHORT G_M51875_IG09
-       mov      rcx, 0xD1FFAB1E
-       ; gcrRegs +[rcx]
-       mov      rbp, rcx
-                       ;; size=18 bbWeight=0 PerfScore 0.00
-G_M51875_IG09:        ; bbWeight=0, gcrefRegs=00E9 {rax rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rcx]
+       cmove    rbp, rdx
        lea      rcx, bword ptr [rax+0x48]
+       ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
        mov      rdx, rbp
-       ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M51875_IG10:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+                       ;; size=47 bbWeight=0 PerfScore 0.00
+G_M51875_IG06:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        cmp      rdi, rbp
-       je       SHORT G_M51875_IG11
+       je       SHORT G_M51875_IG07
        test     rdi, rdi
-       je       G_M51875_IG16
+       je       G_M51875_IG12
        test     rbp, rbp
-       je       G_M51875_IG16
+       je       G_M51875_IG12
        mov      ecx, dword ptr [rdi+0x08]
        cmp      ecx, dword ptr [rbp+0x08]
-       jne      G_M51875_IG16
+       jne      G_M51875_IG12
        mov      ecx, 1
        call     [<unknown method>]
        ; gcr arg pop 0
@@ -214,9 +201,9 @@ G_M51875_IG10:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M51875_IG16
+       je       SHORT G_M51875_IG12
                        ;; size=100 bbWeight=1 PerfScore 33.00
-G_M51875_IG11:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M51875_IG07:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        mov      rcx, gword ptr [rsi+0x08]
        ; gcrRegs +[rcx]
@@ -227,7 +214,7 @@ G_M51875_IG11:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        ; gcr arg pop 0
        nop      
                        ;; size=21 bbWeight=0.50 PerfScore 2.75
-G_M51875_IG12:        ; bbWeight=0.50, epilog, nogc, extend
+G_M51875_IG08:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
        pop      rbp
@@ -239,32 +226,32 @@ G_M51875_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        pop      r15
        ret      
                        ;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M51875_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, gcvars, byref
+G_M51875_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax] +[rbx rsi r14]
        xor      r15d, r15d
        mov      r13d, dword ptr [r14+0x08]
        test     r13d, r13d
-       jle      G_M51875_IG28
+       jle      G_M51875_IG22
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M51875_IG14:        ; bbWeight=2.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG10:        ; bbWeight=2.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
        mov      ecx, r15d
        movzx    r12, word  ptr [r14+2*rcx+0x0C]
        cmp      r12d, 256
-       jb       SHORT G_M51875_IG23
+       jb       SHORT G_M51875_IG17
                        ;; size=18 bbWeight=2.50 PerfScore 8.75
-G_M51875_IG15:        ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG11:        ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
        mov      ecx, r12d
        call     [System.Globalization.CharUnicodeInfo:GetUnicodeCategoryNoBoundsChecks(uint):int]
        ; gcr arg pop 0
-       jmp      SHORT G_M51875_IG24
+       jmp      SHORT G_M51875_IG18
                        ;; size=11 bbWeight=0 PerfScore 0.00
-G_M51875_IG16:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M51875_IG12:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r14]
        mov      rcx, 0xD1FFAB1E      ; System.Globalization.CultureInfo
        cmp      qword ptr [rbx], rcx
-       je       SHORT G_M51875_IG18
...

-49 (-2.30%) : 308760.dasm - System.IO.Tests.DirectoryGetFileSystemEntriesstr_str:PrepareDirectory(System.String[],ubyte):System.String:this (Tier1)

@@ -9,194 +9,194 @@
 ; 32 inlinees with PGO data; 63 single block inlinees; 12 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T40] ( 10,  5   )     ref  ->  rsi         this class-hnd single-def <System.IO.Tests.Directory_GetFileSystemEntries_str_str>
-;  V01 arg1         [V01,T55] (  3,  3   )     ref  ->  rdi         class-hnd single-def <System.String[]>
-;  V02 arg2         [V02,T39] (  3,  7.76)   ubyte  ->  rbx         single-def
-;  V03 loc0         [V03,T24] ( 14, 19.26)     ref  ->  rbp         class-hnd exact single-def <System.String>
+;  V00 this         [V00,T38] ( 10,  5   )     ref  ->  rsi         this class-hnd single-def <System.IO.Tests.Directory_GetFileSystemEntries_str_str>
+;  V01 arg1         [V01,T53] (  3,  3   )     ref  ->  rdi         class-hnd single-def <System.String[]>
+;  V02 arg2         [V02,T37] (  3,  7.76)   ubyte  ->  rbx         single-def
+;  V03 loc0         [V03,T23] ( 14, 19.26)     ref  ->  rbp         class-hnd exact single-def <System.String>
 ;* V04 loc1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
-;  V05 loc2         [V05,T34] (  4, 13.52)     ref  ->  rdi         class-hnd exact single-def <System.String[]>
+;  V05 loc2         [V05,T33] (  4, 13.52)     ref  ->  rdi         class-hnd exact single-def <System.String[]>
 ;  V06 loc3         [V06,T22] (  5, 24.03)     int  ->  r14        
 ;  V07 loc4         [V07,T04] ( 13,115.15)     ref  ->  r13         class-hnd exact <System.String>
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref   
-;  V11 tmp3         [V11,T35] ( 15, 10.91)     ref  ->  r13        
-;  V12 tmp4         [V12,T54] (  8,  5.64)     ref  ->  r15         "guarded devirt return temp"
+;  V11 tmp3         [V11,T13] ( 23, 58.17)     ref  ->  r13        
+;  V12 tmp4         [V12,T52] (  8,  5.64)     ref  ->  r15         "guarded devirt return temp"
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.IO.Tests.Directory_EnumDir_str_str_so>
 ;* V14 tmp6         [V14    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Nullable`1[int]>
-;  V15 tmp7         [V15,T64] (  7,  2.88)     ref  ->  rbp         class-hnd exact single-def "non-inline candidate call" <System.String>
-;  V16 tmp8         [V16,T56] (  9,  4.32)     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V17 tmp9         [V17,T87] (  4,  0   )     ref  ->  r15         class-hnd "Inline return value spill temp" <System.String>
+;  V15 tmp7         [V15,T62] (  7,  2.88)     ref  ->  rbp         class-hnd exact single-def "non-inline candidate call" <System.String>
+;  V16 tmp8         [V16,T54] (  9,  4.32)     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V17 tmp9         [V17,T85] (  4,  0   )     ref  ->  r15         class-hnd "Inline return value spill temp" <System.String>
 ;* V18 tmp10        [V18    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V19 tmp11        [V19    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V21 tmp13        [V21,T80] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V22 tmp14        [V22,T81] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V21 tmp13        [V21,T78] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V22 tmp14        [V22,T79] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp15        [V23    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V24 tmp16        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V25 tmp17        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V26 tmp18        [V26,T71] (  2,  1.44)     int  ->  r12         "Inlining Arg"
-;  V27 tmp19        [V27,T70] (  2,  1.44)   byref  ->  r15         single-def "Inlining Arg"
-;* V28 tmp20        [V28,T123] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V26 tmp18        [V26,T69] (  2,  1.44)     int  ->  r12         "Inlining Arg"
+;  V27 tmp19        [V27,T68] (  2,  1.44)   byref  ->  r15         single-def "Inlining Arg"
+;* V28 tmp20        [V28,T121] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V29 tmp21        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V30 tmp22        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V31 tmp23        [V31,T82] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V32 tmp24        [V32,T68] (  3,  2.09)  ushort  ->  rcx         "Inlining Arg"
+;* V31 tmp23        [V31,T80] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V32 tmp24        [V32,T66] (  3,  2.09)  ushort  ->  rcx         "Inlining Arg"
 ;* V33 tmp25        [V33    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp26        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V35 tmp27        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V36 tmp28        [V36,T124] (  2,  0   )     int  ->  r13         "Inlining Arg"
-;  V37 tmp29        [V37,T94] (  2,  0   )   byref  ->  r15         single-def "Inlining Arg"
+;  V36 tmp28        [V36,T122] (  2,  0   )     int  ->  r13         "Inlining Arg"
+;  V37 tmp29        [V37,T92] (  2,  0   )   byref  ->  r15         single-def "Inlining Arg"
 ;* V38 tmp30        [V38    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V39 tmp31        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp32        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V41 tmp33        [V41,T125] (  2,  0   )     int  ->  rbp         "Inlining Arg"
-;  V42 tmp34        [V42,T95] (  2,  0   )   byref  ->  r12         single-def "Inlining Arg"
+;  V41 tmp33        [V41,T123] (  2,  0   )     int  ->  rbp         "Inlining Arg"
+;  V42 tmp34        [V42,T93] (  2,  0   )   byref  ->  r12         single-def "Inlining Arg"
 ;* V43 tmp35        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.IO.DirectoryInfo>
-;  V44 tmp36        [V44,T63] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <System.String>
-;  V45 tmp37        [V45,T33] (  7, 14   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
-;* V46 tmp38        [V46,T74] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V47 tmp39        [V47,T38] (  5, 10   )     ref  ->  r14         class-hnd "Inlining Arg" <System.String>
+;  V44 tmp36        [V44,T61] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "Inline stloc first use temp" <System.String>
+;  V45 tmp37        [V45,T32] (  7, 14   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
+;* V46 tmp38        [V46,T72] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V47 tmp39        [V47,T36] (  5, 10   )     ref  ->  r14         class-hnd "Inlining Arg" <System.String>
 ;* V48 tmp40        [V48    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V49 tmp41        [V49    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Runtime.InteropServices.OSPlatform>
 ;* V50 tmp42        [V50    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Runtime.InteropServices.OSPlatform>
 ;* V51 tmp43        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V52 tmp44        [V52    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
-;* V53 tmp45        [V53,T52] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
-;  V54 tmp46        [V54,T88] (  4,  0   )     ref  ->  r13         class-hnd "Inline return value spill temp" <System.String>
+;* V53 tmp45        [V53,T50] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
+;  V54 tmp46        [V54,T86] (  4,  0   )     ref  ->  r13         class-hnd "Inline return value spill temp" <System.String>
 ;* V55 tmp47        [V55    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V56 tmp48        [V56    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp49        [V57    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V58 tmp50        [V58,T65] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V59 tmp51        [V59,T66] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V58 tmp50        [V58,T63] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V59 tmp51        [V59,T64] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V60 tmp52        [V60    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V61 tmp53        [V61    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V62 tmp54        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V63 tmp55        [V63,T03] (  2,158.90)     int  ->  [rsp+0x84]  spill-single-def "Inlining Arg"
+;  V63 tmp55        [V63,T03] (  2,158.90)     int  ->  [rsp+0x64]  spill-single-def "Inlining Arg"
 ;  V64 tmp56        [V64,T02] (  2,158.90)   byref  ->  r15         "Inlining Arg"
-;* V65 tmp57        [V65,T126] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V65 tmp57        [V65,T124] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V66 tmp58        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V67 tmp59        [V67    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V68 tmp60        [V68,T67] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V69 tmp61        [V69,T32] (  3, 14.39)  ushort  ->  rax         "Inlining Arg"
+;* V68 tmp60        [V68,T65] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V69 tmp61        [V69,T31] (  3, 14.39)  ushort  ->  rax         "Inlining Arg"
 ;* V70 tmp62        [V70    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V71 tmp63        [V71    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V72 tmp64        [V72    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V73 tmp65        [V73,T127] (  2,  0   )     int  ->  [rsp+0x80]  spill-single-def "Inlining Arg"
-;  V74 tmp66        [V74,T96] (  2,  0   )   byref  ->  r15         "Inlining Arg"
+;  V73 tmp65        [V73,T125] (  2,  0   )     int  ->  [rsp+0x60]  spill-single-def "Inlining Arg"
+;  V74 tmp66        [V74,T94] (  2,  0   )   byref  ->  r15         "Inlining Arg"
 ;* V75 tmp67        [V75    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp68        [V76    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V77 tmp69        [V77    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V78 tmp70        [V78,T128] (  2,  0   )     int  ->  r12         "Inlining Arg"
-;  V79 tmp71        [V79,T97] (  2,  0   )   byref  ->  r13         "Inlining Arg"
-;  V80 tmp72        [V80,T89] (  4,  0   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <System.String>
+;  V78 tmp70        [V78,T126] (  2,  0   )     int  ->  r12         "Inlining Arg"
+;  V79 tmp71        [V79,T95] (  2,  0   )   byref  ->  r13         "Inlining Arg"
+;  V80 tmp72        [V80,T87] (  4,  0   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <System.String>
 ;* V81 tmp73        [V81    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp74        [V82    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V83 tmp75        [V83    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V84 tmp76        [V84,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V85 tmp77        [V85,T61] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V84 tmp76        [V84,T58] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V85 tmp77        [V85,T59] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V86 tmp78        [V86    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V87 tmp79        [V87    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V88 tmp80        [V88    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V89 tmp81        [V89,T01] (  2,209.66)     int  ->  [rsp+0x7C]  spill-single-def "Inlining Arg"
+;  V89 tmp81        [V89,T01] (  2,209.66)     int  ->  [rsp+0x5C]  spill-single-def "Inlining Arg"
 ;  V90 tmp82        [V90,T00] (  2,209.66)   byref  ->  r15         "Inlining Arg"
-;* V91 tmp83        [V91,T129] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V91 tmp83        [V91,T127] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V92 tmp84        [V92    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V93 tmp85        [V93    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V94 tmp86        [V94,T62] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V95 tmp87        [V95,T25] (  3, 18.99)  ushort  ->  rcx         "Inlining Arg"
+;* V94 tmp86        [V94,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V95 tmp87        [V95,T24] (  3, 18.99)  ushort  ->  rcx         "Inlining Arg"
 ;* V96 tmp88        [V96    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V97 tmp89        [V97    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V98 tmp90        [V98    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V99 tmp91        [V99,T130] (  2,  0   )     int  ->  [rsp+0x78]  spill-single-def "Inlining Arg"
-;  V100 tmp92       [V100,T98] (  2,  0   )   byref  ->  r15         "Inlining Arg"
+;  V99 tmp91        [V99,T128] (  2,  0   )     int  ->  [rsp+0x58]  spill-single-def "Inlining Arg"
+;  V100 tmp92       [V100,T96] (  2,  0   )   byref  ->  r15         "Inlining Arg"
 ;* V101 tmp93       [V101    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V102 tmp94       [V102    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V103 tmp95       [V103    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V104 tmp96       [V104,T131] (  2,  0   )     int  ->  r12         "Inlining Arg"
-;  V105 tmp97       [V105,T99] (  2,  0   )   byref  ->  r13         "Inlining Arg"
-;  V106 tmp98       [V106,T92] (  2,  0   )     int  ->  rax         "guarded devirt return temp"
+;  V104 tmp96       [V104,T129] (  2,  0   )     int  ->  r12         "Inlining Arg"
+;  V105 tmp97       [V105,T97] (  2,  0   )   byref  ->  r13         "Inlining Arg"
+;  V106 tmp98       [V106,T90] (  2,  0   )     int  ->  rax         "guarded devirt return temp"
 ;* V107 tmp99       [V107    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.Directory_EnumDir_str_str_so>
-;  V108 tmp100      [V108,T100] (  2,  0   )     ref  ->  r15         class-hnd "dup spill" <System.Text.Encoding>
-;  V109 tmp101      [V109,T86] (  5,  0   )     ref  ->  r15        
-;  V110 tmp102      [V110,T85] (  6,  0   )     ref  ->  r15         class-hnd exact "NewObj constructor temp" <System.Text.UTF8Encoding>
-;* V111 tmp103      [V111,T147] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V108 tmp100      [V108,T98] (  2,  0   )     ref  ->  r15         class-hnd "dup spill" <System.Text.Encoding>
+;  V109 tmp101      [V109,T84] (  5,  0   )     ref  ->  r15        
+;  V110 tmp102      [V110,T83] (  6,  0   )     ref  ->  r15         class-hnd exact "NewObj constructor temp" <System.Text.UTF8Encoding>
+;* V111 tmp103      [V111,T145] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V112 tmp104      [V112    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.IO.DirectoryInfo>
-;  V113 tmp105      [V113,T37] (  3, 10.91)     ref  ->  r15         class-hnd exact "Inline stloc first use temp" <System.String>
-;  V114 tmp106      [V114,T16] (  6, 43.63)     ref  ->  r12         class-hnd exact "NewObj constructor temp" <System.IO.DirectoryInfo>
-;* V115 tmp107      [V115,T148] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V113 tmp105      [V113,T35] (  3, 10.91)     ref  ->  r12         class-hnd exact "Inline stloc first use temp" <System.String>
+;  V114 tmp106      [V114,T17] (  6, 43.63)     ref  ->  r15         class-hnd exact "NewObj constructor temp" <System.IO.DirectoryInfo>
+;* V115 tmp107      [V115,T146] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V116 tmp108      [V116    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V117 tmp109      [V117,T90] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp" <System.ArgumentException>
-;  V118 tmp110      [V118,T91] (  3,  0   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.ArgumentException>
+;  V117 tmp109      [V117,T88] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp" <System.ArgumentException>
+;  V118 tmp110      [V118,T89] (  3,  0   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.ArgumentException>
 ;* V119 tmp111      [V119    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V120 tmp112      [V120    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V121 tmp113      [V121    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V122 tmp114      [V122,T132] (  2,  0   )     int  ->  [rsp+0x74]  spill-single-def "Inlining Arg"
-;  V123 tmp115      [V123,T101] (  2,  0   )   byref  ->  [rsp+0x30]  spill-single-def "Inlining Arg"
-;* V124 tmp116      [V124,T27] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V122 tmp114      [V122,T130] (  2,  0   )     int  ->  r12         "Inlining Arg"
+;  V123 tmp115      [V123,T99] (  2,  0   )   byref  ->  r15         "Inlining Arg"
+;* V124 tmp116      [V124,T26] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V125 tmp117      [V125    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V126 tmp118      [V126    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V127 tmp119      [V127,T26] (  6, 18.18)     int  ->  rax         "Inline stloc first use temp"
+;  V127 tmp119      [V127,T25] (  6, 18.18)     int  ->  rcx         "Inline stloc first use temp"
 ;* V128 tmp120      [V128    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
-;  V129 tmp121      [V129,T18] (  2, 29.09)   ubyte  ->  rax         "Inline return value spill temp"
-;  V130 tmp122      [V130,T13] (  2, 58.17)   byref  ->  [rsp+0x28]  spill-single-def "Inlining Arg"
-;* V131 tmp123      [V131,T19] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V132 tmp124      [V132,T14] (  2, 58.17)     int  ->  [rsp+0x70]  spill-single-def "Inlining Arg"
-;* V133 tmp125      [V133,T20] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V134 tmp126      [V134,T43] (  3,  7.27)     ref  ->  r15         class-hnd "Inline return value spill temp" <System.String>
+;  V129 tmp121      [V129,T19] (  2, 29.09)   ubyte  ->  rax         "Inline return value spill temp"
+;  V130 tmp122      [V130,T14] (  2, 58.17)   byref  ->  r15         "Inlining Arg"
+;* V131 tmp123      [V131,T20] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
+;  V132 tmp124      [V132,T15] (  2, 58.17)     int  ->  r12         "Inlining Arg"
+;* V133 tmp125      [V133,T21] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
+;  V134 tmp126      [V134,T41] (  3,  7.27)     ref  ->  r12         class-hnd "Inline return value spill temp" <System.String>
 ;* V135 tmp127      [V135    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V136 tmp128      [V136,T46] (  2,  7.27)   ubyte  ->  rcx         "Inline return value spill temp"
-;  V137 tmp129      [V137,T47] (  2,  7.27)   ubyte  ->  rax         "Inline return value spill temp"
-;  V138 tmp130      [V138,T28] (  2, 14.54)   byref  ->  [rsp+0x20]  spill-single-def "Inlining Arg"
-;* V139 tmp131      [V139,T50] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V140 tmp132      [V140,T30] (  2, 14.54)     int  ->  [rsp+0x6C]  spill-single-def "Inlining Arg"
-;* V141 tmp133      [V141,T51] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
+;  V136 tmp128      [V136,T44] (  2,  7.27)   ubyte  ->  rcx         "Inline return value spill temp"
+;  V137 tmp129      [V137,T45] (  2,  7.27)   ubyte  ->  rax         "Inline return value spill temp"
+;  V138 tmp130      [V138,T27] (  2, 14.54)   byref  ->  r15         "Inlining Arg"
+;* V139 tmp131      [V139,T48] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
+;  V140 tmp132      [V140,T29] (  2, 14.54)     int  ->  r12         "Inlining Arg"
+;* V141 tmp133      [V141,T49] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V142 tmp134      [V142    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V143 tmp135      [V143    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V144 tmp136      [V144    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V145 tmp137      [V145,T31] (  2, 14.54)     int  ->  r15         "Inlining Arg"
-;  V146 tmp138      [V146,T29] (  2, 14.54)   byref  ->  r12         "Inlining Arg"
-;  V147 tmp139      [V147,T57] (  2,  0   )   ubyte  ->  rcx         "Inline return value spill temp"
+;  V145 tmp137      [V145,T30] (  2, 14.54)     int  ->  r12         "Inlining Arg"
+;  V146 tmp138      [V146,T28] (  2, 14.54)   byref  ->  r15         "Inlining Arg"
+;  V147 tmp139      [V147,T55] (  2,  0   )   ubyte  ->  rcx         "Inline return value spill temp"
 ;* V148 tmp140      [V148    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V149 tmp141      [V149,T17] (  4, 29.09)     ref  ->  r15         class-hnd "Inlining Arg" <System.String>
+;  V149 tmp141      [V149,T18] (  4, 29.09)     ref  ->  r12         class-hnd "Inlining Arg" <System.String>
 ;* V150 tmp142      [V150    ] (  0,  0   )     ref  ->  zero-ref   
-;* V151 tmp143      [V151,T75] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP
-;* V152 tmp144      [V152,T76] (  0,  0   )     int  ->  zero-ref    single-def "field V04.value (fldOffset=0x4)" P-INDEP
-;* V153 tmp145      [V153,T83] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V14.hasValue (fldOffset=0x0)" P-INDEP
-;* V154 tmp146      [V154,T84] (  0,  0   )     int  ->  zero-ref    single-def "field V14.value (fldOffset=0x4)" P-INDEP
+;* V151 tmp143      [V151,T73] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP
+;* V152 tmp144      [V152,T74] (  0,  0   )     int  ->  zero-ref    single-def "field V04.value (fldOffset=0x4)" P-INDEP
+;* V153 tmp145      [V153,T81] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V14.hasValue (fldOffset=0x0)" P-INDEP
+;* V154 tmp146      [V154,T82] (  0,  0   )     int  ->  zero-ref    single-def "field V14.value (fldOffset=0x4)" P-INDEP
 ;* V155 tmp147      [V155    ] (  0,  0   )   byref  ->  zero-ref    "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp148      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
-;  V157 tmp149      [V157,T102] (  2,  0   )   byref  ->  r15         "field V19._reference (fldOffset=0x0)" P-INDEP
-;  V158 tmp150      [V158,T133] (  2,  0   )     int  ->  r13         "field V19._length (fldOffset=0x8)" P-INDEP
+;  V157 tmp149      [V157,T100] (  2,  0   )   byref  ->  r15         "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V158 tmp150      [V158,T131] (  2,  0   )     int  ->  r13         "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V159 tmp151      [V159    ] (  0,  0   )   byref  ->  zero-ref    "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V160 tmp152      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0x8)" P-INDEP
-;  V161 tmp153      [V161,T69] (  4,  1.44)   byref  ->  r15         "field V23._reference (fldOffset=0x0)" P-INDEP
...

-35 (-1.19%) : 311311.dasm - System.IO.Tests.BaseSymbolicLinksFileSystem:ResolveLinkTargetSucceeds(System.String,ubyte):this (Tier1)

@@ -11,82 +11,82 @@
 ;
 ;  V00 this         [V00,T05] ( 16,  6   )     ref  ->  [rbp+0x10]  this class-hnd single-def <System.IO.Tests.BaseSymbolicLinks_FileSystem>
 ;  V01 arg1         [V01,T08] ( 27,  5.20)     ref  ->  [rbp+0x18]  class-hnd single-def <System.String>
-;  V02 arg2         [V02,T18] (  4,  2   )   ubyte  ->  rdi         single-def
-;  V03 loc0         [V03,T72] ( 12,  0.02)     ref  ->  [rbp-0xB0]  class-hnd exact spill-single-def <System.String>
-;  V04 loc1         [V04,T73] ( 20,  0   )     ref  ->  registers   class-hnd <System.IO.FileSystemInfo>
-;  V05 loc2         [V05,T60] (  6,  1   )     ref  ->  rbx         class-hnd single-def <System.IO.FileSystemInfo>
-;  V06 loc3         [V06,T36] (  2,  2   )     ref  ->  rsi         class-hnd single-def <System.String>
+;  V02 arg2         [V02,T19] (  4,  2   )   ubyte  ->  rdi         single-def
+;  V03 loc0         [V03,T15] ( 19,  5.57)     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def <System.String>
+;  V04 loc1         [V04,T70] ( 20,  0   )     ref  ->  registers   class-hnd <System.IO.FileSystemInfo>
+;  V05 loc2         [V05,T34] (  8,  2   )     ref  ->  rbx         class-hnd single-def <System.IO.FileSystemInfo>
+;  V06 loc3         [V06,T37] (  2,  2   )     ref  ->  rsi         class-hnd single-def <System.String>
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T40] (  3,  1.80)     ref  ->  rsi        
+;  V08 tmp1         [V08,T41] (  3,  1.80)     ref  ->  rsi        
 ;* V09 tmp2         [V09    ] (  0,  0   )     ref  ->  zero-ref    single-def "guarded devirt return temp"
 ;* V10 tmp3         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.FileInfo_SymbolicLinks>
 ;* V11 tmp4         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.FileInfo_SymbolicLinks>
 ;* V12 tmp5         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.FileInfo_SymbolicLinks>
-;  V13 tmp6         [V13,T89] (  3,  0   )     ref  ->  rbx         "guarded devirt return temp"
+;  V13 tmp6         [V13,T86] (  3,  0   )     ref  ->  rbx         "guarded devirt return temp"
 ;* V14 tmp7         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.FileInfo_SymbolicLinks>
-;  V15 tmp8         [V15,T35] (  3,  2   )     ref  ->  rdx         "guarded devirt return temp"
+;  V15 tmp8         [V15,T36] (  3,  2   )     ref  ->  rdx         "guarded devirt return temp"
 ;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.FileInfo>
 ;* V17 tmp10        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.String>
-;  V18 tmp11        [V18,T19] (  2,  4   )     ref  ->  r15         class-hnd exact single-def "dup spill" <System.String>
+;  V18 tmp11        [V18,T20] (  2,  4   )     ref  ->  r15         class-hnd exact single-def "dup spill" <System.String>
 ;  V19 tmp12        [V19,T13] (  9,  6.00)     ref  ->  r15        
 ;  V20 tmp13        [V20,T10] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "dup spill" <System.String>
 ;* V21 tmp14        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]>
 ;  V23 tmp16        [V23,T04] (  9, 11.99)     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V24 tmp17        [V24,T82] (  4,  0   )     ref  ->  r13         class-hnd "Inline return value spill temp" <System.String>
+;  V24 tmp17        [V24,T79] (  4,  0   )     ref  ->  r13         class-hnd "Inline return value spill temp" <System.String>
 ;* V25 tmp18        [V25    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V26 tmp19        [V26    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V27 tmp20        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V28 tmp21        [V28,T62] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V29 tmp22        [V29,T63] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V28 tmp21        [V28,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V29 tmp22        [V29,T61] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V30 tmp23        [V30    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V31 tmp24        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp25        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V33 tmp26        [V33,T22] (  2,  4   )     int  ->  [rbp-0x3C]  spill-single-def "Inlining Arg"
-;  V34 tmp27        [V34,T20] (  2,  4   )   byref  ->  r12         single-def "Inlining Arg"
-;* V35 tmp28        [V35,T128] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V33 tmp26        [V33,T23] (  2,  4   )     int  ->  [rbp-0x3C]  spill-single-def "Inlining Arg"
+;  V34 tmp27        [V34,T21] (  2,  4   )   byref  ->  r12         single-def "Inlining Arg"
+;* V35 tmp28        [V35,T125] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V36 tmp29        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V37 tmp30        [V37    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V38 tmp31        [V38,T64] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V38 tmp31        [V38,T62] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V39 tmp32        [V39,T11] (  3,  6   )  ushort  ->  rax         "Inlining Arg"
 ;* V40 tmp33        [V40    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp34        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V42 tmp35        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V43 tmp36        [V43,T129] (  2,  0   )     int  ->  r15         "Inlining Arg"
-;  V44 tmp37        [V44,T109] (  2,  0   )   byref  ->  r12         single-def "Inlining Arg"
+;  V43 tmp36        [V43,T126] (  2,  0   )     int  ->  r15         "Inlining Arg"
+;  V44 tmp37        [V44,T106] (  2,  0   )   byref  ->  r12         single-def "Inlining Arg"
 ;* V45 tmp38        [V45    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V46 tmp39        [V46    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V47 tmp40        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V48 tmp41        [V48,T130] (  2,  0   )     int  ->  r13         "Inlining Arg"
-;  V49 tmp42        [V49,T110] (  2,  0   )   byref  ->  [rbp-0xB8]  spill-single-def "Inlining Arg"
-;  V50 tmp43        [V50,T78] (  7,  0   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.IO.FileInfo>
-;  V51 tmp44        [V51,T90] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
+;  V48 tmp41        [V48,T127] (  2,  0   )     int  ->  r13         "Inlining Arg"
+;  V49 tmp42        [V49,T107] (  2,  0   )   byref  ->  [rbp-0xA8]  spill-single-def "Inlining Arg"
+;  V50 tmp43        [V50,T75] (  7,  0   )     ref  ->  [rbp-0xB0]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.IO.FileInfo>
+;  V51 tmp44        [V51,T87] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
 ;* V52 tmp45        [V52    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V53 tmp46        [V53    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V54 tmp47        [V54,T91] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V55 tmp48        [V55,T92] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-;* V56 tmp49        [V56,T152] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V57 tmp50        [V57,T131] (  2,  0   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V58 tmp51        [V58,T111] (  2,  0   )   byref  ->  r12         single-def "Inlining Arg"
-;* V59 tmp52        [V59,T153] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V60 tmp53        [V60,T132] (  2,  0   )     int  ->  [rbp-0x40]  spill-single-def "Inlining Arg"
+;  V54 tmp47        [V54,T88] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V55 tmp48        [V55,T89] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;* V56 tmp49        [V56,T149] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V57 tmp50        [V57,T128] (  2,  0   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V58 tmp51        [V58,T108] (  2,  0   )   byref  ->  r12         single-def "Inlining Arg"
+;* V59 tmp52        [V59,T150] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
+;  V60 tmp53        [V60,T129] (  2,  0   )     int  ->  [rbp-0x40]  spill-single-def "Inlining Arg"
 ;* V61 tmp54        [V61    ] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V62 tmp55        [V62    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V63 tmp56        [V63,T79] (  5,  0   )     ref  ->  [rbp-0xC8]  class-hnd "Inlining Arg" <System.String>
-;  V64 tmp57        [V64,T74] ( 11,  0   )     ref  ->  [rbp-0xD0]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
-;* V65 tmp58        [V65,T150] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.String>
-;  V66 tmp59        [V66,T99] (  3,  0   )     int  ->  [rbp-0x44]  "Inline stloc first use temp"
-;  V67 tmp60        [V67,T83] (  4,  0   )     ref  ->  rcx         class-hnd exact single-def "Inline stloc first use temp" <System.Version>
-;  V68 tmp61        [V68,T81] (  5,  0   )     int  ->  rcx        
+;  V63 tmp56        [V63,T76] (  5,  0   )     ref  ->  [rbp-0xB8]  class-hnd "Inlining Arg" <System.String>
+;  V64 tmp57        [V64,T71] ( 11,  0   )     ref  ->  [rbp-0xC0]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+;* V65 tmp58        [V65,T147] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.String>
+;  V66 tmp59        [V66,T96] (  3,  0   )     int  ->  [rbp-0x44]  "Inline stloc first use temp"
+;  V67 tmp60        [V67,T80] (  4,  0   )     ref  ->  rcx         class-hnd exact single-def "Inline stloc first use temp" <System.Version>
+;  V68 tmp61        [V68,T78] (  5,  0   )     int  ->  rcx        
 ;* V69 tmp62        [V69    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V70 tmp63        [V70    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V71 tmp64        [V71,T93] (  3,  0   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.String>
-;* V72 tmp65        [V72,T133] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V73 tmp66        [V73,T100] (  3,  0   )  ushort  ->  rcx         single-def "Inline stloc first use temp"
+;  V71 tmp64        [V71,T90] (  3,  0   )     ref  ->  rax         class-hnd "Inline return value spill temp" <System.String>
+;* V72 tmp65        [V72,T130] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V73 tmp66        [V73,T97] (  3,  0   )  ushort  ->  rcx         single-def "Inline stloc first use temp"
 ;* V74 tmp67        [V74    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
-;  V75 tmp68        [V75,T84] (  4,  0   )     ref  ->  [rbp-0xD8]  class-hnd "Inline return value spill temp" <System.String>
-;* V76 tmp69        [V76,T134] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V77 tmp70        [V77,T101] (  3,  0   )  ushort  ->  rcx         single-def "Inline stloc first use temp"
+;  V75 tmp68        [V75,T81] (  4,  0   )     ref  ->  [rbp-0xC8]  class-hnd "Inline return value spill temp" <System.String>
+;* V76 tmp69        [V76,T131] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V77 tmp70        [V77,T98] (  3,  0   )  ushort  ->  rcx         single-def "Inline stloc first use temp"
 ;* V78 tmp71        [V78    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V79 tmp72        [V79    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.OperatingSystem>
 ;* V80 tmp73        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
@@ -94,15 +94,15 @@
 ;* V82 tmp75        [V82    ] (  0,  0   )    long  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V83 tmp76        [V83    ] (  2,  0   )   byref  ->  [rbp-0x58]  must-init pinned "Inline stloc first use temp"
 ;* V84 tmp77        [V84    ] (  0,  0   )    long  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V85 tmp78        [V85,T135] (  2,  0   )   ubyte  ->  rbx         single-def "Inline stloc first use temp"
-;  V86 tmp79        [V86,T136] (  2,  0   )     int  ->  rcx         single-def "Inline stloc first use temp"
-;  V87 tmp80        [V87,T137] (  2,  0   )   ubyte  ->  rbx         single-def "Inline stloc first use temp"
-;  V88 tmp81        [V88,T85] (  4,  0   )   byref  ->  rdx         "Inline return value spill temp"
-;  V89 tmp82        [V89,T86] (  4,  0   )   byref  ->   r8         "Inline return value spill temp"
+;  V85 tmp78        [V85,T132] (  2,  0   )   ubyte  ->  rbx         single-def "Inline stloc first use temp"
+;  V86 tmp79        [V86,T133] (  2,  0   )     int  ->  rcx         single-def "Inline stloc first use temp"
+;  V87 tmp80        [V87,T134] (  2,  0   )   ubyte  ->  rbx         single-def "Inline stloc first use temp"
+;  V88 tmp81        [V88,T82] (  4,  0   )   byref  ->  rdx         "Inline return value spill temp"
+;  V89 tmp82        [V89,T83] (  4,  0   )   byref  ->   r8         "Inline return value spill temp"
 ;* V90 tmp83        [V90    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V91 tmp84        [V91    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
 ;* V92 tmp85        [V92    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Nullable`1[ubyte]>
-;* V93 tmp86        [V93,T151] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.IO.FileInfo>
+;* V93 tmp86        [V93,T148] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.IO.FileInfo>
 ;* V94 tmp87        [V94    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V95 tmp88        [V95    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V96 tmp89        [V96    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -113,18 +113,18 @@
 ;* V101 tmp94       [V101    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V102 tmp95       [V102    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Nullable`1[ubyte]>
 ;* V103 tmp96       [V103    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
-;  V104 tmp97       [V104,T112] (  2,  0   )     ref  ->  rcx         class-hnd exact single-def "bubbling QMark2" <System.String>
-;  V105 tmp98       [V105,T113] (  2,  0   )     ref  ->  rdx         class-hnd "spilling QMark2" <<unknown class>>
+;  V104 tmp97       [V104,T109] (  2,  0   )     ref  ->  rcx         class-hnd exact single-def "bubbling QMark2" <System.String>
+;  V105 tmp98       [V105,T110] (  2,  0   )     ref  ->  rdx         class-hnd "spilling QMark2" <<unknown class>>
 ;* V106 tmp99       [V106    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V107 tmp100      [V107,T94] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
+;  V107 tmp100      [V107,T91] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
 ;* V108 tmp101      [V108    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V109 tmp102      [V109    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V110 tmp103      [V110,T95] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V111 tmp104      [V111,T96] (  3,  0   )     ref  ->  rbx         class-hnd "Inline return value spill temp" <System.IO.FileSystemInfo>
-;  V112 tmp105      [V112,T97] (  3,  0   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V113 tmp106      [V113,T87] (  4,  0   )     ref  ->  rdi        
+;  V110 tmp103      [V110,T92] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V111 tmp104      [V111,T93] (  3,  0   )     ref  ->  rbx         class-hnd "Inline return value spill temp" <System.IO.FileSystemInfo>
+;  V112 tmp105      [V112,T94] (  3,  0   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V113 tmp106      [V113,T84] (  4,  0   )     ref  ->  rdi        
 ;* V114 tmp107      [V114    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
-;  V115 tmp108      [V115,T98] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
+;  V115 tmp108      [V115,T95] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.IO.FileInfo>
 ;* V116 tmp109      [V116    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V117 tmp110      [V117    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V118 tmp111      [V118    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -135,50 +135,50 @@
 ;* V123 tmp116      [V123    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V124 tmp117      [V124    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V125 tmp118      [V125    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V126 tmp119      [V126,T138] (  2,  0   )     int  ->  r15         "Inlining Arg"
-;  V127 tmp120      [V127,T114] (  2,  0   )   byref  ->  r14         single-def "Inlining Arg"
-;  V128 tmp121      [V128,T88] (  2,  0   )   ubyte  ->  rcx         "Inline return value spill temp"
+;  V126 tmp119      [V126,T135] (  2,  0   )     int  ->  r14         "Inlining Arg"
+;  V127 tmp120      [V127,T111] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V128 tmp121      [V128,T85] (  2,  0   )   ubyte  ->  rcx         "Inline return value spill temp"
 ;* V129 tmp122      [V129    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V130 tmp123      [V130,T154] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V131 tmp124      [V131,T102] (  3,  0   )  ushort  ->  rcx         "Inlining Arg"
-;  V132 tmp125      [V132,T103] (  3,  0   )   ubyte  ->  rcx         "Inline return value spill temp"
-;  V133 tmp126      [V133,T104] (  3,  0   )  ushort  ->  rcx         "Inlining Arg"
-;* V134 tmp127      [V134,T155] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V135 tmp128      [V135,T105] (  3,  0   )  ushort  ->  rax         "Inlining Arg"
+;* V130 tmp123      [V130,T151] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V131 tmp124      [V131,T99] (  3,  0   )  ushort  ->  rcx         "Inlining Arg"
+;  V132 tmp125      [V132,T100] (  3,  0   )   ubyte  ->  rcx         "Inline return value spill temp"
+;  V133 tmp126      [V133,T101] (  3,  0   )  ushort  ->  rcx         "Inlining Arg"
+;* V134 tmp127      [V134,T152] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V135 tmp128      [V135,T102] (  3,  0   )  ushort  ->  rax         "Inlining Arg"
 ;* V136 tmp129      [V136    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V137 tmp130      [V137,T15] (  7,  4.80)     ref  ->  registers   class-hnd "Inline return value spill temp" <System.String>
+;  V137 tmp130      [V137,T16] (  7,  4.80)     ref  ->  registers   class-hnd "Inline return value spill temp" <System.String>
 ;* V138 tmp131      [V138    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V139 tmp132      [V139    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V140 tmp133      [V140    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V141 tmp134      [V141    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V142 tmp135      [V142    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V143 tmp136      [V143    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V144 tmp137      [V144,T139] (  2,  0   )     int  ->  [rbp-0x5C]  spill-single-def "Inlining Arg"
-;  V145 tmp138      [V145,T115] (  2,  0   )   byref  ->  r15         single-def "Inlining Arg"
-;* V146 tmp139      [V146,T50] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V144 tmp137      [V144,T136] (  2,  0   )     int  ->  r14         "Inlining Arg"
+;  V145 tmp138      [V145,T112] (  2,  0   )   byref  ->  rdi         single-def "Inlining Arg"
+;* V146 tmp139      [V146,T51] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V147 tmp140      [V147    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V148 tmp141      [V148    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V149 tmp142      [V149,T16] (  6,  4   )     int  ->  rax         "Inline stloc first use temp"
+;  V149 tmp142      [V149,T17] (  6,  4   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V150 tmp143      [V150    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
 ;* V151 tmp144      [V151    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V152 tmp145      [V152    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V153 tmp146      [V153    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V154 tmp147      [V154,T26] (  2,  3.20)     int  ->  [rbp-0x60]  spill-single-def "Inlining Arg"
-;  V155 tmp148      [V155,T23] (  2,  3.20)   byref  ->  r15         single-def "Inlining Arg"
+;  V154 tmp147      [V154,T27] (  2,  3.20)     int  ->  r14         "Inlining Arg"
+;  V155 tmp148      [V155,T24] (  2,  3.20)   byref  ->  rdi         single-def "Inlining Arg"
 ;  V156 tmp149      [V156,T09] ( 10,  6.35)     int  ->  r15         "Inline return value spill temp"
 ;* V157 tmp150      [V157    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V158 tmp151      [V158,T03] (  4, 13.78)     int  ->  rax         single-def "Inline stloc first use temp"
 ;  V159 tmp152      [V159,T01] ( 12, 36.71)     int  ->  rcx         "Inline stloc first use temp"
 ;  V160 tmp153      [V160,T02] (  2, 22.84)     int  ->  rcx         "dup spill"
 ;* V161 tmp154      [V161,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V162 tmp155      [V162,T00] (  3,114.20)  ushort  ->   r8         "Inlining Arg"
-;* V163 tmp156      [V163,T71] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V164 tmp157      [V164,T67] (  3,  0.90)  ushort  ->   r8         "Inlining Arg"
-;  V165 tmp158      [V165,T41] (  4,  1.60)     ref  ->  r13         class-hnd "Inline return value spill temp" <System.String>
+;  V162 tmp155      [V162,T00] (  3,114.20)  ushort  ->  rdx         "Inlining Arg"
+;* V163 tmp156      [V163,T69] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V164 tmp157      [V164,T65] (  3,  0.90)  ushort  ->  rdx         "Inlining Arg"
+;  V165 tmp158      [V165,T42] (  4,  1.60)     ref  ->  rcx         class-hnd "Inline return value spill temp" <System.String>
 ;* V166 tmp159      [V166    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.String>
 ;* V167 tmp160      [V167    ] (  0,  0   )     int  ->  zero-ref   
 ;  V168 tmp161      [V168,T58] (  2,  1.57)     int  ->  rcx        
-;  V169 tmp162      [V169,T30] (  4,  3.14)     ref  ->  r13         class-hnd exact single-def "Inline stloc first use temp" <System.String>
+;  V169 tmp162      [V169,T30] (  4,  3.14)     ref  ->  rdi         class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;  V170 tmp163      [V170,T59] (  2,  1.57)    long  ->   r8         single-def "Inline stloc first use temp"
 ;* V171 tmp164      [V171    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V172 tmp165      [V172    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -186,71 +186,71 @@
 ;* V174 tmp167      [V174    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V175 tmp168      [V175,T31] (  2,  3.14)   byref  ->  rcx         single-def "Inlining Arg"
 ;  V176 tmp169      [V176,T32] (  2,  3.14)   byref  ->  rdx         single-def "Inlining Arg"
-;  V177 tmp170      [V177,T42] (  4,  1.60)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.String>
...

+14 (+3.55%) : 166160.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)

@@ -9,17 +9,17 @@
 ; 4 inlinees with PGO data; 17 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 23, 11.85)     ref  ->  rbx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
-;  V01 loc0         [V01,T10] (  3,  1.32)     ref  ->  rdi         class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+;  V00 arg0         [V00,T00] ( 24, 11.93)     ref  ->  rbx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+;  V01 loc0         [V01,T09] (  3,  1.32)     ref  ->  rdi         class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticInfo[]>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T01] (  2,  4   )     int  ->  rsi         "impAppendStmt"
-;  V06 tmp2         [V06,T14] (  2,  0   )     ref  ->  rsi         class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
-;  V07 tmp3         [V07,T15] (  2,  0   )     int  ->  rdi         "impAppendStmt"
-;  V08 tmp4         [V08,T09] (  4,  1.32)     ref  ->  rsi        
+;  V06 tmp2         [V06,T13] (  2,  0   )     ref  ->  rsi         class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
+;  V07 tmp3         [V07,T14] (  2,  0   )     int  ->  rdi         "impAppendStmt"
+;  V08 tmp4         [V08,T08] (  4,  1.32)     ref  ->  rsi        
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
-;  V10 tmp6         [V10,T02] (  3,  3.98)     int  ->  rbp         "impAppendStmt"
+;  V10 tmp6         [V10,T02] (  3,  3.98)     int  ->  rdi         "impAppendStmt"
 ;  V11 tmp7         [V11,T04] (  3,  2   )     int  ->  rbp         "guarded devirt return temp"
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
 ;* V13 tmp9         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
@@ -34,15 +34,14 @@
 ;* V22 tmp18        [V22    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp19        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V24 tmp20        [V24    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V25 tmp21        [V25,T13] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+;  V25 tmp21        [V25,T12] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
 ;  V26 tmp22        [V26,T05] (  5,  1.99)     ref  ->   r8         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
 ;  V27 tmp23        [V27    ] (  3,  0.89)     ref  ->  [rsp+0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
-;  V28 tmp24        [V28,T11] (  2,  0.59)     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V29 tmp25        [V29,T12] (  4,  0   )     ref  ->  registers   "field V03._node (fldOffset=0x0)" P-INDEP
+;  V28 tmp24        [V28,T10] (  2,  0.59)     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V29 tmp25        [V29,T11] (  4,  0   )     ref  ->  registers   "field V03._node (fldOffset=0x0)" P-INDEP
 ;* V30 tmp26        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V14._node (fldOffset=0x0)" P-INDEP
 ;* V31 tmp27        [V31    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V17._node (fldOffset=0x0)" P-INDEP
-;  V32 cse0         [V32,T08] (  3,  1.40)    long  ->  rdi         "CSE - conservative"
-;  V33 cse1         [V33,T03] (  3,  2.66)    long  ->  rdi         "CSE - aggressive"
+;  V32 cse0         [V32,T03] (  3,  2.66)    long  ->  rdi         "CSE - aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -125,7 +124,7 @@ G_M12665_IG07:        ; bbWeight=0.66, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        test     byte  ptr [rbx+0x0E], 1
        je       G_M12665_IG16
                        ;; size=13 bbWeight=0.66 PerfScore 2.82
-G_M12665_IG08:        ; bbWeight=0.15, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M12665_IG08:        ; bbWeight=0.15, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
@@ -138,13 +137,13 @@ G_M12665_IG08:        ; bbWeight=0.15, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; gcrRegs -[rcx rdx rbx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M12665_IG16
-                       ;; size=37 bbWeight=0.15 PerfScore 1.79
-G_M12665_IG09:        ; bbWeight=0.08, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M12665_IG16
+                       ;; size=41 bbWeight=0.15 PerfScore 1.79
+G_M12665_IG09:        ; bbWeight=0.08, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
        mov      r8, gword ptr [rsp+0x28]
        ; gcrRegs +[r8]
-       jmp      SHORT G_M12665_IG17
-                       ;; size=7 bbWeight=0.08 PerfScore 0.23
+       jmp      G_M12665_IG17
+                       ;; size=10 bbWeight=0.08 PerfScore 0.23
 G_M12665_IG10:        ; bbWeight=0.66, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi rdi r8] +[rbx]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia
@@ -170,8 +169,8 @@ G_M12665_IG12:        ; bbWeight=0.66, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rbx]
-       mov      rdi, qword ptr [rax+0x68]
-       call     [rdi+0x20]<unknown method>
+       mov      rax, qword ptr [rax+0x68]
+       call     [rax+0x20]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      rsi, rax
@@ -184,11 +183,11 @@ G_M12665_IG12:        ; bbWeight=0.66, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     [rax+0x10]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      ebp, eax
+       mov      edi, eax
        jmp      SHORT G_M12665_IG14
                        ;; size=33 bbWeight=0.66 PerfScore 11.26
 G_M12665_IG13:        ; bbWeight=0.66, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       movzx    rbp, word  ptr [rbx+0x20]
+       movzx    rdi, word  ptr [rbx+0x20]
        mov      r8, gword ptr [rbx+0x30]
        ; gcrRegs +[r8]
        jmp      SHORT G_M12665_IG15
@@ -197,15 +196,17 @@ G_M12665_IG14:        ; bbWeight=0.08, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        ; gcrRegs -[r8]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       call     [rdi+0x28]<unknown method>
+       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rax+0x68]
+       call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      r8, rax
        ; gcrRegs +[r8]
-                       ;; size=9 bbWeight=0.08 PerfScore 0.28
+                       ;; size=16 bbWeight=0.08 PerfScore 0.60
 G_M12665_IG15:        ; bbWeight=0.66, gcrefRegs=0148 {rbx rsi r8}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
-       mov      ecx, ebp
+       mov      ecx, edi
        mov      rdx, rsi
        ; gcrRegs +[rdx]
        call     [<unknown method>]
@@ -269,7 +270,7 @@ G_M12665_IG22:        ; bbWeight=0.34, epilog, nogc, extend
        ret      
                        ;; size=11 bbWeight=0.34 PerfScore 1.27
 
-; Total bytes of code 394, prolog size 17, PerfScore 56.81, instruction count 113, allocated bytes for code 394 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
+Total bytes of code 408, prolog size 17, PerfScore 57.13, instruction count 115, allocated bytes for code 408 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
 ; ============================================================
 
 Unwind Info:

+14 (+3.61%) : 87589.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)

@@ -9,17 +9,17 @@
 ; 3 inlinees with PGO data; 17 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 23, 12.02)     ref  ->  rbx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
-;  V01 loc0         [V01,T10] (  3,  1.35)     ref  ->  rdi         class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+;  V00 arg0         [V00,T00] ( 24, 12.33)     ref  ->  rbx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+;  V01 loc0         [V01,T09] (  3,  1.35)     ref  ->  rdi         class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticInfo[]>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T02] (  2,  4   )     int  ->  rsi         "impAppendStmt"
-;  V06 tmp2         [V06,T13] (  2,  0   )     ref  ->  rsi         class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
-;  V07 tmp3         [V07,T14] (  2,  0   )     int  ->  rdi         "impAppendStmt"
-;  V08 tmp4         [V08,T09] (  4,  1.35)     ref  ->  rsi        
+;  V06 tmp2         [V06,T12] (  2,  0   )     ref  ->  rsi         class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
+;  V07 tmp3         [V07,T13] (  2,  0   )     int  ->  rdi         "impAppendStmt"
+;  V08 tmp4         [V08,T08] (  4,  1.35)     ref  ->  rsi        
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
-;  V10 tmp6         [V10,T01] (  3,  4.04)     int  ->  rbp         "impAppendStmt"
+;  V10 tmp6         [V10,T01] (  3,  4.04)     int  ->  rdi         "impAppendStmt"
 ;  V11 tmp7         [V11,T06] (  3,  2   )     int  ->  rbp         "guarded devirt return temp"
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
 ;* V13 tmp9         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
@@ -34,14 +34,13 @@
 ;* V22 tmp18        [V22    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp19        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V24 tmp20        [V24    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V25 tmp21        [V25,T12] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+;  V25 tmp21        [V25,T11] (  3,  0   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
 ;  V26 tmp22        [V26,T04] (  5,  2.02)     ref  ->   r8         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
 ;  V27 tmp23        [V27    ] (  3,  0.68)     ref  ->  [rsp+0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
-;  V28 tmp24        [V28,T11] (  4,  0   )     ref  ->  registers   "field V03._node (fldOffset=0x0)" P-INDEP
+;  V28 tmp24        [V28,T10] (  4,  0   )     ref  ->  registers   "field V03._node (fldOffset=0x0)" P-INDEP
 ;* V29 tmp25        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V14._node (fldOffset=0x0)" P-INDEP
 ;* V30 tmp26        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V17._node (fldOffset=0x0)" P-INDEP
-;  V31 cse0         [V31,T08] (  3,  1.66)    long  ->  rdi         "CSE - conservative"
-;  V32 cse1         [V32,T03] (  3,  2.67)    long  ->  rdi         "CSE - aggressive"
+;  V31 cse0         [V31,T03] (  3,  2.67)    long  ->  rdi         "CSE - aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -124,7 +123,7 @@ G_M12665_IG07:        ; bbWeight=0.67, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        test     byte  ptr [rbx+0x0E], 1
        je       G_M12665_IG16
                        ;; size=13 bbWeight=0.67 PerfScore 2.86
-G_M12665_IG08:        ; bbWeight=0.00, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M12665_IG08:        ; bbWeight=0.00, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
@@ -135,13 +134,13 @@ G_M12665_IG08:        ; bbWeight=0.00, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; gcrRegs -[rcx rdx rbx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M12665_IG16
-                       ;; size=31 bbWeight=0.00 PerfScore 0.01
-G_M12665_IG09:        ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+       je       G_M12665_IG16
+                       ;; size=35 bbWeight=0.00 PerfScore 0.01
+G_M12665_IG09:        ; bbWeight=0.00, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref
        mov      r8, gword ptr [rsp+0x28]
        ; gcrRegs +[r8]
-       jmp      SHORT G_M12665_IG17
-                       ;; size=7 bbWeight=0.00 PerfScore 0.00
+       jmp      G_M12665_IG17
+                       ;; size=10 bbWeight=0.00 PerfScore 0.00
 G_M12665_IG10:        ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi rdi r8] +[rbx]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia
@@ -167,8 +166,8 @@ G_M12665_IG12:        ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rbx]
-       mov      rdi, qword ptr [rax+0x68]
-       call     [rdi+0x20]<unknown method>
+       mov      rax, qword ptr [rax+0x68]
+       call     [rax+0x20]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      rsi, rax
@@ -181,11 +180,11 @@ G_M12665_IG12:        ; bbWeight=0.67, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     [rax+0x10]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      ebp, eax
+       mov      edi, eax
        jmp      SHORT G_M12665_IG14
                        ;; size=33 bbWeight=0.67 PerfScore 11.44
 G_M12665_IG13:        ; bbWeight=0.67, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
-       movzx    rbp, word  ptr [rbx+0x20]
+       movzx    rdi, word  ptr [rbx+0x20]
        mov      r8, gword ptr [rbx+0x30]
        ; gcrRegs +[r8]
        jmp      SHORT G_M12665_IG15
@@ -194,15 +193,17 @@ G_M12665_IG14:        ; bbWeight=0.31, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        ; gcrRegs -[r8]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       call     [rdi+0x28]<unknown method>
+       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rax+0x68]
+       call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      r8, rax
        ; gcrRegs +[r8]
-                       ;; size=9 bbWeight=0.31 PerfScore 1.08
+                       ;; size=16 bbWeight=0.31 PerfScore 2.32
 G_M12665_IG15:        ; bbWeight=0.67, gcrefRegs=0148 {rbx rsi r8}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
-       mov      ecx, ebp
+       mov      ecx, edi
        mov      rdx, rsi
        ; gcrRegs +[rdx]
        call     [<unknown method>]
@@ -266,7 +267,7 @@ G_M12665_IG22:        ; bbWeight=0.33, epilog, nogc, extend
        ret      
                        ;; size=11 bbWeight=0.33 PerfScore 1.23
 
-; Total bytes of code 388, prolog size 17, PerfScore 56.16, instruction count 111, allocated bytes for code 388 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
+Total bytes of code 402, prolog size 17, PerfScore 57.39, instruction count 113, allocated bytes for code 402 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
 ; ============================================================
 
 Unwind Info:

+44 (+3.79%) : 386597.dasm - System.DateTimeFormat:TryFormatOushort:ubyte (Tier1)

@@ -9,129 +9,128 @@
 ; 11 inlinees with PGO data; 32 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  7,  5   )  struct ( 8) [rsp+0xA0]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
+;  V00 arg0         [V00    ] (  7,  5   )  struct ( 8) [rsp+0x90]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.TimeSpan>
 ;  V02 arg2         [V02,T04] (  4,  4   )   byref  ->  rbx         ld-addr-op single-def
 ;  V03 arg3         [V03,T13] (  4,  2   )   byref  ->  rdi         single-def
-;  V04 loc0         [V04,T27] (  6,  1   )     int  ->  rbp        
+;  V04 loc0         [V04,T26] (  6,  1   )     int  ->  rbp        
 ;  V05 loc1         [V05,T12] (  6,  4   )     int  ->  r14        
-;  V06 loc2         [V06    ] (  2,  0   )     int  ->  [rsp+0x50]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V07 loc3         [V07    ] (  2,  0   )     int  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V08 loc4         [V08    ] (  2,  0   )     int  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V09 loc5         [V09,T34] (  3,  0   )     int  ->  r13         ld-addr-op
-;  V10 loc6         [V10,T35] (  3,  0   )     int  ->  r15         ld-addr-op
-;  V11 loc7         [V11,T36] (  3,  0   )     int  ->  rbp         ld-addr-op
-;  V12 loc8         [V12,T48] (  2,  0   )     int  ->  rdi         ld-addr-op
+;  V06 loc2         [V06    ] (  2,  0   )     int  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V07 loc3         [V07    ] (  2,  0   )     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V08 loc4         [V08    ] (  2,  0   )     int  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V09 loc5         [V09,T33] (  3,  0   )     int  ->  r13         ld-addr-op
+;  V10 loc6         [V10,T34] (  3,  0   )     int  ->  r15         ld-addr-op
+;  V11 loc7         [V11,T35] (  3,  0   )     int  ->  rbp         ld-addr-op
+;  V12 loc8         [V12,T47] (  2,  0   )     int  ->  rdi         ld-addr-op
 ;  V13 loc9         [V13,T11] ( 19,  4   )    long  ->  r12        
-;  V14 loc10        [V14    ] (  2,  1   )   byref  ->  [rsp+0x38]  must-init pinned
+;  V14 loc10        [V14    ] (  2,  1   )   byref  ->  [rsp+0x28]  must-init pinned
 ;  V15 loc11        [V15,T09] (  7,  5   )     int  ->  r14        
-;  V16 loc12        [V16,T20] (  3,  2   )  ushort  ->   r8        
+;  V16 loc12        [V16,T19] (  3,  2   )  ushort  ->   r8        
 ;* V17 loc13        [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 loc14        [V18    ] (  0,  0   )     int  ->  zero-ref   
 ;  V19 OutArgs      [V19    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V20 tmp1         [V20    ] (  0,  0   )  struct ( 8) zero-ref    "dup spill" <System.ValueTuple`2[int,int]>
 ;  V21 tmp2         [V21,T18] (  3,  2.40)    long  ->  rcx         "Inline stloc first use temp"
-;  V22 tmp3         [V22,T21] (  3,  2   )     int  ->  r14         "Inline stloc first use temp"
+;  V22 tmp3         [V22,T20] (  3,  2   )     int  ->  r14         "Inline stloc first use temp"
 ;  V23 tmp4         [V23,T06] (  3,  6   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <System.TimeZoneInfo+CachedData>
 ;  V24 tmp5         [V24,T15] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "dup spill" <System.TimeZoneInfo>
 ;  V25 tmp6         [V25,T10] (  5,  5   )     ref  ->  rax        
 ;* V26 tmp7         [V26    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.DateTime>
-;  V27 tmp8         [V27,T37] (  3,  0   )    long  ->  rdi         "Inline stloc first use temp"
-;  V28 tmp9         [V28,T28] (  4,  0   )    long  ->  rbp         "Inline stloc first use temp"
-;  V29 tmp10        [V29,T29] (  4,  0   )    long  ->  r15         "Inline stloc first use temp"
-;  V30 tmp11        [V30,T30] (  4,  0   )    long  ->  rdx         "Inline stloc first use temp"
+;  V27 tmp8         [V27,T36] (  3,  0   )    long  ->  rdi         "Inline stloc first use temp"
+;  V28 tmp9         [V28,T27] (  4,  0   )    long  ->  rbp         "Inline stloc first use temp"
+;  V29 tmp10        [V29,T28] (  4,  0   )    long  ->  r15         "Inline stloc first use temp"
+;  V30 tmp11        [V30,T29] (  4,  0   )    long  ->  rdx         "Inline stloc first use temp"
 ;* V31 tmp12        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V32 tmp13        [V32    ] (  0,  0   )     int  ->  zero-ref   
-;  V33 tmp14        [V33,T31] (  4,  0   )     int  ->  [rsp+0x34]  spill-single-def "Inlining Arg"
+;  V33 tmp14        [V33,T30] (  4,  0   )     int  ->  [rsp+0x24]  spill-single-def "Inlining Arg"
 ;* V34 tmp15        [V34    ] (  0,  0   )  struct ( 8) zero-ref    "dup spill" <System.ValueTuple`2[uint,uint]>
 ;* V35 tmp16        [V35    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V36 tmp17        [V36,T42] (  2,  0   )     ref  ->   r8         single-def
-;  V37 tmp18        [V37,T32] (  3,  0   )   byref  ->   r8         single-def "Inline stloc first use temp"
-;  V38 tmp19        [V38,T38] (  3,  0   )     int  ->  rax         "Inline stloc first use temp"
+;  V36 tmp17        [V36,T41] (  2,  0   )     ref  ->  rdx         single-def
+;  V37 tmp18        [V37,T31] (  3,  0   )   byref  ->  rdx         single-def "Inline stloc first use temp"
+;  V38 tmp19        [V38,T37] (  3,  0   )     int  ->  rax         "Inline stloc first use temp"
 ;* V39 tmp20        [V39    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[uint,uint]>
 ;* V40 tmp21        [V40    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp22        [V41    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V42 tmp23        [V42    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp24        [V43    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp25        [V44    ] (  0,  0   )     int  ->  zero-ref   
-;  V45 tmp26        [V45,T39] (  3,  0   )     int  ->  rbx         "Inlining Arg"
+;  V45 tmp26        [V45,T38] (  3,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V46 tmp27        [V46    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp28        [V47    ] (  0,  0   )    long  ->  zero-ref   
-;  V48 tmp29        [V48,T49] (  2,  0   )    long  ->  rcx        
-;  V49 tmp30        [V49,T43] (  2,  0   )     ref  ->  rdx         single-def
+;  V48 tmp29        [V48,T48] (  2,  0   )    long  ->  rcx        
+;  V49 tmp30        [V49,T42] (  2,  0   )     ref  ->  rax         single-def
 ;* V50 tmp31        [V50    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V51 tmp32        [V51    ] (  0,  0   )     int  ->  zero-ref   
-;  V52 tmp33        [V52,T40] (  3,  0   )     int  ->  rbx         "Inlining Arg"
+;  V52 tmp33        [V52,T39] (  3,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V53 tmp34        [V53    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp35        [V54    ] (  0,  0   )    long  ->  zero-ref   
-;  V55 tmp36        [V55,T50] (  2,  0   )    long  ->  rcx        
-;  V56 tmp37        [V56,T44] (  2,  0   )     ref  ->  rdx         single-def
+;  V55 tmp36        [V55,T49] (  2,  0   )    long  ->  rcx        
+;  V56 tmp37        [V56,T43] (  2,  0   )     ref  ->  rax         single-def
 ;* V57 tmp38        [V57    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V58 tmp39        [V58    ] (  0,  0   )     int  ->  zero-ref   
 ;* V59 tmp40        [V59    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V60 tmp41        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V61 tmp42        [V61    ] (  0,  0   )    long  ->  zero-ref   
-;  V62 tmp43        [V62,T51] (  2,  0   )    long  ->  rcx        
-;  V63 tmp44        [V63,T45] (  2,  0   )     ref  ->  rax         single-def
+;  V62 tmp43        [V62,T50] (  2,  0   )    long  ->  rcx        
+;  V63 tmp44        [V63,T44] (  2,  0   )     ref  ->  rax         single-def
 ;* V64 tmp45        [V64    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V65 tmp46        [V65    ] (  0,  0   )     int  ->  zero-ref   
 ;* V66 tmp47        [V66    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V67 tmp48        [V67    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp49        [V68    ] (  0,  0   )    long  ->  zero-ref   
-;  V69 tmp50        [V69,T52] (  2,  0   )    long  ->  rcx        
-;  V70 tmp51        [V70,T46] (  2,  0   )     ref  ->  rax         single-def
+;  V69 tmp50        [V69,T51] (  2,  0   )    long  ->  rcx        
+;  V70 tmp51        [V70,T45] (  2,  0   )     ref  ->  rax         single-def
 ;* V71 tmp52        [V71    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V72 tmp53        [V72    ] (  0,  0   )     int  ->  zero-ref   
 ;* V73 tmp54        [V73    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V74 tmp55        [V74    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp56        [V75    ] (  0,  0   )    long  ->  zero-ref   
-;  V76 tmp57        [V76,T53] (  2,  0   )    long  ->  rcx        
-;  V77 tmp58        [V77,T47] (  2,  0   )     ref  ->  rax         single-def
+;  V76 tmp57        [V76,T52] (  2,  0   )    long  ->  rcx        
+;  V77 tmp58        [V77,T46] (  2,  0   )     ref  ->  rax         single-def
 ;* V78 tmp59        [V78    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V79 tmp60        [V79,T02] (  5, 14   )    long  ->  rbp         "Inlining Arg"
-;  V80 tmp61        [V80,T01] (  8, 26   )    long  ->  r15         "Inline stloc first use temp"
+;  V79 tmp60        [V79,T02] (  5, 14   )    long  ->  rbx         "Inlining Arg"
+;  V80 tmp61        [V80,T01] (  8, 26   )    long  ->  rbp         "Inline stloc first use temp"
 ;  V81 tmp62        [V81,T00] (  7, 52   )     int  ->  rdi         "Inlining Arg"
 ;  V82 tmp63        [V82,T03] (  2, 12   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V83 tmp64        [V83    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V84 tmp65        [V84    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V85 tmp66        [V85,T14] (  4,  4   )     int  ->  rsi         "Inline stloc first use temp"
+;  V85 tmp66        [V85,T14] (  4,  4   )     int  ->  rbx         "Inline stloc first use temp"
 ;* V86 tmp67        [V86    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
 ;* V87 tmp68        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V88 tmp69        [V88    ] (  0,  0   )     int  ->  zero-ref   
 ;* V89 tmp70        [V89    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V90 tmp71        [V90    ] (  0,  0   )    long  ->  zero-ref   
-;  V91 tmp72        [V91,T24] (  2,  2   )    long  ->  rcx        
-;  V92 tmp73        [V92,T22] (  2,  2   )     ref  ->  rax         single-def
+;  V91 tmp72        [V91,T23] (  2,  2   )    long  ->  rcx        
+;  V92 tmp73        [V92,T21] (  2,  2   )     ref  ->  rax         single-def
 ;* V93 tmp74        [V93    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp75        [V94    ] (  0,  0   )     int  ->  zero-ref   
 ;* V95 tmp76        [V95    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V96 tmp77        [V96    ] (  0,  0   )    long  ->  zero-ref   
-;  V97 tmp78        [V97,T25] (  2,  2   )    long  ->  r12        
-;  V98 tmp79        [V98,T23] (  2,  2   )     ref  ->  rbx         single-def
+;  V97 tmp78        [V97,T24] (  2,  2   )    long  ->  r12        
+;  V98 tmp79        [V98,T22] (  2,  2   )     ref  ->  rax         single-def
 ;* V99 tmp80        [V99    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V100 tmp81       [V100    ] (  7,  5   )    long  ->  [rsp+0xA0]  do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP
+;  V100 tmp81       [V100    ] (  7,  5   )    long  ->  [rsp+0x90]  do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP
 ;  V101 tmp82       [V101,T05] (  4,  4   )    long  ->  rsi         single-def "field V01._ticks (fldOffset=0x0)" P-INDEP
 ;* V102 tmp83       [V102    ] (  0,  0   )   byref  ->  zero-ref    "field V02._reference (fldOffset=0x0)" P-INDEP
 ;* V103 tmp84       [V103    ] (  0,  0   )     int  ->  zero-ref    "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V104 tmp85       [V104    ] (  0,  0   )     int  ->  zero-ref    "field V20.Item1 (fldOffset=0x0)" P-INDEP
 ;* V105 tmp86       [V105    ] (  0,  0   )     int  ->  zero-ref    "field V20.Item2 (fldOffset=0x4)" P-INDEP
-;  V106 tmp87       [V106,T26] (  2,  2   )    long  ->  rdx         "field V26._dateData (fldOffset=0x0)" P-INDEP
-;  V107 tmp88       [V107,T33] (  3,  0   )   byref  ->  rbx         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+;  V106 tmp87       [V106,T25] (  2,  2   )    long  ->  rdx         "field V26._dateData (fldOffset=0x0)" P-INDEP
+;  V107 tmp88       [V107,T32] (  3,  0   )   byref  ->  rbx         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V108 tmp89       [V108    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V109 tmp90       [V109    ] (  0,  0   )     int  ->  zero-ref    "field V34.Item1 (fldOffset=0x0)" P-INDEP
 ;* V110 tmp91       [V110    ] (  0,  0   )     int  ->  zero-ref    "field V34.Item2 (fldOffset=0x4)" P-INDEP
 ;* V111 tmp92       [V111    ] (  0,  0   )     int  ->  zero-ref    "field V39.Item1 (fldOffset=0x0)" P-INDEP
-;  V112 tmp93       [V112,T54] (  2,  0   )     int  ->  rcx         "field V39.Item2 (fldOffset=0x4)" P-INDEP
+;  V112 tmp93       [V112,T53] (  2,  0   )     int  ->  rcx         "field V39.Item2 (fldOffset=0x4)" P-INDEP
 ;* V113 tmp94       [V113    ] (  0,  0   )     int  ->  zero-ref    "field V86.Item1 (fldOffset=0x0)" P-INDEP
 ;  V114 tmp95       [V114,T16] (  3,  3   )     int  ->  r14         "field V86.Item2 (fldOffset=0x4)" P-INDEP
 ;* V115 tmp96       [V115    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.Span`1[ushort]>
-;  V116 tmp97       [V116,T41] (  3,  0   )    long  ->  rbx         "Cast away GC"
-;  V117 cse0        [V117,T19] (  9,  2   )     ref  ->  [rsp+0x28]  spill-single-def "CSE - moderate"
-;  V118 cse1        [V118,T17] (  3,  3   )    long  ->  rsi         "CSE - aggressive"
-;  V119 rat0        [V119,T07] (  3,  6   )    long  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
-;  V120 rat1        [V120,T08] (  3,  6   )     int  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
+;  V116 tmp97       [V116,T40] (  3,  0   )    long  ->  rbx         "Cast away GC"
+;  V117 cse0        [V117,T17] (  3,  3   )    long  ->  rsi         "CSE - aggressive"
+;  V118 rat0        [V118,T07] (  3,  6   )    long  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
+;  V119 rat1        [V119,T08] (  3,  6   )     int  ->  rdx         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M27030_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -142,10 +141,10 @@ G_M27030_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 88
+       sub      rsp, 72
        xor      eax, eax
-       mov      qword ptr [rsp+0x38], rax
-       mov      qword ptr [rsp+0xA0], rcx
+       mov      qword ptr [rsp+0x28], rax
+       mov      qword ptr [rsp+0x90], rcx
        mov      rsi, rdx
        mov      rbx, r8
        ; byrRegs +[rbx]
@@ -165,7 +164,7 @@ G_M27030_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi},
                        ;; size=10 bbWeight=0 PerfScore 0.00
 G_M27030_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
        mov      rcx, 0xD1FFAB1E
-       and      rcx, qword ptr [rsp+0xA0]
+       and      rcx, qword ptr [rsp+0x90]
        je       SHORT G_M27030_IG06
                        ;; size=20 bbWeight=1 PerfScore 3.25
 G_M27030_IG05:        ; bbWeight=0.40, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
@@ -202,7 +201,7 @@ G_M27030_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi},
        ; gcr arg pop 0
                        ;; size=28 bbWeight=1 PerfScore 8.50
 G_M27030_IG10:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0088 {rbx rdi}, byref
-       mov      rdx, qword ptr [rsp+0xA0]
+       mov      rdx, qword ptr [rsp+0x90]
        cmp      byte  ptr [rax], al
        mov      r9, gword ptr [rsi]
        ; gcrRegs +[r9]
@@ -215,10 +214,8 @@ G_M27030_IG10:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0088 {rbx rd
        mov      rsi, rax
        jmp      G_M27030_IG03
                        ;; size=36 bbWeight=1 PerfScore 11.75
-G_M27030_IG11:        ; bbWeight=6, gcVars=0000000000080000 {V117}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs +[rbx]
+G_M27030_IG11:        ; bbWeight=6, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rbx rdi]
-       ; GC ptr vars +{V117}
        lea      ecx, [rdi+0x30]
        mov      eax, 0xD1FFAB1E
        mov      edi, edi
@@ -227,37 +224,33 @@ G_M27030_IG11:        ; bbWeight=6, gcVars=0000000000080000 {V117}, gcrefRegs=00
        lea      eax, [rdi+4*rdi]
        add      eax, eax
        sub      ecx, eax
-       mov      word  ptr [r15], cx
-       add      r15, -2
-       cmp      r15, rbp
+       mov      word  ptr [rbp], cx
+       add      rbp, -2
+       cmp      rbp, rbx
        ja       SHORT G_M27030_IG11
                        ;; size=38 bbWeight=6 PerfScore 42.00
-G_M27030_IG12:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M27030_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        xor      ecx, ecx
        cmp      edi, 10
        setb     cl
        call     [<unknown method>]
        ; gcr arg pop 0
        xor      ecx, ecx
-       cmp      r15, rbp
+       cmp      rbp, rbx
        sete     cl
        call     [<unknown method>]
        ; gcr arg pop 0
        add      edi, 48
-       mov      word  ptr [r15], di
+       mov      word  ptr [rbp], di
...

librariestestsnotieredcompilation.run.windows.x64.Release.mch

-4 (-3.60%) : 85488.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)

@@ -11,21 +11,19 @@
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.ComponentModel.Composition.CompositionExceptionTests>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.ComponentModel.Composition.CompositionException>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  5, 10   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
+;  V03 tmp1         [V03,T00] (  6, 12   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.CompositionException>
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V07 tmp5         [V07,T02] (  2,  2   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
+;  V07 tmp5         [V07,T01] (  2,  2   )     ref  ->  rdx         class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.ComponentModel.Composition.CompositionError]>
-;  V09 cse0         [V09,T01] (  3,  3   )     ref  ->  rsi         "CSE - moderate"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M14507_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rsi
        push     rbx
-       sub      rsp, 40
-                       ;; size=6 bbWeight=1 PerfScore 2.25
+       sub      rsp, 32
+                       ;; size=5 bbWeight=1 PerfScore 1.25
 G_M14507_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; System.ComponentModel.Composition.CompositionException
        call     CORINFO_HELP_NEWSFAST
@@ -54,27 +52,24 @@ G_M14507_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rdx r8]
        ; gcr arg pop 0
        mov      rcx, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rcx]
-       ; gcrRegs +[rsi]
-       mov      rdx, rsi
+       mov      rdx, gword ptr [rcx]
        ; gcrRegs +[rdx]
        lea      rcx, bword ptr [rbx+0x78]
        ; byrRegs +[rcx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rdx rbx]
+       ; gcrRegs -[rdx]
        ; byrRegs -[rcx]
-       mov      rcx, rsi
+       mov      rcx, gword ptr [rbx+0x78]
        ; gcrRegs +[rcx]
-                       ;; size=60 bbWeight=1 PerfScore 9.00
+                       ;; size=58 bbWeight=1 PerfScore 10.50
 G_M14507_IG04:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 32
        pop      rbx
-       pop      rsi
        tail.jmp [<unknown method>]
        ; gcr arg pop 0
-                       ;; size=12 bbWeight=1 PerfScore 3.25
+                       ;; size=11 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 111, prolog size 6, PerfScore 20.50, instruction count 25, allocated bytes for code 111 (MethodHash=8581c754) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
+Total bytes of code 107, prolog size 5, PerfScore 20.50, instruction count 22, allocated bytes for code 107 (MethodHash=8581c754) for method System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -82,11 +77,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

-12 (-2.85%) : 222650.dasm - System.Tests.TimeSpanTests:TotalMilliseconds_Invalid() (FullOpts)

@@ -11,25 +11,24 @@
 ;* V00 loc0         [V00    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V01 loc1         [V01    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V03 tmp1         [V03,T10] (  0,  0   )  double  ->  zero-ref    "Inline return value spill temp"
-;* V04 tmp2         [V04,T11] (  0,  0   )  double  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V03 tmp1         [V03,T09] (  0,  0   )  double  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04,T10] (  0,  0   )  double  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V05 tmp3         [V05    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;  V06 tmp4         [V06,T04] (  3,  6.11)     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[double]>
 ;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[double]>
 ;  V08 tmp6         [V08,T06] (  3,  3.06)     ref  ->  rdi         class-hnd exact single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[double]>
 ;  V09 tmp7         [V09,T00] (  5, 10.18)     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V10 tmp8         [V10,T02] (  4,  8.15)     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;* V11 tmp9         [V11,T12] (  0,  0   )  double  ->  zero-ref    "Inline return value spill temp"
-;* V12 tmp10        [V12,T13] (  0,  0   )  double  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V11 tmp9         [V11,T11] (  0,  0   )  double  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp10        [V12,T12] (  0,  0   )  double  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V13 tmp11        [V13    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;  V14 tmp12        [V14,T05] (  3,  6.11)     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[double]>
 ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[double]>
 ;  V16 tmp14        [V16,T07] (  3,  3.06)     ref  ->  rsi         class-hnd exact single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[double]>
 ;  V17 tmp15        [V17,T01] (  5, 10.18)     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V18 tmp16        [V18,T03] (  4,  8.15)     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V19 cse0         [V19,T09] (  2,  2.04)  double  ->  [rsp+0x20]  spill-single-def "CSE - moderate"
-;* V20 cse1         [V20,T14] (  0,  0   )  double  ->  zero-ref    "CSE - aggressive"
-;  V21 cse2         [V21,T08] (  3,  3.06)    long  ->  rbx         "CSE - aggressive"
+;* V19 cse0         [V19,T13] (  0,  0   )  double  ->  zero-ref    "CSE - aggressive"
+;  V20 cse1         [V20,T08] (  3,  3.06)    long  ->  rbx         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
 
@@ -42,8 +41,6 @@ G_M54943_IG01:        ; bbWeight=1.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        vzeroupper 
                        ;; size=11 bbWeight=1.02 PerfScore 5.35
 G_M54943_IG02:        ; bbWeight=1.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       vmovsd   xmm0, qword ptr [reloc @RWD00]
-       vmovsd   qword ptr [rsp+0x20], xmm0
        mov      rbx, 0xD1FFAB1E      ; Xunit.Sdk.AssertEqualityComparer`1[double]
        mov      rcx, rbx
        call     CORINFO_HELP_NEWSFAST
@@ -113,7 +110,7 @@ G_M54943_IG02:        ; bbWeight=1.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rdx rdi]
        ; byrRegs -[rcx]
-       vmovsd   xmm0, qword ptr [rsp+0x20]
+       vmovsd   xmm0, qword ptr [reloc @RWD00]
        vmovsd   xmm1, qword ptr [reloc @RWD00]
        mov      r8, rsi
        ; gcrRegs +[r8]
@@ -159,8 +156,6 @@ G_M54943_IG02:        ; bbWeight=1.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
-                       ;; size=322 bbWeight=1.02 PerfScore 47.61
-G_M54943_IG03:        ; bbWeight=1.02, extend
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rdx]
        ; gcr arg pop 0
@@ -168,6 +163,8 @@ G_M54943_IG03:        ; bbWeight=1.02, extend
        ; byrRegs +[rcx]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
+                       ;; size=323 bbWeight=1.02 PerfScore 47.36
+G_M54943_IG03:        ; bbWeight=1.02, extend
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rdx rdi]
        ; byrRegs -[rcx]
@@ -194,7 +191,7 @@ G_M54943_IG03:        ; bbWeight=1.02, extend
        vmovsd   xmm1, qword ptr [reloc @RWD08]
        mov      r8, rbx
        ; gcrRegs +[r8]
-                       ;; size=74 bbWeight=1.02 PerfScore 18.33
+                       ;; size=61 bbWeight=1.02 PerfScore 14.51
 G_M54943_IG04:        ; bbWeight=1.02, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
@@ -208,7 +205,7 @@ RWD00   dq  430A36E2EB1C4328h   ; 9.22337204e+14
 RWD08      dq  C30A36E2EB1C4328h   ; -9.22337204e+14
 
 
-; Total bytes of code 421, prolog size 11, PerfScore 75.62, instruction count 90, allocated bytes for code 421 (MethodHash=9e7c2960) for method System.Tests.TimeSpanTests:TotalMilliseconds_Invalid() (FullOpts)
+Total bytes of code 409, prolog size 11, PerfScore 71.54, instruction count 88, allocated bytes for code 409 (MethodHash=9e7c2960) for method System.Tests.TimeSpanTests:TotalMilliseconds_Invalid() (FullOpts)
 ; ============================================================
 
 Unwind Info:

-8 (-1.79%) : 178999.dasm - System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader2():this (FullOpts)

@@ -16,7 +16,7 @@
 ;  V05 tmp1         [V05,T03] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "NewObj constructor temp" <System.Xml.Xsl.XslCompiledTransform>
 ;  V06 tmp2         [V06,T00] (  3,  6   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlReaderSettings>
 ;  V07 tmp3         [V07,T14] (  2,  0   )     ref  ->  rbx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-;  V08 tmp4         [V08,T13] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V08 tmp4         [V08,T13] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "dup spill" <<unknown class>>
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V10 tmp6         [V10    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V11 tmp7         [V11    ] (  0,  0   )     int  ->  zero-ref   
@@ -37,11 +37,10 @@
 ;  V26 tmp22        [V26,T04] (  2,  4   )   byref  ->  rcx         single-def "Inlining Arg"
 ;  V27 tmp23        [V27,T05] (  2,  4   )   byref  ->  rdx         single-def "Inlining Arg"
 ;* V28 tmp24        [V28    ] (  0,  0   )     ref  ->  zero-ref    single-def "spilling varStr"
-;* V29 tmp25        [V29,T17] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
+;* V29 tmp25        [V29,T16] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
 ;  V30 tmp26        [V30,T15] (  2,  0   )     ref  ->  rcx         class-hnd "Inlining Arg" <System.Xml.XmlReaderSettings>
 ;  V31 PSPSym       [V31,T11] (  1,  1   )    long  ->  [rbp-0x18]  do-not-enreg[V] "PSPSym"
-;  V32 cse0         [V32,T16] (  2,  0   )     ref  ->  rdx         "CSE - moderate"
-;  V33 cse1         [V33,T09] (  2,  2   )     ref  ->  rsi         "CSE - aggressive"
+;  V32 cse0         [V32,T09] (  2,  2   )     ref  ->  rsi         "CSE - aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -210,19 +209,12 @@ G_M40434_IG10:        ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
        call     CORINFO_HELP_NEWARR_1_OBJ
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rsi, rax
-       ; gcrRegs +[rsi]
-       lea      rcx, bword ptr [rsi+0x10]
-       ; byrRegs +[rcx]
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
-       ; byrRegs -[rcx]
-       mov      gword ptr [rsp+0x20], rsi
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       mov      gword ptr [rax+0x10], rcx
+       mov      gword ptr [rsp+0x20], rax
        ; gcr arg write
        mov      rcx, gword ptr [rbp+0x10]
-       ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        mov      r8, 0xD1FFAB1E
@@ -231,10 +223,10 @@ G_M40434_IG10:        ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
        ; gcrRegs +[r9]
        ; GC ptr vars -{V00 V01}
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rbx rsi r8-r9]
+       ; gcrRegs -[rax rcx rdx rbx r8-r9]
        ; gcr arg pop 0
        lea      rax, G_M40434_IG08
-                       ;; size=90 bbWeight=0 PerfScore 0.00
+                       ;; size=82 bbWeight=0 PerfScore 0.00
 G_M40434_IG11:        ; bbWeight=0, funclet epilog, nogc, extend
        add      rsp, 48
        pop      rbx
@@ -243,7 +235,7 @@ G_M40434_IG11:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 446, prolog size 20, PerfScore 34.50, instruction count 103, allocated bytes for code 446 (MethodHash=6790620d) for method System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader2():this (FullOpts)
+Total bytes of code 438, prolog size 20, PerfScore 34.50, instruction count 101, allocated bytes for code 438 (MethodHash=6790620d) for method System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader2():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+7 (+0.66%) : 158215.dasm - System.Net.Http.Functional.Tests.HttpClientHandlerCancellationTest+<>cDisplayClass10+<<PostAsyncCancelDuringRequestContentSend_TaskCanceledQuickly>b1>d:MoveNext():this (FullOpts)

@@ -23,10 +23,10 @@
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;  V13 tmp5         [V13,T06] (  4,  4   )     ref  ->  rax        
 ;  V14 tmp6         [V14,T01] (  5, 10   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V15 tmp7         [V15,T30] (  2,  0   )     ref  ->  rbx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V15 tmp7         [V15,T29] (  2,  0   )     ref  ->  rbx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;  V16 tmp8         [V16    ] (  2,  0   )  struct (40) [rbp-0x80]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
-;  V17 tmp9         [V17,T31] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V18 tmp10        [V18,T32] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V17 tmp9         [V17,T30] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V18 tmp10        [V18,T31] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
 ;  V19 tmp11        [V19,T04] (  3,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TaskAwaiter>
 ;* V21 tmp13        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -40,14 +40,14 @@
 ;* V29 tmp21        [V29    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;  V30 tmp22        [V30,T27] (  4,  0   )     int  ->  rdi         "Inlining Arg"
 ;* V31 tmp23        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V32 tmp24        [V32,T29] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V33 tmp25        [V33,T33] (  2,  0   )   byref  ->  r14         single-def "Inlining Arg"
+;  V32 tmp24        [V32,T28] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V33 tmp25        [V33,T32] (  2,  0   )   byref  ->  r14         single-def "Inlining Arg"
 ;* V34 tmp26        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp27        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V36 tmp28        [V36,T37] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V36 tmp28        [V36,T36] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V37 tmp29        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V38 tmp30        [V38    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V39 tmp31        [V39,T34] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V39 tmp31        [V39,T33] (  2,  0   )   byref  ->  rcx         single-def "Inlining Arg"
 ;  V40 tmp32        [V40,T02] (  4,  6.00)   byref  ->  rcx         single-def "Inlining Arg"
 ;* V41 tmp33        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
 ;  V42 tmp34        [V42,T14] ( 12,  0.06)     ref  ->  rbx         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
@@ -75,12 +75,11 @@
 ;* V64 tmp56        [V64    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V65 tmp57        [V65    ] (  0,  0   )     int  ->  zero-ref    single-def "field V37._length (fldOffset=0x8)" P-INDEP
 ;  V66 tmp58        [V66,T09] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V67 tmp59        [V67,T35] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V68 tmp60        [V68,T36] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V67 tmp59        [V67,T34] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V68 tmp60        [V68,T35] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V69 PSPSym       [V69,T13] (  1,  1   )    long  ->  [rbp-0x98]  do-not-enreg[V] "PSPSym"
 ;  V70 cse0         [V70,T21] (  3,  0.01)     int  ->  rdx         "CSE - conservative"
 ;  V71 cse1         [V71,T20] (  3,  0.01)     ref  ->  rsi         "CSE - conservative"
-;  V72 cse2         [V72,T28] (  3,  0   )     ref  ->  rdx         "CSE - conservative"
 ;
 ; Lcl frame size = 168
 
@@ -456,15 +455,15 @@ G_M41068_IG27:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        mov      r15d, dword ptr [rbp-0x38]
        sub      r15d, edi
        jns      SHORT G_M41068_IG28
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       mov      rcx, rdx
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        ; byrRegs -[rcx]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M41068_IG28:        ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=4000 {r14}, byref, isz
        cmp      r15d, 18
        jb       SHORT G_M41068_IG29
@@ -568,7 +567,7 @@ G_M41068_IG34:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1063, prolog size 62, PerfScore 92.37, instruction count 268, allocated bytes for code 1063 (MethodHash=f8215f93) for method System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
+Total bytes of code 1070, prolog size 62, PerfScore 92.37, instruction count 268, allocated bytes for code 1070 (MethodHash=f8215f93) for method System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+7 (+0.99%) : 258261.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTestsDefault+PropertyNameTestsContextDefault:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)

@@ -15,7 +15,7 @@
 ;  V04 loc1         [V04,T02] (  4, 12   )     ref  ->  rdi         class-hnd exact <System.String>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Queue`1+Enumerator[System.String]>
-;  V07 tmp2         [V07,T29] (  2,  0   )     int  ->  rcx        
+;  V07 tmp2         [V07,T28] (  2,  0   )     int  ->  rcx        
 ;  V08 tmp3         [V08,T26] (  3,  0   )     ref  ->  rdi        
 ;  V09 tmp4         [V09,T27] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V10 tmp5         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -72,8 +72,7 @@
 ;  V61 PSPSym       [V61,T23] (  1,  1   )    long  ->  [rbp-0x60]  do-not-enreg[V] "PSPSym"
 ;  V62 cse0         [V62,T19] (  4,  2   )     int  ->  rcx         "CSE - moderate"
 ;  V63 cse1         [V63,T20] (  4,  2   )     int  ->  rcx         "CSE - moderate"
-;  V64 cse2         [V64,T28] (  3,  0   )     ref  ->  rdx         "CSE - moderate"
-;  V65 cse3         [V65,T13] (  3,  5   )    long  ->  rsi         "CSE - moderate"
+;  V64 cse2         [V64,T13] (  3,  5   )    long  ->  rsi         "CSE - moderate"
 ;
 ; Lcl frame size = 96
 
@@ -279,14 +278,14 @@ G_M32222_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        sete     cl
        test     cl, cl
        jne      SHORT G_M32222_IG20
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M32222_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rbp-0x24], -1
        je       SHORT G_M32222_IG21
@@ -433,7 +432,7 @@ G_M32222_IG33:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
                        ;; size=11 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 705, prolog size 42, PerfScore 219.46, instruction count 196, allocated bytes for code 705 (MethodHash=f3ef8221) for method System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
+Total bytes of code 712, prolog size 42, PerfScore 219.46, instruction count 196, allocated bytes for code 712 (MethodHash=f3ef8221) for method System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+28 (+2.54%) : 106899.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->  r14        
 ;  V10 loc7         [V10,T08] (  3, 12   )     ref  ->   r8         class-hnd <System.Xml.XmlDictionaryString>
 ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T23] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T24] (  3,  0   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->  rcx         "Inlining Arg"
+;  V17 tmp6         [V17,T19] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->  rsi         "Inlining Arg"
-;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V19 tmp8         [V19,T25] (  3,  0   )     int  ->  rsi         "Inlining Arg"
+;  V20 tmp9         [V20,T29] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T39] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V26 tmp15        [V26,T30] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->  rcx         "Inlining Arg"
+;  V28 tmp17        [V28,T20] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->  r15         "Inlining Arg"
-;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->  rbp         "Inlining Arg"
+;  V30 tmp19        [V30,T26] (  3,  0   )     int  ->  r15         "Inlining Arg"
+;  V31 tmp20        [V31,T31] (  2,  0   )   byref  ->  rbp         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V37 tmp26        [V37,T32] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->  rcx         "Inlining Arg"
+;  V41 tmp30        [V41,T21] (  4,  0   )     int  ->  rcx         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->  rsi         "Inlining Arg"
-;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
+;  V43 tmp32        [V43,T27] (  3,  0   )     int  ->  rsi         "Inlining Arg"
+;  V44 tmp33        [V44,T33] (  2,  0   )   byref  ->  rbx         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V50 tmp39        [V50,T34] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->  rbx         "Inlining Arg"
+;  V52 tmp41        [V52,T22] (  4,  0   )     int  ->  rbx         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->  rdi         "Inlining Arg"
-;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->  rsi         "Inlining Arg"
+;  V54 tmp43        [V54,T28] (  3,  0   )     int  ->  rdi         "Inlining Arg"
+;  V55 tmp44        [V55,T35] (  2,  0   )   byref  ->  rsi         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
+;  V61 tmp50        [V61,T36] (  2,  0   )   byref  ->  rcx         "Inlining Arg"
 ;  V62 tmp51        [V62,T11] (  3,  8   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T06] (  4, 12   )     int  ->  r13         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.24)     ref  ->  r15         class-hnd exact "Inlining Arg" <System.String>
@@ -106,11 +106,10 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
 ;  V97 tmp86        [V97,T09] (  3, 12   )     ref  ->   r8         "arr expr"
-;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->  rdx         "argument with side effect"
-;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V98 tmp87        [V98,T37] (  2,  0   )     ref  ->  rdx         "argument with side effect"
+;  V99 tmp88        [V99,T38] (  2,  0   )     ref  ->  rdx         "argument with side effect"
 ;  V100 cse0        [V100,T17] (  3,  3   )     ref  ->  rcx         "CSE - moderate"
 ;  V101 cse1        [V101,T10] (  6, 10   )     int  ->  rbp         multi-def "CSE - aggressive"
-;  V102 cse2        [V102,T19] ( 12,  0   )     ref  ->  rdx         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
@@ -384,15 +383,15 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      esi, dword ptr [rsp+0x48]
        sub      esi, ecx
        jns      SHORT G_M45430_IG30
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        ; byrRegs -[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=74 bbWeight=0 PerfScore 0.00
+                       ;; size=81 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 11
        jb       SHORT G_M45430_IG31
@@ -433,15 +432,15 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r15d, dword ptr [rsp+0x48]
        sub      r15d, ecx
        jns      SHORT G_M45430_IG33
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        ; byrRegs -[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=67 bbWeight=0 PerfScore 0.00
+                       ;; size=74 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
        test     r15d, r15d
        je       SHORT G_M45430_IG34
@@ -513,15 +512,15 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      esi, dword ptr [rsp+0x48]
        sub      esi, ecx
        jns      SHORT G_M45430_IG38
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        ; byrRegs -[rdx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=74 bbWeight=0 PerfScore 0.00
+                       ;; size=81 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 11
        jb       SHORT G_M45430_IG39
@@ -569,15 +568,15 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      edi, dword ptr [rsp+0x48]
        sub      edi, ebx
        jns      SHORT G_M45430_IG43
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       mov      rcx, rdx
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
        ; byrRegs -[rcx]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=38 bbWeight=0 PerfScore 0.00
+                       ;; size=45 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        test     edi, edi
        je       SHORT G_M45430_IG44
@@ -625,7 +624,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=50 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1104, prolog size 40, PerfScore 236.59, instruction count 286, allocated bytes for code 1104 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1132, prolog size 40, PerfScore 236.59, instruction count 286, allocated bytes for code 1132 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

realworld.run.windows.x64.checked.mch

-5 (-0.44%) : 1779.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)

@@ -56,11 +56,10 @@
 ;  V45 tmp40        [V45,T08] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
 ;  V46 tmp41        [V46,T16] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V47 PSPSym       [V47,T24] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
-;  V48 cse0         [V48,T36] (  2,  0   )     ref  ->  rdx         "CSE - moderate"
-;  V49 cse1         [V49,T10] (  8,  5   )     int  ->  rbx         multi-def "CSE - moderate"
-;  V50 cse2         [V50,T17] (  3,  3   )     int  ->   r8         "CSE - moderate"
-;  V51 rat0         [V51,T25] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V52 rat1         [V52,T26] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V48 cse0         [V48,T10] (  8,  5   )     int  ->  rbx         multi-def "CSE - moderate"
+;  V49 cse1         [V49,T17] (  3,  3   )     int  ->   r8         "CSE - moderate"
+;  V50 rat0         [V50,T25] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V51 rat1         [V51,T26] (  3,  6   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 48
 
@@ -418,21 +417,16 @@ G_M23682_IG32:        ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
        ; gcr arg pop 0
        mov      r14, rax
        ; gcrRegs +[r14]
-       lea      rcx, bword ptr [r14+0x10]
-       ; byrRegs +[rcx]
-       mov      rdx, 0xD1FFAB1E
-       ; gcrRegs +[rdx]
-       call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
-       ; byrRegs -[rcx]
-       mov      rcx, rbx
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
+       mov      gword ptr [r14+0x10], rcx
+       mov      rcx, rbx
        mov      rdx, r14
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        xor      r9d, r9d
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx] +[rax]
+       ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        mov      rcx, 0xD1FFAB1E
        mov      qword ptr [rsi+0x70], rcx
@@ -480,7 +474,7 @@ G_M23682_IG32:        ; bbWeight=0, gcVars=0000000000000002 {V00}, gcrefRegs=000
        ; gcrRegs -[rcx rdx rsi]
        ; gcr arg pop 0
        int3     
-                       ;; size=212 bbWeight=0 PerfScore 0.00
+                       ;; size=207 bbWeight=0 PerfScore 0.00
 G_M23682_IG33:        ; bbWeight=0, gcVars=0000000000000013 {V00 V01 V02}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
        ; gcrRegs +[rdx]
        ; GC ptr vars +{V00 V01 V02}
@@ -571,7 +565,7 @@ RWD48   dq  0075002D00360034h, 0032002D00730063h
 RWD64      dq  002D006600740075h, 0045004200360031h
 
 
-; Total bytes of code 1147, prolog size 33, PerfScore 182.25, instruction count 282, allocated bytes for code 1147 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
+Total bytes of code 1142, prolog size 33, PerfScore 182.25, instruction count 281, allocated bytes for code 1142 (MethodHash=aa61a37d) for method System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
aspnet.run.windows.x64.checked.mch 171 124 43 4 -1,605 +295
benchmarks.run.windows.x64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.windows.x64.checked.mch 6 1 5 0 -15 +127
benchmarks.run_tiered.windows.x64.checked.mch 1 1 0 0 -10 +0
coreclr_tests.run.windows.x64.checked.mch 20 8 12 0 -56 +358
libraries.crossgen2.windows.x64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.windows.x64.checked.mch 12 5 7 0 -38 +122
libraries_tests.run.windows.x64.Release.mch 127 76 51 0 -1,802 +553
librariestestsnotieredcompilation.run.windows.x64.Release.mch 17 10 6 1 -57 +51
realworld.run.windows.x64.checked.mch 1 1 0 0 -5 +0
smoke_tests.nativeaot.windows.x64.checked.mch 0 0 0 0 -0 +0
355 226 124 5 -3,588 +1,506

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
aspnet.run.windows.x64.checked.mch 113,444 48,462 64,982 967 (0.85%) 970 (0.85%)
benchmarks.run.windows.x64.checked.mch 28,178 4 28,174 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch 101,027 50,170 50,857 126 (0.12%) 126 (0.12%)
benchmarks.run_tiered.windows.x64.checked.mch 54,255 36,844 17,411 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.x64.checked.mch 574,112 341,113 232,999 300 (0.05%) 300 (0.05%)
libraries.crossgen2.windows.x64.checked.mch 243,023 15 243,008 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x64.checked.mch 307,639 6 307,633 2 (0.00%) 2 (0.00%)
libraries_tests.run.windows.x64.Release.mch 682,159 485,176 196,983 2,458 (0.36%) 2,458 (0.36%)
librariestestsnotieredcompilation.run.windows.x64.Release.mch 319,780 21,886 297,894 6 (0.00%) 6 (0.00%)
realworld.run.windows.x64.checked.mch 36,888 3 36,885 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch 32,444 10 32,434 0 (0.00%) 0 (0.00%)
2,492,949 983,689 1,509,260 3,859 (0.15%) 3,862 (0.15%)

jit-analyze output

aspnet.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 41760738 (overridden on cmd)
Total bytes of diff: 41759428 (overridden on cmd)
Total bytes of delta: -1310 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -4124 : 100649.dasm (-100.00 % of base)
       -4124 : 91235.dasm (-100.00 % of base)
       -3402 : 63726.dasm (-100.00 % of base)
       -3399 : 100878.dasm (-100.00 % of base)
       -3399 : 91609.dasm (-100.00 % of base)
       -3387 : 62031.dasm (-100.00 % of base)
       -3301 : 6349.dasm (-100.00 % of base)
       -3268 : 63727.dasm (-100.00 % of base)
       -3251 : 62032.dasm (-100.00 % of base)
       -2717 : 54206.dasm (-100.00 % of base)
       -2689 : 38813.dasm (-100.00 % of base)
       -2666 : 42559.dasm (-100.00 % of base)
       -2431 : 94593.dasm (-100.00 % of base)
       -2390 : 100601.dasm (-100.00 % of base)
       -2390 : 91161.dasm (-100.00 % of base)
       -2239 : 54075.dasm (-100.00 % of base)
       -2204 : 38610.dasm (-100.00 % of base)
       -2176 : 63799.dasm (-100.00 % of base)
       -2176 : 17369.dasm (-100.00 % of base)
       -2176 : 35316.dasm (-100.00 % of base)

68 total files with Code Size differences (68 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -4124 (-100.00 % of base) : 100649.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
       -4124 (-100.00 % of base) : 91235.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
       -3402 (-100.00 % of base) : 63726.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1-OSR)
       -3399 (-100.00 % of base) : 100878.dasm - OrchardCore.DisplayManagement.Descriptors.DefaultShapeTableManager+<GetShapeTableAsync>d__11:MoveNext():this (Tier1-OSR)
       -3399 (-100.00 % of base) : 91609.dasm - OrchardCore.DisplayManagement.Descriptors.DefaultShapeTableManager+<GetShapeTableAsync>d__11:MoveNext():this (Tier1-OSR)
       -3387 (-100.00 % of base) : 62031.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1-OSR)
       -3301 (-100.00 % of base) : 6349.dasm - System.Diagnostics.Tracing.EventSource:CreateManifestAndDescriptors(System.Type,System.String,System.Diagnostics.Tracing.EventSource,int):ubyte[] (Tier1-OSR)
       -3268 (-100.00 % of base) : 63727.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1)
       -3251 (-100.00 % of base) : 62032.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1)
       -2717 (-100.00 % of base) : 54206.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
       -2689 (-100.00 % of base) : 38813.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
       -2666 (-100.00 % of base) : 42559.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
       -2431 (-100.00 % of base) : 94593.dasm - System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int (Instrumented Tier1)
       -2390 (-100.00 % of base) : 100601.dasm - OrchardCore.Environment.Extensions.ExtensionManager+<EnsureInitializedAsync>d__33:MoveNext():this (Tier1-OSR)
       -2390 (-100.00 % of base) : 91161.dasm - OrchardCore.Environment.Extensions.ExtensionManager+<EnsureInitializedAsync>d__33:MoveNext():this (Tier1-OSR)
       -2239 (-100.00 % of base) : 54075.dasm - System.Net.Security.SslStreamPal:EncryptMessage(System.Net.Security.SafeDeleteSslContext,System.ReadOnlyMemory`1[ubyte],int,int):System.Net.Security.ProtocolToken (Tier1)
       -2204 (-100.00 % of base) : 38610.dasm - System.Net.Security.SslStreamPal:EncryptMessage(System.Net.Security.SafeDeleteSslContext,System.ReadOnlyMemory`1[ubyte],int,int):System.Net.Security.ProtocolToken (Tier1)
       -2176 (-100.00 % of base) : 63799.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
       -2176 (-100.00 % of base) : 17369.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
       -2176 (-100.00 % of base) : 35316.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)

Top method improvements (percentages):
       -2176 (-100.00 % of base) : 63799.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
       -2176 (-100.00 % of base) : 17369.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
       -4124 (-100.00 % of base) : 100649.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
       -2176 (-100.00 % of base) : 35316.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
       -4124 (-100.00 % of base) : 91235.dasm - Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelConventions:ApplyConventions(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel,System.Collections.Generic.IEnumerable`1[Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelConvention]) (Tier1-OSR)
       -2689 (-100.00 % of base) : 38813.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
       -2666 (-100.00 % of base) : 42559.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
       -2717 (-100.00 % of base) : 54206.dasm - Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,System.Buffers.ArrayPool`1[ubyte],System.Buffers.ArrayPool`1[ushort]):this (Tier1)
       -1619 (-100.00 % of base) : 65644.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
       -1640 (-100.00 % of base) : 34349.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
       -1597 (-100.00 % of base) : 53625.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
       -1608 (-100.00 % of base) : 31991.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
       -1622 (-100.00 % of base) : 38481.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
       -1580 (-100.00 % of base) : 42969.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalConnection+<OpenAsync>d__66:MoveNext():this (Tier1)
       -1014 (-100.00 % of base) : 100653.dasm - Microsoft.Extensions.FileProviders.Composite.CompositeDirectoryContents:EnsureFilesAreInitialized():this (Tier1-OSR)
       -1014 (-100.00 % of base) : 91243.dasm - Microsoft.Extensions.FileProviders.Composite.CompositeDirectoryContents:EnsureFilesAreInitialized():this (Tier1-OSR)
       -3268 (-100.00 % of base) : 63727.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1)
       -3251 (-100.00 % of base) : 62032.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1)
       -3387 (-100.00 % of base) : 62031.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1-OSR)
       -3402 (-100.00 % of base) : 63726.dasm - Npgsql.MultiplexingDataSource+<MultiplexingWriteLoop>d__11:MoveNext():this (Tier1-OSR)


benchmarks.run_pgo.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 34741684 (overridden on cmd)
Total bytes of diff: 34741796 (overridden on cmd)
Total bytes of delta: 112 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -6944 : 91209.dasm (-100.00 % of base)
       -3024 : 100328.dasm (-100.00 % of base)
       -2778 : 98182.dasm (-100.00 % of base)
       -1632 : 100334.dasm (-100.00 % of base)
       -1427 : 89050.dasm (-100.00 % of base)
       -1409 : 85532.dasm (-100.00 % of base)

6 total files with Code Size differences (6 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -6944 (-100.00 % of base) : 91209.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_Task>d__9:MoveNext():this (Tier1-OSR)
       -3024 (-100.00 % of base) : 100328.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan`1[System.String],ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -2778 (-100.00 % of base) : 98182.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -1632 (-100.00 % of base) : 100334.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -1427 (-100.00 % of base) : 89050.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -1409 (-100.00 % of base) : 85532.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)

Top method improvements (percentages):
       -3024 (-100.00 % of base) : 100328.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan`1[System.String],ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -1632 (-100.00 % of base) : 100334.dasm - System.Buffers.StringSearchValues:CreateForSingleValue(System.String,System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
       -1427 (-100.00 % of base) : 89050.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -2778 (-100.00 % of base) : 98182.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1+<ProducerConsumer>d__24[System.__Canon]:MoveNext():this (Tier1-OSR)
       -1409 (-100.00 % of base) : 85532.dasm - System.Collections.Generic.Dictionary`2[BenchmarksGame.ByteString,System.__Canon]:TryInsert(BenchmarksGame.ByteString,System.__Canon,ubyte):ubyte:this (Tier1)
       -6944 (-100.00 % of base) : 91209.dasm - System.Net.Sockets.Tests.SocketSendReceivePerfTest+<SendAsyncThenReceiveAsync_Task>d__9:MoveNext():this (Tier1-OSR)

6 total methods with Code Size differences (6 improved, 0 regressed).


benchmarks.run_tiered.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 12662284 (overridden on cmd)
Total bytes of diff: 12662274 (overridden on cmd)
Total bytes of delta: -10 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -1250 : 48441.dasm (-100.00 % of base)

1 total files with Code Size differences (1 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -1250 (-100.00 % of base) : 48441.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)

Top method improvements (percentages):
       -1250 (-100.00 % of base) : 48441.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (Tier1)

1 total methods with Code Size differences (1 improved, 0 regressed).


coreclr_tests.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 392866349 (overridden on cmd)
Total bytes of diff: 392866651 (overridden on cmd)
Total bytes of delta: 302 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -2150 : 57181.dasm (-100.00 % of base)
       -1859 : 227903.dasm (-100.00 % of base)
       -1854 : 494324.dasm (-100.00 % of base)
       -1842 : 227911.dasm (-100.00 % of base)
       -1250 : 516564.dasm (-100.00 % of base)
       -1147 : 516543.dasm (-100.00 % of base)
       -1135 : 235869.dasm (-100.00 % of base)
       -1104 : 479846.dasm (-100.00 % of base)
        -965 : 32331.dasm (-100.00 % of base)
        -531 : 236714.dasm (-100.00 % of base)
        -526 : 277612.dasm (-100.00 % of base)
        -461 : 369099.dasm (-100.00 % of base)
        -445 : 227599.dasm (-100.00 % of base)
        -389 : 277631.dasm (-100.00 % of base)
        -283 : 277624.dasm (-100.00 % of base)
        -261 : 277569.dasm (-100.00 % of base)
        -245 : 516181.dasm (-100.00 % of base)
        -238 : 513451.dasm (-100.00 % of base)
        -238 : 277299.dasm (-100.00 % of base)
        -102 : 516183.dasm (-100.00 % of base)

20 total files with Code Size differences (20 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -2150 (-100.00 % of base) : 57181.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -1859 (-100.00 % of base) : 227903.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -1854 (-100.00 % of base) : 494324.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
       -1842 (-100.00 % of base) : 227911.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -1250 (-100.00 % of base) : 516564.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
       -1147 (-100.00 % of base) : 516543.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
       -1135 (-100.00 % of base) : 235869.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
       -1104 (-100.00 % of base) : 479846.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -965 (-100.00 % of base) : 32331.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
        -531 (-100.00 % of base) : 236714.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
        -526 (-100.00 % of base) : 277612.dasm - System.StartupHookProvider:ProcessStartupHooks(System.String) (FullOpts)
        -461 (-100.00 % of base) : 369099.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
        -445 (-100.00 % of base) : 227599.dasm - NumericSortRect:Run():double:this (Tier1)
        -389 (-100.00 % of base) : 277631.dasm - System.Runtime.Loader.AssemblyLoadContext:OnProcessExit() (FullOpts)
        -283 (-100.00 % of base) : 277624.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
        -261 (-100.00 % of base) : 277569.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
        -245 (-100.00 % of base) : 516181.dasm - AA:reset() (FullOpts)
        -238 (-100.00 % of base) : 513451.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
        -238 (-100.00 % of base) : 277299.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
        -102 (-100.00 % of base) : 516183.dasm - TestApp:test_2_2(int):int (FullOpts)

Top method improvements (percentages):
        -245 (-100.00 % of base) : 516181.dasm - AA:reset() (FullOpts)
        -531 (-100.00 % of base) : 236714.dasm - BinderTracingTests.Helpers:AssemblyNamesMatch(System.Reflection.AssemblyName,System.Reflection.AssemblyName):ubyte (Tier1)
       -1854 (-100.00 % of base) : 494324.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
       -1859 (-100.00 % of base) : 227903.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
       -1842 (-100.00 % of base) : 227911.dasm - Huffman:DoHuffIteration(ubyte[],ubyte[],ubyte[],int,int,huff_node[]):long (Tier1-OSR)
        -461 (-100.00 % of base) : 369099.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,ulong,int,int):ubyte (Tier1)
        -283 (-100.00 % of base) : 277624.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
        -445 (-100.00 % of base) : 227599.dasm - NumericSortRect:Run():double:this (Tier1)
        -238 (-100.00 % of base) : 513451.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
        -238 (-100.00 % of base) : 277299.dasm - Runtime_71611:Cloned(Runtime_71611+I,int[],int[],int,int):int (Tier1)
       -2150 (-100.00 % of base) : 57181.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
        -965 (-100.00 % of base) : 32331.dasm - System.Number:<FormatUInt32>g__FormatUInt32Slow|43_0(uint,System.String,System.IFormatProvider):System.String (Instrumented Tier1)
       -1135 (-100.00 % of base) : 235869.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
        -389 (-100.00 % of base) : 277631.dasm - System.Runtime.Loader.AssemblyLoadContext:OnProcessExit() (FullOpts)
        -261 (-100.00 % of base) : 277569.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
        -526 (-100.00 % of base) : 277612.dasm - System.StartupHookProvider:ProcessStartupHooks(System.String) (FullOpts)
       -1104 (-100.00 % of base) : 479846.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1250 (-100.00 % of base) : 516564.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
       -1147 (-100.00 % of base) : 516543.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
        -102 (-100.00 % of base) : 516183.dasm - TestApp:test_2_2(int):int (FullOpts)

20 total methods with Code Size differences (20 improved, 0 regressed).


libraries.pmi.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 61196926 (overridden on cmd)
Total bytes of diff: 61197010 (overridden on cmd)
Total bytes of delta: 84 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -7932 : 218737.dasm (-100.00 % of base)
       -3210 : 227165.dasm (-100.00 % of base)
       -2822 : 227184.dasm (-100.00 % of base)
       -2050 : 185631.dasm (-100.00 % of base)
       -1210 : 134786.dasm (-100.00 % of base)
       -1168 : 232824.dasm (-100.00 % of base)
       -1147 : 134713.dasm (-100.00 % of base)
       -1104 : 232825.dasm (-100.00 % of base)
        -612 : 233527.dasm (-100.00 % of base)
        -586 : 233526.dasm (-100.00 % of base)
        -506 : 233543.dasm (-100.00 % of base)
        -496 : 233542.dasm (-100.00 % of base)

12 total files with Code Size differences (12 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -7932 (-100.00 % of base) : 218737.dasm - System.Data.OleDb.OleDbCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.OleDb.OleDbConnection,System.Data.OleDb.OleDbCommand):System.Data.OleDb.OleDbParameter[] (FullOpts)
       -3210 (-100.00 % of base) : 227165.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)
       -2822 (-100.00 % of base) : 227184.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)
       -2050 (-100.00 % of base) : 185631.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
       -1210 (-100.00 % of base) : 134786.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
       -1168 (-100.00 % of base) : 232824.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1147 (-100.00 % of base) : 134713.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
       -1104 (-100.00 % of base) : 232825.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -612 (-100.00 % of base) : 233527.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -586 (-100.00 % of base) : 233526.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
        -506 (-100.00 % of base) : 233543.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
        -496 (-100.00 % of base) : 233542.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)

Top method improvements (percentages):
       -2050 (-100.00 % of base) : 185631.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
       -7932 (-100.00 % of base) : 218737.dasm - System.Data.OleDb.OleDbCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.OleDb.OleDbConnection,System.Data.OleDb.OleDbCommand):System.Data.OleDb.OleDbParameter[] (FullOpts)
       -3210 (-100.00 % of base) : 227165.dasm - System.Management.RelatedObjectQuery:ParseQuery(System.String):this (FullOpts)
       -2822 (-100.00 % of base) : 227184.dasm - System.Management.RelationshipQuery:ParseQuery(System.String):this (FullOpts)
       -1168 (-100.00 % of base) : 232824.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1104 (-100.00 % of base) : 232825.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -586 (-100.00 % of base) : 233526.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
        -612 (-100.00 % of base) : 233527.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -496 (-100.00 % of base) : 233542.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
        -506 (-100.00 % of base) : 233543.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
       -1210 (-100.00 % of base) : 134786.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
       -1147 (-100.00 % of base) : 134713.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)

12 total methods with Code Size differences (12 improved, 0 regressed).


libraries_tests.run.windows.x64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 279034736 (overridden on cmd)
Total bytes of diff: 279033487 (overridden on cmd)
Total bytes of delta: -1249 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
      -20978 : 627105.dasm (-100.00 % of base)
      -10380 : 54512.dasm (-100.00 % of base)
       -9557 : 618898.dasm (-100.00 % of base)
       -9100 : 310007.dasm (-100.00 % of base)
       -8343 : 54867.dasm (-100.00 % of base)
       -8264 : 619990.dasm (-100.00 % of base)
       -7486 : 630509.dasm (-100.00 % of base)
       -6840 : 59797.dasm (-100.00 % of base)
       -6428 : 92287.dasm (-100.00 % of base)
       -6387 : 620996.dasm (-100.00 % of base)
       -6262 : 621066.dasm (-100.00 % of base)
       -5924 : 310312.dasm (-100.00 % of base)
       -5914 : 310319.dasm (-100.00 % of base)
       -4276 : 312494.dasm (-100.00 % of base)
       -4166 : 54875.dasm (-100.00 % of base)
       -4135 : 641232.dasm (-100.00 % of base)
       -4091 : 310285.dasm (-100.00 % of base)
       -4059 : 430710.dasm (-100.00 % of base)
       -3930 : 54510.dasm (-100.00 % of base)
       -3332 : 656743.dasm (-100.00 % of base)

63 total files with Code Size differences (63 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
      -20978 (-100.00 % of base) : 627105.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
      -10380 (-100.00 % of base) : 54512.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -9557 (-100.00 % of base) : 618898.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -9100 (-100.00 % of base) : 310007.dasm - System.IO.Tests.VirtualDrive_SymbolicLinks:VirtualDrive_SymbolicLinks_WithIndirection(ubyte,ubyte,ubyte,ubyte,ubyte):this (Tier1)
       -8343 (-100.00 % of base) : 54867.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
       -8264 (-100.00 % of base) : 619990.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
       -7486 (-100.00 % of base) : 630509.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:InferMethodTypeArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (Tier1)
       -6840 (-100.00 % of base) : 59797.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -6428 (-100.00 % of base) : 92287.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -6387 (-100.00 % of base) : 620996.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -6262 (-100.00 % of base) : 621066.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodOrUserDefinedOperatorSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -5924 (-100.00 % of base) : 310312.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternWithTrailingStar():this (Tier1)
       -5914 (-100.00 % of base) : 310319.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternWithLeadingStar():this (Tier1)
       -4276 (-100.00 % of base) : 312494.dasm - System.IO.Tests.FileStream_LockUnlock:OverlappingRegionsFromOtherProcess_ThrowsException(long,long,long,long,long):this (Tier1)
       -4166 (-100.00 % of base) : 54875.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
       -4135 (-100.00 % of base) : 641232.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLocalFunctionStatement(Microsoft.CodeAnalysis.CSharp.BoundLocalFunctionStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
       -4091 (-100.00 % of base) : 310285.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternDotIsStar():this (Tier1)
       -4059 (-100.00 % of base) : 430710.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -3930 (-100.00 % of base) : 54510.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ObjectCreationOverloadResolution(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],byref):this (Tier1)
       -3332 (-100.00 % of base) : 656743.dasm - Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers:.ctor(Microsoft.CodeAnalysis.Compilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzersOptions):this (Tier1)

Top method improvements (percentages):
       -4059 (-100.00 % of base) : 430710.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -2656 (-100.00 % of base) : 428451.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
      -20978 (-100.00 % of base) : 627105.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConstructorInitializerCore(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
       -4166 (-100.00 % of base) : 54875.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
       -1251 (-100.00 % of base) : 60485.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetRewrittenAttributeConstructorArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant],Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant]:this (Tier1)
        -497 (-100.00 % of base) : 652792.dasm - Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:WithLanguageVersion(int):Microsoft.CodeAnalysis.CSharp.CSharpParseOptions:this (Tier1)
       -2538 (-100.00 % of base) : 621173.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:GetOrCreateSlot(Microsoft.CodeAnalysis.CSharp.Symbol,int,ubyte,ubyte):int:this (Tier1)
       -4135 (-100.00 % of base) : 641232.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitLocalFunctionStatement(Microsoft.CodeAnalysis.CSharp.BoundLocalFunctionStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
       -7486 (-100.00 % of base) : 630509.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:InferMethodTypeArguments(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (Tier1)
      -10380 (-100.00 % of base) : 54512.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -9557 (-100.00 % of base) : 618898.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
       -2912 (-100.00 % of base) : 630511.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetEffectiveParameterTypes(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,byref,byref) (Tier1)
       -8343 (-100.00 % of base) : 54867.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
       -8264 (-100.00 % of base) : 619990.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
       -3930 (-100.00 % of base) : 54510.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ObjectCreationOverloadResolution(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],byref):this (Tier1)
        -963 (-100.00 % of base) : 619234.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
       -6428 (-100.00 % of base) : 92287.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -6840 (-100.00 % of base) : 59797.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -6387 (-100.00 % of base) : 620996.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AfterMembersChecks(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -1106 (-100.00 % of base) : 59842.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:AfterAddingTypeMembersChecks(Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)


librariestestsnotieredcompilation.run.windows.x64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 133435993 (overridden on cmd)
Total bytes of diff: 133435987 (overridden on cmd)
Total bytes of delta: -6 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -1859 : 161486.dasm (-100.00 % of base)
       -1719 : 158245.dasm (-100.00 % of base)
       -1374 : 207440.dasm (-100.00 % of base)
       -1315 : 209674.dasm (-100.00 % of base)
       -1250 : 21345.dasm (-100.00 % of base)
       -1147 : 3683.dasm (-100.00 % of base)
       -1104 : 106899.dasm (-100.00 % of base)
       -1063 : 158215.dasm (-100.00 % of base)
        -705 : 258261.dasm (-100.00 % of base)
        -527 : 85313.dasm (-100.00 % of base)
        -505 : 178996.dasm (-100.00 % of base)
        -494 : 85494.dasm (-100.00 % of base)
        -446 : 178999.dasm (-100.00 % of base)
        -421 : 222650.dasm (-100.00 % of base)
        -154 : 85481.dasm (-100.00 % of base)
        -154 : 85504.dasm (-100.00 % of base)
        -111 : 85488.dasm (-100.00 % of base)

17 total files with Code Size differences (17 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -1859 (-100.00 % of base) : 161486.dasm - System.Net.NameResolution.Tests.GetHostEntryTest+<Dns_GetHostEntry_HostString_Ok>d__2:MoveNext():this (FullOpts)
       -1719 (-100.00 % of base) : 158245.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass2_0+<<GetAsync_CancelDuringResponseHeadersReceived_TaskCanceledQuickly>b__0>d:MoveNext():this (FullOpts)
       -1374 (-100.00 % of base) : 207440.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
       -1315 (-100.00 % of base) : 209674.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
       -1250 (-100.00 % of base) : 21345.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
       -1147 (-100.00 % of base) : 3683.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
       -1104 (-100.00 % of base) : 106899.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1063 (-100.00 % of base) : 158215.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
        -705 (-100.00 % of base) : 258261.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
        -527 (-100.00 % of base) : 85313.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -505 (-100.00 % of base) : 178996.dasm - System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader5():this (FullOpts)
        -494 (-100.00 % of base) : 85494.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -446 (-100.00 % of base) : 178999.dasm - System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader2():this (FullOpts)
        -421 (-100.00 % of base) : 222650.dasm - System.Tests.TimeSpanTests:TotalMilliseconds_Invalid() (FullOpts)
        -154 (-100.00 % of base) : 85504.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
        -154 (-100.00 % of base) : 85481.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
        -111 (-100.00 % of base) : 85488.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)

Top method improvements (percentages):
        -111 (-100.00 % of base) : 85488.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
        -494 (-100.00 % of base) : 85494.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor2_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -154 (-100.00 % of base) : 85504.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
        -527 (-100.00 % of base) : 85313.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor4_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
        -154 (-100.00 % of base) : 85481.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor5_NullAsErrorsArgument_ShouldSetErrorsPropertyToEmptyEnumerable():this (FullOpts)
       -1063 (-100.00 % of base) : 158215.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass1_0+<<PostAsync_CancelDuringRequestContentSend_TaskCanceledQuickly>b__1>d:MoveNext():this (FullOpts)
       -1719 (-100.00 % of base) : 158245.dasm - System.Net.Http.Functional.Tests.HttpClientHandler_Cancellation_Test+<>c__DisplayClass2_0+<<GetAsync_CancelDuringResponseHeadersReceived_TaskCanceledQuickly>b__0>d:MoveNext():this (FullOpts)
       -1859 (-100.00 % of base) : 161486.dasm - System.Net.NameResolution.Tests.GetHostEntryTest+<Dns_GetHostEntry_HostString_Ok>d__2:MoveNext():this (FullOpts)
        -421 (-100.00 % of base) : 222650.dasm - System.Tests.TimeSpanTests:TotalMilliseconds_Invalid() (FullOpts)
        -705 (-100.00 % of base) : 258261.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
       -1104 (-100.00 % of base) : 106899.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1250 (-100.00 % of base) : 21345.dasm - System.Xml.XmlTextReaderImpl:AddNamespace(System.String,System.String,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
       -1147 (-100.00 % of base) : 3683.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)
        -446 (-100.00 % of base) : 178999.dasm - System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader2():this (FullOpts)
        -505 (-100.00 % of base) : 178996.dasm - System.Xml.XslCompiledTransformApiTests.CLoadReaderTest:LoadXmlReader5():this (FullOpts)
       -1374 (-100.00 % of base) : 207440.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
       -1315 (-100.00 % of base) : 209674.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)

17 total methods with Code Size differences (17 improved, 0 regressed).


realworld.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 14170685 (overridden on cmd)
Total bytes of diff: 14170680 (overridden on cmd)
Total bytes of delta: -5 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -1147 : 1779.dasm (-100.00 % of base)

1 total files with Code Size differences (1 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -1147 (-100.00 % of base) : 1779.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)

Top method improvements (percentages):
       -1147 (-100.00 % of base) : 1779.dasm - System.Xml.XmlTextReaderImpl:CheckEncoding(System.String):System.Text.Encoding:this (FullOpts)

1 total methods with Code Size differences (1 improved, 0 regressed).