Skip to content

Instantly share code, notes, and snippets.

@jakobbotsch
Created July 5, 2024 11:39
Show Gist options
  • Save jakobbotsch/464da35911b92211b7d3834dc8f39ea1 to your computer and use it in GitHub Desktop.
Save jakobbotsch/464da35911b92211b7d3834dc8f39ea1 to your computer and use it in GitHub Desktop.

Diffs are based on 2,547,495 contexts (1,000,952 MinOpts, 1,546,543 FullOpts).

MISSED contexts: base: 708 (0.03%), diff: 755 (0.03%)

Base JIT options: JitCloneLoops=0

Diff JIT options: JitCloneLoops=0

Overall (-469,945 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.x64.checked.mch 11,237,019 -8,959 -2.23%
benchmarks.run_pgo.windows.x64.checked.mch 41,427,466 -28,650 -0.65%
benchmarks.run_tiered.windows.x64.checked.mch 12,523,564 -1,799 -2.17%
coreclr_tests.run.windows.x64.checked.mch 392,958,880 -74,967 -1.85%
libraries.crossgen2.windows.x64.checked.mch 44,314,196 -57,806 -4.08%
libraries.pmi.windows.x64.checked.mch 62,545,380 -50,826 -2.26%
libraries_tests.run.windows.x64.Release.mch 309,473,340 -126,040 -1.35%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 146,141,887 -101,374 -2.08%
realworld.run.windows.x64.checked.mch 12,139,986 -18,970 -2.33%
smoke_tests.nativeaot.windows.x64.checked.mch 4,970,147 -554 -2.28%
MinOpts (-5,017 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run_pgo.windows.x64.checked.mch 19,602,172 -577 -1.71%
benchmarks.run_tiered.windows.x64.checked.mch 9,311,128 -227 -2.12%
coreclr_tests.run.windows.x64.checked.mch 273,210,262 -2,249 -5.16%
libraries_tests.run.windows.x64.Release.mch 188,078,429 -1,964 -1.52%
FullOpts (-464,928 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
benchmarks.run.windows.x64.checked.mch 11,236,407 -8,959 -2.23%
benchmarks.run_pgo.windows.x64.checked.mch 21,825,294 -28,073 -0.63%
benchmarks.run_tiered.windows.x64.checked.mch 3,212,436 -1,572 -2.17%
coreclr_tests.run.windows.x64.checked.mch 119,748,618 -72,718 -1.80%
libraries.crossgen2.windows.x64.checked.mch 44,312,491 -57,806 -4.08%
libraries.pmi.windows.x64.checked.mch 62,432,419 -50,826 -2.26%
libraries_tests.run.windows.x64.Release.mch 121,394,911 -124,076 -1.34%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 135,295,105 -101,374 -2.08%
realworld.run.windows.x64.checked.mch 11,726,883 -18,970 -2.33%
smoke_tests.nativeaot.windows.x64.checked.mch 4,969,176 -554 -2.28%
Example diffs
benchmarks.run.windows.x64.checked.mch
-45 (-36.89%) : 32037.dasm - System.Collections.IterateForEach`1[int]:FrozenSet():int:this (FullOpts)
@@ -8,19 +8,17 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Collections.IterateForEach`1[int]>
-;  V01 loc0         [V01,T04] (  3, 18   )     int  ->  rbx         ld-addr-op
+;  V00 this         [V00,T06] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Collections.IterateForEach`1[int]>
+;  V01 loc0         [V01,T02] (  3, 18   )     int  ->  rbx         ld-addr-op
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Collections.Frozen.FrozenSet`1[int]>
-;  V03 loc2         [V03    ] (  8, 66   )  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Frozen.FrozenSet`1+Enumerator[int]>
+;  V03 loc2         [V03,T07] (  3,  3   )  struct (16) [rsp+0x20]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.Collections.Frozen.FrozenSet`1+Enumerator[int]>
 ;* V04 loc3         [V04    ] (  0,  0   )     int  ->  zero-ref   
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V06 tmp1         [V06,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V07 tmp2         [V07,T07] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
-;  V08 tmp3         [V08,T00] (  3, 96   )     ref  ->  rax         "arr expr"
-;  V09 tmp4         [V09,T01] (  3, 96   )     int  ->  rcx         "index expr"
-;  V10 cse0         [V10,T02] (  3, 48   )     ref  ->  rax         "CSE #01: aggressive"
-;  V11 cse1         [V11,T03] (  3, 48   )     int  ->  rcx         "CSE #02: aggressive"
-;  V12 cse2         [V12,T05] (  3, 17   )     ref  ->  rcx         "CSE #03: aggressive"
+;* V06 tmp1         [V06,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V07 tmp2         [V07,T01] (  3, 18   )     ref  ->  rax         single-def "V03.[000..008)"
+;  V08 tmp3         [V08,T00] (  5, 41   )     int  ->  rcx         "V03.[008..012)"
+;  V09 tmp4         [V09,T05] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
+;  V10 cse0         [V10,T04] (  2,  9   )     int  ->  rdx         hoist "CSE #01: aggressive"
 ;
 ; Lcl frame size = 48
 
@@ -41,59 +39,32 @@ G_M13750_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       jmp      SHORT G_M13750_IG04
-						;; size=26 bbWeight=1 PerfScore 11.75
-G_M13750_IG03:        ; bbWeight=16, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rax]
-       cmp      ecx, dword ptr [rax+0x08]
-       jae      SHORT G_M13750_IG09
-       mov      ecx, ecx
-       mov      ebx, dword ptr [rax+4*rcx+0x10]
-						;; size=11 bbWeight=16 PerfScore 100.00
-G_M13750_IG04:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       mov      eax, dword ptr [rsp+0x28]
-       inc      eax
-       mov      dword ptr [rsp+0x28], eax
-       mov      eax, dword ptr [rsp+0x28]
-       mov      rcx, gword ptr [rsp+0x20]
-       ; gcrRegs +[rcx]
-       cmp      eax, dword ptr [rcx+0x08]
-       jae      SHORT G_M13750_IG06
-						;; size=24 bbWeight=8 PerfScore 66.00
-G_M13750_IG05:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rcx]
-       mov      ecx, dword ptr [rsp+0x28]
        mov      rax, gword ptr [rsp+0x20]
        ; gcrRegs +[rax]
-       cmp      ecx, dword ptr [rax+0x08]
-       jb       SHORT G_M13750_IG03
-       jmp      SHORT G_M13750_IG08
-						;; size=16 bbWeight=16 PerfScore 128.00
-G_M13750_IG06:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax] +[rcx]
-       mov      eax, dword ptr [rcx+0x08]
-       mov      dword ptr [rsp+0x28], eax
+       mov      ecx, dword ptr [rsp+0x28]
+       mov      edx, dword ptr [rax+0x08]
+       jmp      SHORT G_M13750_IG04
+						;; size=38 bbWeight=1 PerfScore 15.75
+G_M13750_IG03:        ; bbWeight=16, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
+       mov      r8d, ecx
+       mov      ebx, dword ptr [rax+4*r8+0x10]
+						;; size=8 bbWeight=16 PerfScore 36.00
+G_M13750_IG04:        ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+       inc      ecx
+       cmp      edx, ecx
+       ja       SHORT G_M13750_IG03
+						;; size=6 bbWeight=8 PerfScore 12.00
+G_M13750_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
        mov      eax, ebx
-						;; size=9 bbWeight=1 PerfScore 3.25
-G_M13750_IG07:        ; bbWeight=1, epilog, nogc, extend
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M13750_IG06:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 48
        pop      rbx
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
-G_M13750_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rcx]
-       call     [System.Collections.ThrowHelper:ThrowInvalidOperationException()]
-       ; gcr arg pop 0
-       int3     
-						;; size=7 bbWeight=0 PerfScore 0.00
-G_M13750_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       call     CORINFO_HELP_RNGCHKFAIL
-       ; gcr arg pop 0
-       int3     
-						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 122, prolog size 17, PerfScore 314.25, instruction count 38, allocated bytes for code 122 (MethodHash=1dfeca49) for method System.Collections.IterateForEach`1[int]:FrozenSet():int:this (FullOpts)
+; Total bytes of code 77, prolog size 17, PerfScore 69.25, instruction count 24, allocated bytes for code 77 (MethodHash=1dfeca49) for method System.Collections.IterateForEach`1[int]:FrozenSet():int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-41 (-29.71%) : 31689.dasm - System.Collections.IterateForEach`1[int]:FrozenDictionary():int:this (FullOpts)
@@ -8,28 +8,25 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T11] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Collections.IterateForEach`1[int]>
-;  V01 loc0         [V01,T07] (  3, 18   )     int  ->  rbx         ld-addr-op
+;  V00 this         [V00,T08] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Collections.IterateForEach`1[int]>
+;  V01 loc0         [V01,T04] (  3, 18   )     int  ->  rbx         ld-addr-op
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Collections.Frozen.FrozenDictionary`2[int,int]>
-;  V03 loc2         [V03    ] (  9, 82   )  struct (24) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Frozen.FrozenDictionary`2+Enumerator[int,int]>
+;  V03 loc2         [V03,T03] (  4, 19   )  struct (24) [rsp+0x28]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.Collections.Frozen.FrozenDictionary`2+Enumerator[int,int]>
 ;* V04 loc3         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Collections.Generic.KeyValuePair`2[int,int]>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[int,int]>
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V08 tmp3         [V08,T04] (  2, 64   )     int  ->  rbx         "Inlining Arg"
-;* V09 tmp4         [V09,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V08 tmp3         [V08,T01] (  2, 64   )     int  ->  rbx         "Inlining Arg"
+;* V09 tmp4         [V09,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V04.key (fldOffset=0x0)" P-INDEP
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "field V04.value (fldOffset=0x4)" P-INDEP
 ;* V12 tmp7         [V12    ] (  0,  0   )     int  ->  zero-ref    "field V06.key (fldOffset=0x0)" P-INDEP
 ;* V13 tmp8         [V13    ] (  0,  0   )     int  ->  zero-ref    "field V06.value (fldOffset=0x4)" P-INDEP
-;  V14 tmp9         [V14,T10] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
-;  V15 tmp10        [V15,T03] (  2, 64   )     ref  ->  rax         "arr expr"
-;  V16 tmp11        [V16,T05] (  2, 64   )     int  ->  rdx         "index expr"
-;  V17 tmp12        [V17,T00] (  3, 96   )     ref  ->  rax         "arr expr"
-;  V18 tmp13        [V18,T01] (  3, 96   )     int  ->  rcx         "index expr"
-;  V19 cse0         [V19,T02] (  4, 64   )     int  ->  rcx         "CSE #02: aggressive"
-;  V20 cse1         [V20,T06] (  3, 48   )     ref  ->  rax         "CSE #01: aggressive"
-;  V21 cse2         [V21,T08] (  3, 17   )     ref  ->  rcx         "CSE #03: aggressive"
+;  V14 tmp9         [V14,T09] (  2,  2   )     ref  ->  rax         single-def "V03.[000..008)"
+;  V15 tmp10        [V15,T02] (  6, 57   )     int  ->  rcx         "V03.[016..020)"
+;  V16 tmp11        [V16,T07] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
+;  V17 tmp12        [V17,T00] (  3, 96   )     ref  ->  rdx         "arr expr"
+;  V18 cse0         [V18,T06] (  2,  9   )     int  ->  rax         hoist "CSE #01: aggressive"
 ;
 ; Lcl frame size = 64
 
@@ -51,63 +48,42 @@ G_M2124_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byre
        call     [rax]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       jmp      SHORT G_M2124_IG04
-						;; size=25 bbWeight=1 PerfScore 11.75
-G_M2124_IG03:        ; bbWeight=16, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rax]
-       mov      edx, ecx
-       cmp      edx, dword ptr [rax+0x08]
-       jae      SHORT G_M2124_IG09
-       mov      rax, gword ptr [rsp+0x30]
-       cmp      ecx, dword ptr [rax+0x08]
-       jae      SHORT G_M2124_IG09
-       mov      ecx, ecx
-       mov      ebx, dword ptr [rax+4*rcx+0x10]
-						;; size=23 bbWeight=16 PerfScore 184.00
-G_M2124_IG04:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       mov      eax, dword ptr [rsp+0x38]
-       inc      eax
-       mov      dword ptr [rsp+0x38], eax
-       mov      eax, dword ptr [rsp+0x38]
-       mov      rcx, gword ptr [rsp+0x28]
-       ; gcrRegs +[rcx]
-       cmp      eax, dword ptr [rcx+0x08]
-       jae      SHORT G_M2124_IG06
-						;; size=24 bbWeight=8 PerfScore 66.00
-G_M2124_IG05:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rcx]
-       mov      ecx, dword ptr [rsp+0x38]
        mov      rax, gword ptr [rsp+0x28]
        ; gcrRegs +[rax]
-       cmp      ecx, dword ptr [rax+0x08]
-       jb       SHORT G_M2124_IG03
-       jmp      SHORT G_M2124_IG08
-						;; size=16 bbWeight=16 PerfScore 128.00
-G_M2124_IG06:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax] +[rcx]
-       mov      eax, dword ptr [rcx+0x08]
-       mov      dword ptr [rsp+0x38], eax
+       mov      ecx, dword ptr [rsp+0x38]
+       mov      eax, dword ptr [rax+0x08]
+       ; gcrRegs -[rax]
+       jmp      SHORT G_M2124_IG04
+						;; size=37 bbWeight=1 PerfScore 15.75
+G_M2124_IG03:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      rdx, gword ptr [rsp+0x30]
+       ; gcrRegs +[rdx]
+       cmp      ecx, dword ptr [rdx+0x08]
+       jae      SHORT G_M2124_IG07
+       mov      r8d, ecx
+       mov      ebx, dword ptr [rdx+4*r8+0x10]
+						;; size=18 bbWeight=16 PerfScore 116.00
+G_M2124_IG04:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rdx]
+       inc      ecx
+       cmp      eax, ecx
+       ja       SHORT G_M2124_IG03
+						;; size=6 bbWeight=8 PerfScore 12.00
+G_M2124_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, ebx
-						;; size=9 bbWeight=1 PerfScore 3.25
-G_M2124_IG07:        ; bbWeight=1, epilog, nogc, extend
+						;; size=2 bbWeight=1 PerfScore 0.25
+G_M2124_IG06:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 64
        pop      rbx
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
-G_M2124_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rcx]
-       call     [System.Collections.ThrowHelper:ThrowInvalidOperationException()]
-       ; gcr arg pop 0
-       int3     
-						;; size=7 bbWeight=0 PerfScore 0.00
-G_M2124_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M2124_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 138, prolog size 22, PerfScore 399.58, instruction count 43, allocated bytes for code 138 (MethodHash=a179f7b3) for method System.Collections.IterateForEach`1[int]:FrozenDictionary():int:this (FullOpts)
+; Total bytes of code 97, prolog size 22, PerfScore 150.58, instruction count 30, allocated bytes for code 97 (MethodHash=a179f7b3) for method System.Collections.IterateForEach`1[int]:FrozenDictionary():int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-16 (-14.41%) : 34483.dasm - HardwareIntrinsics.RayTracer.Packet256Tracer:TestRay(HardwareIntrinsics.RayTracer.RayPacket256,HardwareIntrinsics.RayTracer.Scene):System.Runtime.Intrinsics.Vector256`1[float]:this (FullOpts)
@@ -12,27 +12,24 @@
 ;  V01 RetBuf       [V01,T00] (  6,  4   )   byref  ->  rbx         single-def
 ;  V02 arg1         [V02,T02] (  3,  3   )     ref  ->   r8         class-hnd single-def <HardwareIntrinsics.RayTracer.RayPacket256>
 ;  V03 arg2         [V03,T03] (  3,  3   )     ref  ->   r9         class-hnd single-def <HardwareIntrinsics.RayTracer.Scene>
-;  V04 loc0         [V04    ] (  2,  2   )  struct (64) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <HardwareIntrinsics.RayTracer.Intersections>
+;  V04 loc0         [V04,T04] (  2,  2   )  struct (64) [rsp+0x20]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <HardwareIntrinsics.RayTracer.Intersections>
 ;* V05 loc1         [V05    ] (  0,  0   )  simd32  ->  zero-ref    <System.Runtime.Intrinsics.Vector256`1[float]>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )  simd32  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[float]>
-;  V08 tmp2         [V08,T06] (  2,  2   )  simd32  ->  mm2         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[float]>
-;* V09 tmp3         [V09,T07] (  0,  0   )  simd32  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[int]>
+;  V08 tmp2         [V08,T07] (  2,  2   )  simd32  ->  mm2         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[float]>
+;* V09 tmp3         [V09,T08] (  0,  0   )  simd32  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[int]>
 ;* V10 tmp4         [V10    ] (  0,  0   )  simd32  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[int]>
-;  V11 cse0         [V11,T04] (  3,  2.50)  simd32  ->  mm1         "CSE #03: aggressive"
-;  V12 cse1         [V12,T05] (  3,  2.50)  simd32  ->  mm0         "CSE #01: aggressive"
+;  V11 tmp5         [V11,T05] (  3,  2.50)  simd32  ->  mm0         "V04.[000..032)"
+;  V12 cse0         [V12,T06] (  3,  2.50)  simd32  ->  mm1         "CSE #02: aggressive"
 ;
 ; Lcl frame size = 96
 
 G_M55887_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbx
        sub      rsp, 96
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x20], ymm4
-       vmovdqu  ymmword ptr [rsp+0x40], ymm4
        mov      rbx, rdx
        ; byrRegs +[rbx]
-						;; size=24 bbWeight=1 PerfScore 5.83
+						;; size=8 bbWeight=1 PerfScore 1.50
 G_M55887_IG02:        ; bbWeight=1, gcrefRegs=0302 {rcx r8 r9}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs +[rcx r8-r9]
        lea      rdx, [rsp+0x20]
@@ -75,7 +72,7 @@ G_M55887_IG06:        ; bbWeight=0.50, epilog, nogc, extend
 RWD00  	dq	7F7FFFFF7F7FFFFFh, 7F7FFFFF7F7FFFFFh, 7F7FFFFF7F7FFFFFh, 7F7FFFFF7F7FFFFFh
 
 
-; Total bytes of code 111, prolog size 21, PerfScore 27.92, instruction count 29, allocated bytes for code 111 (MethodHash=676b25b0) for method HardwareIntrinsics.RayTracer.Packet256Tracer:TestRay(HardwareIntrinsics.RayTracer.RayPacket256,HardwareIntrinsics.RayTracer.Scene):System.Runtime.Intrinsics.Vector256`1[float]:this (FullOpts)
+; Total bytes of code 95, prolog size 5, PerfScore 23.58, instruction count 26, allocated bytes for code 95 (MethodHash=676b25b0) for method HardwareIntrinsics.RayTracer.Packet256Tracer:TestRay(HardwareIntrinsics.RayTracer.RayPacket256,HardwareIntrinsics.RayTracer.Scene):System.Runtime.Intrinsics.Vector256`1[float]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
+12 (+4.96%) : 22831.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitUncaptureUntilPopped|31():this (FullOpts)
@@ -8,51 +8,60 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0>
-;  V01 loc0         [V01    ] (  9,  3   )  struct (16) [rbp-0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Text.RegularExpressions.RegexCompiler+RentedLocalBuilder>
+;  V00 this         [V00,T00] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0>
+;  V01 loc0         [V01,T06] (  3,  1.50)  struct (16) [rbp-0x18]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.Text.RegularExpressions.RegexCompiler+RentedLocalBuilder>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T04] (  2,  2   )     ref  ->  rcx         class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.RegexCompiler>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Text.RegularExpressions.RegexCompiler+RentedLocalBuilder>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Text.RegularExpressions.RegexCompiler+RentedLocalBuilder>
-;  V06 tmp4         [V06,T00] ( 14,  7   )     ref  ->  rbx         class-hnd "Inlining Arg" <System.Collections.Generic.Stack`1[System.Reflection.Emit.LocalBuilder]>
-;  V07 tmp5         [V07,T03] (  8,  2   )     int  ->  rsi         "Inline stloc first use temp"
-;  V08 tmp6         [V08,T05] (  6,  1.50)     ref  ->  rcx         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V09 tmp7         [V09,T02] (  6,  3   )     ref  ->   r8         class-hnd "Inlining Arg" <System.Reflection.Emit.LocalBuilder>
-;* V10 tmp8         [V10    ] (  0,  0   )     ref  ->  zero-ref    "field V04._pool (fldOffset=0x0)" P-INDEP
-;  V11 tmp9         [V11,T06] (  2,  1   )     ref  ->  rdx         single-def "field V04._local (fldOffset=0x8)" P-INDEP
-;* V12 tmp10        [V12    ] (  0,  0   )     ref  ->  zero-ref    "field V05._pool (fldOffset=0x0)" P-INDEP
-;  V13 tmp11        [V13,T07] (  2,  1   )     ref  ->  rdx         single-def "field V05._local (fldOffset=0x8)" P-INDEP
-;  V14 PSPSym       [V14,T08] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
+;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.Stack`1[System.Reflection.Emit.LocalBuilder]>
+;  V07 tmp5         [V07,T02] (  8,  2   )     int  ->  rbx         "Inline stloc first use temp"
+;  V08 tmp6         [V08,T05] (  6,  1.50)     ref  ->  rax         class-hnd "Inline stloc first use temp" <<unknown class>>
+;* V09 tmp7         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Reflection.Emit.LocalBuilder>
+;* V10 tmp8         [V10    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._pool (fldOffset=0x0)" P-INDEP
+;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._local (fldOffset=0x8)" P-INDEP
+;* V12 tmp10        [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V05._pool (fldOffset=0x0)" P-INDEP
+;* V13 tmp11        [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V05._local (fldOffset=0x8)" P-INDEP
+;  V14 tmp12        [V14,T01] ( 13,  3   )     ref  ->  [rbp-0x20]  EH-live spill-single-def "V01.[000..008)"
+;  V15 tmp13        [V15,T03] (  7,  2   )     ref  ->  [rbp-0x28]  EH-live spill-single-def "V01.[008..016)"
+;  V16 PSPSym       [V16,T07] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 72
 
 G_M1354_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     rsi
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 72
        lea      rbp, [rsp+0x50]
        xor      eax, eax
-       mov      qword ptr [rbp-0x20], rax
        mov      qword ptr [rbp-0x18], rax
+       mov      qword ptr [rbp-0x10], rax
        mov      qword ptr [rbp-0x30], rsp
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-						;; size=29 bbWeight=1 PerfScore 7.25
-G_M1354_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+						;; size=28 bbWeight=1 PerfScore 6.25
+G_M1354_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        cmp      byte  ptr [rbx+0x3C], 0
-       je       SHORT G_M1354_IG08
-						;; size=6 bbWeight=1 PerfScore 4.00
+       je       G_M1354_IG07
+						;; size=10 bbWeight=1 PerfScore 4.00
 G_M1354_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
-       lea      rdx, [rbp-0x20]
+       lea      rdx, [rbp-0x18]
        call     [System.Text.RegularExpressions.RegexCompiler:RentInt32Local():System.Text.RegularExpressions.RegexCompiler+RentedLocalBuilder:this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       nop      
-						;; size=15 bbWeight=0.50 PerfScore 2.88
-G_M1354_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       mov      rcx, gword ptr [rbp-0x18]
+       ; gcrRegs +[rcx]
+       mov      gword ptr [rbp-0x20], rcx
+       ; GC ptr vars +{V14}
+       mov      rdx, gword ptr [rbp-0x10]
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rbp-0x28], rdx
+       ; GC ptr vars +{V15}
+						;; size=30 bbWeight=0.50 PerfScore 4.75
+G_M1354_IG04:        ; bbWeight=0.50, gcVars=000000000000000A {V14 V15}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rcx rdx]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitStackPop|34():this]
@@ -60,111 +69,117 @@ G_M1354_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
        ; gcr arg pop 0
        mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rbp-0x18]
+       mov      rdx, gword ptr [rbp-0x28]
        ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-       mov      rdx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rdx]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
+       mov      rdx, gword ptr [rbp-0x28]
+       ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx rbx]
        ; gcr arg pop 0
        nop      
 						;; size=37 bbWeight=0.50 PerfScore 6.88
 G_M1354_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rbx, gword ptr [rbp-0x20]
-       ; gcrRegs +[rbx]
-       mov      r8, gword ptr [rbp-0x18]
-       ; gcrRegs +[r8]
-       mov      esi, dword ptr [rbx+0x10]
-       mov      rcx, gword ptr [rbx+0x08]
+       mov      rcx, gword ptr [rbp-0x20]
        ; gcrRegs +[rcx]
-       cmp      dword ptr [rcx+0x08], esi
+       mov      ebx, dword ptr [rcx+0x10]
+       mov      rax, gword ptr [rcx+0x08]
+       ; gcrRegs +[rax]
+       cmp      dword ptr [rax+0x08], ebx
        jbe      SHORT G_M1354_IG06
-       movsxd   rdx, esi
-       call     CORINFO_HELP_ARRADDR_ST
-       ; gcrRegs -[rcx r8]
-       ; gcr arg pop 0
-       inc      dword ptr [rbx+0x14]
-       inc      esi
-       mov      dword ptr [rbx+0x10], esi
-       jmp      SHORT G_M1354_IG07
-						;; size=38 bbWeight=0.50 PerfScore 8.75
-G_M1354_IG06:        ; bbWeight=0.50, gcrefRegs=0108 {rbx r8}, byrefRegs=0000 {}, byref
+       movsxd   rdx, ebx
+       mov      rcx, rax
+       mov      r8, gword ptr [rbp-0x28]
        ; gcrRegs +[r8]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       mov      rdx, r8
-       ; gcrRegs +[rdx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rbx r8]
+       ; GC ptr vars -{V15}
+       call     CORINFO_HELP_ARRADDR_ST
+       ; gcrRegs -[rax rcx r8]
        ; gcr arg pop 0
-						;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M1354_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rbp-0x20], xmm0
-						;; size=9 bbWeight=0.50 PerfScore 0.67
-G_M1354_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       add      rsp, 64
+       mov      rcx, gword ptr [rbp-0x20]
+       ; gcrRegs +[rcx]
+       inc      dword ptr [rcx+0x14]
+       inc      ebx
+       mov      dword ptr [rcx+0x10], ebx
+       jmp      SHORT G_M1354_IG07
+						;; size=45 bbWeight=0.50 PerfScore 9.38
+G_M1354_IG06:        ; bbWeight=0.50, gcVars=000000000000000A {V14 V15}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rcx]
+       ; GC ptr vars +{V03 V15}
+       mov      rcx, gword ptr [rbp-0x20]
+       ; gcrRegs +[rcx]
+       mov      rdx, gword ptr [rbp-0x28]
+       ; gcrRegs +[rdx]
+       ; GC ptr vars -{V03 V14 V15}
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdx]
+       ; gcr arg pop 0
+						;; size=14 bbWeight=0.50 PerfScore 2.50
+G_M1354_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       nop      
+						;; size=1 bbWeight=1 PerfScore 0.25
+G_M1354_IG08:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 72
        pop      rbx
-       pop      rsi
        pop      rbp
        ret      
-						;; size=8 bbWeight=1 PerfScore 2.75
-G_M1354_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+						;; size=7 bbWeight=1 PerfScore 2.25
+G_M1354_IG09:        ; bbWeight=0, gcVars=000000000000000A {V14 V15}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+       ; GC ptr vars +{V01 V03 V14 V15}
        push     rbp
-       push     rsi
        push     rbx
-       sub      rsp, 48
+       sub      rsp, 40
        mov      rbp, qword ptr [rcx+0x20]
        mov      qword ptr [rsp+0x20], rbp
        lea      rbp, [rbp+0x50]
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M1354_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       mov      rbx, gword ptr [rbp-0x20]
-       ; gcrRegs +[rbx]
-       mov      r8, gword ptr [rbp-0x18]
-       ; gcrRegs +[r8]
-       mov      esi, dword ptr [rbx+0x10]
-       mov      rcx, gword ptr [rbx+0x08]
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M1354_IG10:        ; bbWeight=0, gcVars=000000000000000A {V14 V15}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       mov      rcx, gword ptr [rbp-0x20]
        ; gcrRegs +[rcx]
-       cmp      dword ptr [rcx+0x08], esi
+       mov      ebx, dword ptr [rcx+0x10]
+       mov      rax, gword ptr [rcx+0x08]
+       ; gcrRegs +[rax]
+       cmp      dword ptr [rax+0x08], ebx
        ja       SHORT G_M1354_IG11
-       mov      rcx, rbx
-       mov      rdx, r8
+       mov      rdx, gword ptr [rbp-0x28]
        ; gcrRegs +[rdx]
+       ; GC ptr vars -{V01 V03 V14 V15}
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rbx r8]
+       ; gcrRegs -[rax rcx rdx]
        ; gcr arg pop 0
        jmp      SHORT G_M1354_IG12
-						;; size=34 bbWeight=0 PerfScore 0.00
-G_M1354_IG11:        ; bbWeight=0, gcrefRegs=010A {rcx rbx r8}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rcx rbx r8]
-       movsxd   rdx, esi
+						;; size=28 bbWeight=0 PerfScore 0.00
+G_M1354_IG11:        ; bbWeight=0, gcVars=000000000000000A {V14 V15}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs +[rax]
+       ; GC ptr vars +{V01 V03 V14 V15}
+       movsxd   rdx, ebx
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
+       mov      r8, gword ptr [rbp-0x28]
+       ; gcrRegs +[r8]
+       ; GC ptr vars -{V01 V03 V15}
        call     CORINFO_HELP_ARRADDR_ST
-       ; gcrRegs -[rcx r8]
+       ; gcrRegs -[rax rcx r8]
        ; gcr arg pop 0
-       inc      dword ptr [rbx+0x14]
-       lea      eax, [rsi+0x01]
-       mov      dword ptr [rbx+0x10], eax
-						;; size=17 bbWeight=0 PerfScore 0.00
-G_M1354_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rbp-0x20], xmm0
-						;; size=9 bbWeight=0 PerfScore 0.00
-G_M1354_IG13:        ; bbWeight=0, funclet epilog, nogc, extend
-       add      rsp, 48
+       mov      rcx, gword ptr [rbp-0x20]
...
+12 (+4.96%) : 2451.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:g__EmitUncaptureUntilPopped|31():this (FullOpts)
@@ -8,51 +8,60 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0>
-;  V01 loc0         [V01    ] (  9,  3   )  struct (16) [rbp-0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Text.RegularExpressions.RegexCompiler+RentedLocalBuilder>
+;  V00 this         [V00,T00] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0>
+;  V01 loc0         [V01,T06] (  3,  1.50)  struct (16) [rbp-0x18]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.Text.RegularExpressions.RegexCompiler+RentedLocalBuilder>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T04] (  2,  2   )     ref  ->  rcx         class-hnd single-def "impAppendStmt" <System.Text.RegularExpressions.RegexCompiler>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Text.RegularExpressions.RegexCompiler+RentedLocalBuilder>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Text.RegularExpressions.RegexCompiler+RentedLocalBuilder>
-;  V06 tmp4         [V06,T00] ( 14,  7   )     ref  ->  rbx         class-hnd "Inlining Arg" <System.Collections.Generic.Stack`1[System.Reflection.Emit.LocalBuilder]>
-;  V07 tmp5         [V07,T03] (  8,  2   )     int  ->  rsi         "Inline stloc first use temp"
-;  V08 tmp6         [V08,T05] (  6,  1.50)     ref  ->  rcx         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V09 tmp7         [V09,T02] (  6,  3   )     ref  ->   r8         class-hnd "Inlining Arg" <System.Reflection.Emit.LocalBuilder>
-;* V10 tmp8         [V10    ] (  0,  0   )     ref  ->  zero-ref    "field V04._pool (fldOffset=0x0)" P-INDEP
-;  V11 tmp9         [V11,T06] (  2,  1   )     ref  ->  rdx         single-def "field V04._local (fldOffset=0x8)" P-INDEP
-;* V12 tmp10        [V12    ] (  0,  0   )     ref  ->  zero-ref    "field V05._pool (fldOffset=0x0)" P-INDEP
-;  V13 tmp11        [V13,T07] (  2,  1   )     ref  ->  rdx         single-def "field V05._local (fldOffset=0x8)" P-INDEP
-;  V14 PSPSym       [V14,T08] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
+;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.Generic.Stack`1[System.Reflection.Emit.LocalBuilder]>
+;  V07 tmp5         [V07,T02] (  8,  2   )     int  ->  rbx         "Inline stloc first use temp"
+;  V08 tmp6         [V08,T05] (  6,  1.50)     ref  ->  rax         class-hnd "Inline stloc first use temp" <<unknown class>>
+;* V09 tmp7         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Reflection.Emit.LocalBuilder>
+;* V10 tmp8         [V10    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._pool (fldOffset=0x0)" P-INDEP
+;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._local (fldOffset=0x8)" P-INDEP
+;* V12 tmp10        [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V05._pool (fldOffset=0x0)" P-INDEP
+;* V13 tmp11        [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V05._local (fldOffset=0x8)" P-INDEP
+;  V14 tmp12        [V14,T01] ( 13,  3   )     ref  ->  [rbp-0x20]  EH-live spill-single-def "V01.[000..008)"
+;  V15 tmp13        [V15,T03] (  7,  2   )     ref  ->  [rbp-0x28]  EH-live spill-single-def "V01.[008..016)"
+;  V16 PSPSym       [V16,T07] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 72
 
 G_M1354_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     rsi
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 72
        lea      rbp, [rsp+0x50]
        xor      eax, eax
-       mov      qword ptr [rbp-0x20], rax
        mov      qword ptr [rbp-0x18], rax
+       mov      qword ptr [rbp-0x10], rax
        mov      qword ptr [rbp-0x30], rsp
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-						;; size=29 bbWeight=1 PerfScore 7.25
-G_M1354_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+						;; size=28 bbWeight=1 PerfScore 6.25
+G_M1354_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        cmp      byte  ptr [rbx+0x3C], 0
-       je       SHORT G_M1354_IG08
-						;; size=6 bbWeight=1 PerfScore 4.00
+       je       G_M1354_IG07
+						;; size=10 bbWeight=1 PerfScore 4.00
 G_M1354_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
-       lea      rdx, [rbp-0x20]
+       lea      rdx, [rbp-0x18]
        call     [System.Text.RegularExpressions.RegexCompiler:RentInt32Local():System.Text.RegularExpressions.RegexCompiler+RentedLocalBuilder:this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       nop      
-						;; size=15 bbWeight=0.50 PerfScore 2.88
-G_M1354_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       mov      rcx, gword ptr [rbp-0x18]
+       ; gcrRegs +[rcx]
+       mov      gword ptr [rbp-0x20], rcx
+       ; GC ptr vars +{V14}
+       mov      rdx, gword ptr [rbp-0x10]
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rbp-0x28], rdx
+       ; GC ptr vars +{V15}
+						;; size=30 bbWeight=0.50 PerfScore 4.75
+G_M1354_IG04:        ; bbWeight=0.50, gcVars=000000000000000A {V14 V15}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rcx rdx]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitStackPop|34():this]
@@ -60,111 +69,117 @@ G_M1354_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
        ; gcr arg pop 0
        mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rbp-0x18]
+       mov      rdx, gword ptr [rbp-0x28]
        ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-       mov      rdx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rdx]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
+       mov      rdx, gword ptr [rbp-0x28]
+       ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx rbx]
        ; gcr arg pop 0
        nop      
 						;; size=37 bbWeight=0.50 PerfScore 6.88
 G_M1354_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rbx, gword ptr [rbp-0x20]
-       ; gcrRegs +[rbx]
-       mov      r8, gword ptr [rbp-0x18]
-       ; gcrRegs +[r8]
-       mov      esi, dword ptr [rbx+0x10]
-       mov      rcx, gword ptr [rbx+0x08]
+       mov      rcx, gword ptr [rbp-0x20]
        ; gcrRegs +[rcx]
-       cmp      dword ptr [rcx+0x08], esi
+       mov      ebx, dword ptr [rcx+0x10]
+       mov      rax, gword ptr [rcx+0x08]
+       ; gcrRegs +[rax]
+       cmp      dword ptr [rax+0x08], ebx
        jbe      SHORT G_M1354_IG06
-       movsxd   rdx, esi
-       call     CORINFO_HELP_ARRADDR_ST
-       ; gcrRegs -[rcx r8]
-       ; gcr arg pop 0
-       inc      dword ptr [rbx+0x14]
-       inc      esi
-       mov      dword ptr [rbx+0x10], esi
-       jmp      SHORT G_M1354_IG07
-						;; size=38 bbWeight=0.50 PerfScore 8.75
-G_M1354_IG06:        ; bbWeight=0.50, gcrefRegs=0108 {rbx r8}, byrefRegs=0000 {}, byref
+       movsxd   rdx, ebx
+       mov      rcx, rax
+       mov      r8, gword ptr [rbp-0x28]
        ; gcrRegs +[r8]
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
-       mov      rdx, r8
-       ; gcrRegs +[rdx]
-       call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rbx r8]
+       ; GC ptr vars -{V15}
+       call     CORINFO_HELP_ARRADDR_ST
+       ; gcrRegs -[rax rcx r8]
        ; gcr arg pop 0
-						;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M1354_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rbp-0x20], xmm0
-						;; size=9 bbWeight=0.50 PerfScore 0.67
-G_M1354_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-       add      rsp, 64
+       mov      rcx, gword ptr [rbp-0x20]
+       ; gcrRegs +[rcx]
+       inc      dword ptr [rcx+0x14]
+       inc      ebx
+       mov      dword ptr [rcx+0x10], ebx
+       jmp      SHORT G_M1354_IG07
+						;; size=45 bbWeight=0.50 PerfScore 9.38
+G_M1354_IG06:        ; bbWeight=0.50, gcVars=000000000000000A {V14 V15}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs -[rcx]
+       ; GC ptr vars +{V03 V15}
+       mov      rcx, gword ptr [rbp-0x20]
+       ; gcrRegs +[rcx]
+       mov      rdx, gword ptr [rbp-0x28]
+       ; gcrRegs +[rdx]
+       ; GC ptr vars -{V03 V14 V15}
+       call     [<unknown method>]
+       ; gcrRegs -[rcx rdx]
+       ; gcr arg pop 0
+						;; size=14 bbWeight=0.50 PerfScore 2.50
+G_M1354_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       nop      
+						;; size=1 bbWeight=1 PerfScore 0.25
+G_M1354_IG08:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 72
        pop      rbx
-       pop      rsi
        pop      rbp
        ret      
-						;; size=8 bbWeight=1 PerfScore 2.75
-G_M1354_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+						;; size=7 bbWeight=1 PerfScore 2.25
+G_M1354_IG09:        ; bbWeight=0, gcVars=000000000000000A {V14 V15}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+       ; GC ptr vars +{V01 V03 V14 V15}
        push     rbp
-       push     rsi
        push     rbx
-       sub      rsp, 48
+       sub      rsp, 40
        mov      rbp, qword ptr [rcx+0x20]
        mov      qword ptr [rsp+0x20], rbp
        lea      rbp, [rbp+0x50]
-						;; size=20 bbWeight=0 PerfScore 0.00
-G_M1354_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       mov      rbx, gword ptr [rbp-0x20]
-       ; gcrRegs +[rbx]
-       mov      r8, gword ptr [rbp-0x18]
-       ; gcrRegs +[r8]
-       mov      esi, dword ptr [rbx+0x10]
-       mov      rcx, gword ptr [rbx+0x08]
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M1354_IG10:        ; bbWeight=0, gcVars=000000000000000A {V14 V15}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+       mov      rcx, gword ptr [rbp-0x20]
        ; gcrRegs +[rcx]
-       cmp      dword ptr [rcx+0x08], esi
+       mov      ebx, dword ptr [rcx+0x10]
+       mov      rax, gword ptr [rcx+0x08]
+       ; gcrRegs +[rax]
+       cmp      dword ptr [rax+0x08], ebx
        ja       SHORT G_M1354_IG11
-       mov      rcx, rbx
-       mov      rdx, r8
+       mov      rdx, gword ptr [rbp-0x28]
        ; gcrRegs +[rdx]
+       ; GC ptr vars -{V01 V03 V14 V15}
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx rbx r8]
+       ; gcrRegs -[rax rcx rdx]
        ; gcr arg pop 0
        jmp      SHORT G_M1354_IG12
-						;; size=34 bbWeight=0 PerfScore 0.00
-G_M1354_IG11:        ; bbWeight=0, gcrefRegs=010A {rcx rbx r8}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rcx rbx r8]
-       movsxd   rdx, esi
+						;; size=28 bbWeight=0 PerfScore 0.00
+G_M1354_IG11:        ; bbWeight=0, gcVars=000000000000000A {V14 V15}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref
+       ; gcrRegs +[rax]
+       ; GC ptr vars +{V01 V03 V14 V15}
+       movsxd   rdx, ebx
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
+       mov      r8, gword ptr [rbp-0x28]
+       ; gcrRegs +[r8]
+       ; GC ptr vars -{V01 V03 V15}
        call     CORINFO_HELP_ARRADDR_ST
-       ; gcrRegs -[rcx r8]
+       ; gcrRegs -[rax rcx r8]
        ; gcr arg pop 0
-       inc      dword ptr [rbx+0x14]
-       lea      eax, [rsi+0x01]
-       mov      dword ptr [rbx+0x10], eax
-						;; size=17 bbWeight=0 PerfScore 0.00
-G_M1354_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rbp-0x20], xmm0
-						;; size=9 bbWeight=0 PerfScore 0.00
-G_M1354_IG13:        ; bbWeight=0, funclet epilog, nogc, extend
-       add      rsp, 48
+       mov      rcx, gword ptr [rbp-0x20]
...
+35 (+6.84%) : 24520.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[int]:ReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
@@ -9,49 +9,53 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  5,  3.50)     ref  ->  rdi         this class-hnd single-def <System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[int]>
-;  V01 RetBuf       [V01,T00] (  9,  5.50)   byref  ->  rbx         single-def
+;  V01 RetBuf       [V01,T00] ( 12,  7   )   byref  ->  rbx         single-def
 ;* V02 arg1         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <System.Threading.CancellationToken>
 ;  V03 loc0         [V03,T04] (  7,  3.50)     ref  ->  r14         class-hnd exact single-def <System.Threading.Channels.BoundedChannel`1[int]>
-;  V04 loc1         [V04,T13] (  4,  1   )     ref  ->  [rbp-0x48]  class-hnd exact EH-live spill-single-def <System.Collections.Generic.Deque`1[int]>
-;  V05 loc2         [V05    ] (  6,  2.50)   ubyte  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V04 loc1         [V04,T18] (  4,  1   )     ref  ->  [rbp-0x58]  class-hnd exact EH-live spill-single-def <System.Collections.Generic.Deque`1[int]>
+;  V05 loc2         [V05    ] (  6,  2.50)   ubyte  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Threading.Channels.AsyncOperation`1[int]>
-;  V07 loc4         [V07    ] ( 14,  7   )  struct (16) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed <System.Threading.Tasks.ValueTask`1[int]>
-;  V08 loc5         [V08,T06] (  5,  2.50)     ref  ->  rdi         class-hnd single-def <System.Threading.Channels.AsyncOperation`1[int]>
+;  V07 loc4         [V07,T08] (  5,  2.50)  struct (16) [rbp-0x50]  do-not-enreg[HS] must-init hidden-struct-arg <System.Threading.Tasks.ValueTask`1[int]>
+;  V08 loc5         [V08,T06] (  5,  2.50)     ref  ->  r13         class-hnd single-def <System.Threading.Channels.AsyncOperation`1[int]>
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T07] (  2,  2   )     int  ->  rdi         "impAppendStmt"
+;  V10 tmp1         [V10,T12] (  2,  2   )     int  ->  r13         "impAppendStmt"
 ;  V11 tmp2         [V11,T03] (  5,  5   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Channels.AsyncOperation`1[int]>
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
 ;* V13 tmp4         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
 ;* V14 tmp5         [V14,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V15 tmp6         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;  V16 tmp7         [V16,T05] (  3,  3   )     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
-;  V17 tmp8         [V17,T08] (  2,  2   )   ubyte  ->  rcx         "Inlining Arg"
+;  V17 tmp8         [V17,T13] (  2,  2   )   ubyte  ->  rcx         "Inlining Arg"
 ;* V18 tmp9         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Generic.Deque`1[int]>
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp11        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
-;  V21 tmp12        [V21,T09] (  2,  2   )   short  ->  rcx         "Inlining Arg"
+;  V21 tmp12        [V21,T14] (  2,  2   )   short  ->  r12         "Inlining Arg"
 ;* V22 tmp13        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
-;  V23 tmp14        [V23,T10] (  2,  2   )   short  ->  rcx         "Inlining Arg"
+;  V23 tmp14        [V23,T15] (  2,  2   )   short  ->  r12         "Inlining Arg"
 ;  V24 tmp15        [V24,T01] (  7,  4.50)     ref  ->  rsi         single-def "field V02._source (fldOffset=0x0)" P-INDEP
-;* V25 tmp16        [V25,T21] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._obj (fldOffset=0x0)" P-INDEP
-;  V26 tmp17        [V26,T17] (  2,  1   )     int  ->  rax         "field V12._result (fldOffset=0x8)" P-INDEP
-;* V27 tmp18        [V27,T23] (  0,  0   )   short  ->  zero-ref    "field V12._token (fldOffset=0xc)" P-INDEP
-;* V28 tmp19        [V28,T24] (  0,  0   )   ubyte  ->  zero-ref    "field V12._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;  V29 tmp20        [V29,T14] (  2,  1   )     ref  ->  rdx         single-def "field V13._obj (fldOffset=0x0)" P-INDEP
-;* V30 tmp21        [V30,T25] (  0,  0   )     int  ->  zero-ref    "field V13._result (fldOffset=0x8)" P-INDEP
-;* V31 tmp22        [V31,T26] (  0,  0   )   short  ->  zero-ref    "field V13._token (fldOffset=0xc)" P-INDEP
-;* V32 tmp23        [V32,T27] (  0,  0   )   ubyte  ->  zero-ref    "field V13._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;  V33 tmp24        [V33,T15] (  2,  1   )     ref  ->  rdi         single-def "field V20._obj (fldOffset=0x0)" P-INDEP
-;* V34 tmp25        [V34,T28] (  0,  0   )     int  ->  zero-ref    "field V20._result (fldOffset=0x8)" P-INDEP
-;  V35 tmp26        [V35,T18] (  2,  1   )   short  ->  rcx         "field V20._token (fldOffset=0xc)" P-INDEP
-;* V36 tmp27        [V36,T29] (  0,  0   )   ubyte  ->  zero-ref    "field V20._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;  V37 tmp28        [V37,T16] (  2,  1   )     ref  ->  r15         single-def "field V22._obj (fldOffset=0x0)" P-INDEP
-;* V38 tmp29        [V38,T30] (  0,  0   )     int  ->  zero-ref    "field V22._result (fldOffset=0x8)" P-INDEP
-;  V39 tmp30        [V39,T19] (  2,  1   )   short  ->  rcx         "field V22._token (fldOffset=0xc)" P-INDEP
-;* V40 tmp31        [V40,T31] (  0,  0   )   ubyte  ->  zero-ref    "field V22._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;  V41 PSPSym       [V41,T20] (  1,  1   )    long  ->  [rbp-0x50]  do-not-enreg[V] "PSPSym"
-;  V42 cse0         [V42,T11] (  3,  1.50)     ref  ->  rdx         "CSE #02: moderate"
-;  V43 cse1         [V43,T12] (  3,  1.50)     ref  ->  rdx         "CSE #01: moderate"
+;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._obj (fldOffset=0x0)" P-INDEP
+;  V26 tmp17        [V26,T20] (  2,  1   )     int  ->  r15         "field V12._result (fldOffset=0x8)" P-INDEP
+;* V27 tmp18        [V27    ] (  0,  0   )   short  ->  zero-ref    "field V12._token (fldOffset=0xc)" P-INDEP
+;* V28 tmp19        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "field V12._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;  V29 tmp20        [V29,T19] (  2,  1   )     ref  ->  rdx         single-def "field V13._obj (fldOffset=0x0)" P-INDEP
+;* V30 tmp21        [V30,T23] (  0,  0   )     int  ->  zero-ref    "field V13._result (fldOffset=0x8)" P-INDEP
+;* V31 tmp22        [V31,T24] (  0,  0   )   short  ->  zero-ref    "field V13._token (fldOffset=0xc)" P-INDEP
+;* V32 tmp23        [V32,T25] (  0,  0   )   ubyte  ->  zero-ref    "field V13._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;* V33 tmp24        [V33    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V20._obj (fldOffset=0x0)" P-INDEP
+;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V20._result (fldOffset=0x8)" P-INDEP
+;* V35 tmp26        [V35    ] (  0,  0   )   short  ->  zero-ref    "field V20._token (fldOffset=0xc)" P-INDEP
+;* V36 tmp27        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "field V20._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;* V37 tmp28        [V37    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V22._obj (fldOffset=0x0)" P-INDEP
+;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V22._result (fldOffset=0x8)" P-INDEP
+;* V39 tmp30        [V39    ] (  0,  0   )   short  ->  zero-ref    "field V22._token (fldOffset=0xc)" P-INDEP
+;* V40 tmp31        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "field V22._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;  V41 tmp32        [V41,T07] (  5,  2.50)     ref  ->  r13         "V07.[000..008)"
+;  V42 tmp33        [V42,T09] (  5,  2.50)     int  ->  r15         "V07.[008..012)"
+;  V43 tmp34        [V43,T10] (  5,  2.50)   short  ->  r12         "V07.[012..014)"
+;  V44 tmp35        [V44,T11] (  5,  2.50)   ubyte  ->  rdi         "V07.[014..015)"
+;  V45 PSPSym       [V45,T21] (  1,  1   )    long  ->  [rbp-0x60]  do-not-enreg[V] "PSPSym"
+;  V46 cse0         [V46,T16] (  3,  1.50)     ref  ->  rdx         "CSE #02: moderate"
+;  V47 cse1         [V47,T17] (  3,  1.50)     ref  ->  rdx         "CSE #01: moderate"
 ;
 ; Lcl frame size = 72
 
@@ -59,21 +63,23 @@ G_M19570_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rbp
        push     r15
        push     r14
+       push     r13
+       push     r12
        push     rdi
        push     rsi
        push     rbx
        sub      rsp, 72
-       lea      rbp, [rsp+0x70]
+       lea      rbp, [rsp+0x80]
        xor      eax, eax
-       mov      qword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0x50], rsp
+       mov      qword ptr [rbp-0x50], rax
+       mov      qword ptr [rbp-0x60], rsp
        mov      rdi, rcx
        ; gcrRegs +[rdi]
        mov      rbx, rdx
        ; byrRegs +[rbx]
        mov      rsi, r8
        ; gcrRegs +[rsi]
-						;; size=36 bbWeight=1 PerfScore 9.75
+						;; size=43 bbWeight=1 PerfScore 11.75
 G_M19570_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        test     rsi, rsi
        je       SHORT G_M19570_IG04
@@ -98,10 +104,10 @@ G_M19570_IG04:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008
        ; gcrRegs +[r14]
        mov      rcx, gword ptr [r14+0x28]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x48], rcx
+       mov      gword ptr [rbp-0x58], rcx
        ; GC ptr vars +{V04}
        xor      edx, edx
-       mov      dword ptr [rbp-0x30], edx
+       mov      dword ptr [rbp-0x40], edx
        jmp      SHORT G_M19570_IG07
 						;; size=19 bbWeight=0.50 PerfScore 4.12
 G_M19570_IG05:        ; bbWeight=0.50, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref
@@ -124,22 +130,24 @@ G_M19570_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
        pop      rsi
        pop      rdi
+       pop      r12
+       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M19570_IG07:        ; bbWeight=0.50, gcVars=0000000000002000 {V04}, gcrefRegs=40C2 {rcx rsi rdi r14}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+						;; size=17 bbWeight=0.50 PerfScore 2.62
+G_M19570_IG07:        ; bbWeight=0.50, gcVars=0000000000040000 {V04}, gcrefRegs=40C2 {rcx rsi rdi r14}, byrefRegs=0008 {rbx}, gcvars, byref, isz
        ; gcrRegs +[rcx rsi rdi r14]
        ; byrRegs -[rax]
        ; GC ptr vars +{V04}
-       cmp      byte  ptr [rbp-0x30], 0
+       cmp      byte  ptr [rbp-0x40], 0
        jne      G_M19570_IG12
-       lea      rdx, [rbp-0x30]
+       lea      rdx, [rbp-0x40]
        call     <unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       movzx    rcx, byte  ptr [rbp-0x30]
+       movzx    rcx, byte  ptr [rbp-0x40]
        test     ecx, ecx
        jne      SHORT G_M19570_IG08
        mov      rdx, 0xD1FFAB1E
@@ -159,58 +167,60 @@ G_M19570_IG08:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[rcx rsi rdi r14]
        ; gcr arg pop 0
-       xor      rdx, rdx
-       ; gcrRegs +[rdx]
-       mov      gword ptr [rbp-0x40], rdx
-       mov      dword ptr [rbp-0x38], eax
-       mov      word  ptr [rbp-0x34], 0
-       mov      byte  ptr [rbp-0x32], 1
+       mov      r15d, eax
+       xor      r13, r13
+       ; gcrRegs +[r13]
+       xor      r12d, r12d
+       mov      edi, 1
        jmp      G_M19570_IG13
-						;; size=43 bbWeight=0.50 PerfScore 7.75
+						;; size=38 bbWeight=0.50 PerfScore 6.12
 G_M19570_IG09:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0008 {rbx}, byref, isz
-       ; gcrRegs -[rdx] +[rsi rdi r14]
+       ; gcrRegs -[r13] +[rsi rdi r14]
        mov      rdx, gword ptr [r14+0x50]
        ; gcrRegs +[rdx]
        test     rdx, rdx
        je       SHORT G_M19570_IG10
-       lea      rcx, [rbp-0x40]
+       lea      rcx, [rbp-0x50]
        call     [System.Threading.Channels.ChannelUtilities:GetInvalidCompletionValueTask[int](System.Exception):System.Threading.Tasks.ValueTask`1[int]]
        ; gcrRegs -[rdx rsi rdi r14]
        ; gcr arg pop 0
+       mov      r13, gword ptr [rbp-0x50]
+       ; gcrRegs +[r13]
+       mov      r15d, dword ptr [rbp-0x48]
+       movsx    r12, word  ptr [rbp-0x44]
+       movzx    rdi, byte  ptr [rbp-0x42]
        jmp      G_M19570_IG13
-						;; size=24 bbWeight=0.50 PerfScore 4.38
+						;; size=42 bbWeight=0.50 PerfScore 7.38
 G_M19570_IG10:        ; bbWeight=0.50, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0008 {rbx}, byref, isz
-       ; gcrRegs +[rsi rdi r14]
+       ; gcrRegs -[r13] +[rsi rdi r14]
        test     rsi, rsi
        jne      SHORT G_M19570_IG11
-       mov      rdi, gword ptr [rdi+0x10]
-       mov      rcx, rdi
+       mov      r13, gword ptr [rdi+0x10]
+       ; gcrRegs +[r13]
+       mov      rcx, r13
        ; gcrRegs +[rcx]
        cmp      dword ptr [rcx], ecx
        call     [System.Threading.Channels.AsyncOperation`1[int]:TryOwnAndReset():ubyte:this]
-       ; gcrRegs -[rcx]
+       ; gcrRegs -[rcx rdi]
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M19570_IG11
        mov      rcx, gword ptr [r14+0x30]
        ; gcrRegs +[rcx]
-       mov      rdx, rdi
+       mov      rdx, r13
        ; gcrRegs +[rdx]
        cmp      dword ptr [rcx], ecx
        call     [System.Collections.Generic.Deque`1[System.__Canon]:EnqueueTail(System.__Canon):this]
        ; gcrRegs -[rcx rdx rsi r14]
        ; gcr arg pop 0
-       movsx    rcx, word  ptr [rdi+0x40]
-       mov      gword ptr [rbp-0x40], rdi
-       xor      eax, eax
-       mov      dword ptr [rbp-0x38], eax
-       mov      word  ptr [rbp-0x34], cx
-       mov      byte  ptr [rbp-0x32], 1
+       movsx    r12, word  ptr [r13+0x40]
+       xor      r15d, r15d
+       mov      edi, 1
        jmp      SHORT G_M19570_IG13
-						;; size=63 bbWeight=0.50 PerfScore 14.62
+						;; size=54 bbWeight=0.50 PerfScore 12.75
 G_M19570_IG11:        ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0008 {rbx}, byref, isz
-       ; gcrRegs -[rdi] +[rsi r14]
-       movzx    rdi, byte  ptr [r14+0x60]
+       ; gcrRegs -[r13] +[rsi r14]
+       movzx    r13, byte  ptr [r14+0x60]
        mov      rcx, 0xD1FFAB1E      ; System.Threading.Channels.AsyncOperation`1[int]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
@@ -220,7 +230,7 @@ G_M19570_IG11:        ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0008
        test     rsi, rsi
        setne    dl
        movzx    rdx, dl
-       or       edx, edi
+       or       edx, r13d
        movzx    rdx, dl
        mov      rcx, r15
        ; gcrRegs +[rcx]
@@ -238,76 +248,85 @@ G_M19570_IG11:        ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0008
        call     [System.Collections.Generic.Deque`1[System.__Canon]:EnqueueTail(System.__Canon):this]
        ; gcrRegs -[rcx rdx r14]
...
benchmarks.run_pgo.windows.x64.checked.mch
-27 (-20.77%) : 95691.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
@@ -10,28 +10,26 @@
 ;
 ;  V00 this         [V00,T00] (  6,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol>
 ;  V01 RetBuf       [V01,T01] (  4,  4   )   byref  ->  rbp         single-def
-;  V02 loc0         [V02    ] (  2,  0   )  struct (24) [rsp+0x40]  do-not-enreg[XS] must-init addr-exposed <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V02 loc0         [V02    ] (  2,  0   )  struct (24) [rsp+0x20]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  2,  0   )  struct (24) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 88
+; Lcl frame size = 56
 
 G_M32568_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 88
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
+       sub      rsp, 56
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x30], ymm4
-       mov      qword ptr [rsp+0x50], rax
+       vmovdqa  xmmword ptr [rsp+0x20], xmm4
+       xor      eax, eax
+       mov      qword ptr [rsp+0x30], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rbp, rdx
        ; byrRegs +[rbp]
-						;; size=36 bbWeight=1 PerfScore 9.33
+						;; size=31 bbWeight=1 PerfScore 8.33
 G_M32568_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        cmp      gword ptr [rbx+0x28], 0
        je       SHORT G_M32568_IG05
@@ -52,40 +50,32 @@ G_M32568_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp},
        ; byrRegs +[rax]
 						;; size=26 bbWeight=1 PerfScore 5.75
 G_M32568_IG04:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 88
+       add      rsp, 56
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        ret      
 						;; size=9 bbWeight=1 PerfScore 3.25
-G_M32568_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
+G_M32568_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref, isz
        ; gcrRegs +[rbx]
        ; byrRegs -[rax rsi rdi]
-       lea      rdx, [rsp+0x40]
+       lea      rdx, [rsp+0x20]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:GetTypeSymbol():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-						;; size=14 bbWeight=0 PerfScore 0.00
-G_M32568_IG06:        ; bbWeight=0, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rsp+0x40]
-       vmovdqu  xmmword ptr [rsp+0x28], xmm0
-       mov      rdx, qword ptr [rsp+0x50]
-       mov      qword ptr [rsp+0x38], rdx
-						;; size=22 bbWeight=0 PerfScore 0.00
-G_M32568_IG07:        ; bbWeight=0, isz, extend
-       lea      rdx, [rsp+0x28]
+       lea      rdx, [rsp+0x20]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:SetTypeWithAnnotations(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      SHORT G_M32568_IG03
-						;; size=16 bbWeight=0 PerfScore 0.00
+						;; size=30 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 130, prolog size 30, PerfScore 22.33, instruction count 38, allocated bytes for code 130 (MethodHash=d87180c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
+; Total bytes of code 103, prolog size 25, PerfScore 21.33, instruction count 33, allocated bytes for code 103 (MethodHash=d87180c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -98,7 +88,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
     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)
-49 (-13.10%) : 48764.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteConditionalExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (Tier0)
@@ -10,9 +10,9 @@
 ;  V02 arg1         [V02    ] (  1,  1   )     ref  ->  [rbp+0x20]  do-not-enreg[] class-hnd <System.Linq.Expressions.Expression>
 ;  V03 arg2         [V03    ] (  1,  1   )     int  ->  [rbp+0x28]  do-not-enreg[]
 ;  V04 loc0         [V04    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init class-hnd <<unknown class>>
-;  V05 loc1         [V05    ] (  1,  1   )  struct (16) [rbp-0x28]  do-not-enreg[XS] must-init addr-exposed <System.Linq.Expressions.Compiler.StackSpiller+Result>
-;  V06 loc2         [V06    ] (  1,  1   )  struct (16) [rbp-0x38]  do-not-enreg[XS] must-init addr-exposed <System.Linq.Expressions.Compiler.StackSpiller+Result>
-;  V07 loc3         [V07    ] (  1,  1   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed <System.Linq.Expressions.Compiler.StackSpiller+Result>
+;  V05 loc1         [V05    ] (  1,  1   )  struct (16) [rbp-0x28]  do-not-enreg[HS] must-init hidden-struct-arg <System.Linq.Expressions.Compiler.StackSpiller+Result>
+;  V06 loc2         [V06    ] (  1,  1   )  struct (16) [rbp-0x38]  do-not-enreg[HS] must-init hidden-struct-arg <System.Linq.Expressions.Compiler.StackSpiller+Result>
+;  V07 loc3         [V07    ] (  1,  1   )  struct (16) [rbp-0x48]  do-not-enreg[HS] must-init hidden-struct-arg <System.Linq.Expressions.Compiler.StackSpiller+Result>
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09    ] (  1,  1   )     int  ->  [rbp-0x4C]  do-not-enreg[] "DUP instruction"
 ;  V10 tmp2         [V10    ] (  1,  1   )     int  ->  [rbp-0x50]  do-not-enreg[]
@@ -21,28 +21,25 @@
 ;  V13 tmp5         [V13    ] (  1,  1   )     ref  ->  [rbp-0x70]  do-not-enreg[] must-init "argument with side effect"
 ;  V14 tmp6         [V14    ] (  1,  1   )     ref  ->  [rbp-0x78]  do-not-enreg[] must-init "argument with side effect"
 ;  V15 tmp7         [V15    ] (  1,  1   )     ref  ->  [rbp-0x80]  do-not-enreg[] must-init "argument with side effect"
-;  V16 tmp8         [V16    ] (  1,  1   )     ref  ->  [rbp-0x88]  do-not-enreg[] must-init "argument with side effect"
-;  V17 tmp9         [V17    ] (  1,  1   )     ref  ->  [rbp-0x90]  do-not-enreg[] must-init "argument with side effect"
-;  V18 tmp10        [V18    ] (  1,  1   )     ref  ->  [rbp-0x98]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 176
+; Lcl frame size = 144
 
 G_M33374_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     rdi
        push     rsi
-       sub      rsp, 176
-       lea      rbp, [rsp+0xC0]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x98], rax
+       sub      rsp, 144
+       lea      rbp, [rsp+0xA0]
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu32 zmmword ptr [rbp-0x90], zmm4
-       vmovdqu32 zmmword ptr [rbp-0x50], zmm4
+       vmovdqu32 zmmword ptr [rbp-0x80], zmm4
+       vmovdqa  xmmword ptr [rbp-0x40], xmm4
+       vmovdqa  xmmword ptr [rbp-0x30], xmm4
+       vmovdqa  xmmword ptr [rbp-0x20], xmm4
        mov      gword ptr [rbp+0x10], rcx
        mov      bword ptr [rbp+0x18], rdx
        mov      gword ptr [rbp+0x20], r8
        mov      dword ptr [rbp+0x28], r9d
-						;; size=67 bbWeight=1 PerfScore 13.33
+						;; size=60 bbWeight=1 PerfScore 16.08
 G_M33374_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      rdx, gword ptr [rbp+0x20]
        ; gcrRegs +[rdx]
@@ -100,16 +97,10 @@ G_M33374_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      dword ptr [rbp-0x50], eax
        cmp      dword ptr [rbp-0x4C], 0
        je       SHORT G_M33374_IG03
-       mov      rax, gword ptr [rbp-0x28]
-       ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x98], rax
-       mov      rax, gword ptr [rbp-0x38]
-       mov      gword ptr [rbp-0x88], rax
-       mov      rax, gword ptr [rbp-0x48]
-       mov      gword ptr [rbp-0x90], rax
        mov      rcx, gword ptr [rbp-0x18]
        ; gcrRegs +[rcx]
        mov      rax, gword ptr [rbp-0x18]
+       ; gcrRegs +[rax]
        mov      rax, qword ptr [rax]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x48]
@@ -118,16 +109,16 @@ G_M33374_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      gword ptr [rbp-0x80], rax
        mov      r9, gword ptr [rbp-0x80]
        ; gcrRegs +[r9]
-       mov      rdx, gword ptr [rbp-0x88]
+       mov      rdx, gword ptr [rbp-0x38]
        ; gcrRegs +[rdx]
-       mov      r8, gword ptr [rbp-0x90]
+       mov      r8, gword ptr [rbp-0x48]
        ; gcrRegs +[r8]
-       mov      rcx, gword ptr [rbp-0x98]
+       mov      rcx, gword ptr [rbp-0x28]
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx r8-r9]
        mov      gword ptr [rbp+0x20], rax
-						;; size=251 bbWeight=1 PerfScore 81.75
+						;; size=209 bbWeight=1 PerfScore 75.75
 G_M33374_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        vxorps   xmm0, xmm0, xmm0
@@ -148,14 +139,14 @@ G_M33374_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs +[rax]
 						;; size=45 bbWeight=1 PerfScore 11.33
 G_M33374_IG04:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 176
+       add      rsp, 144
        pop      rsi
        pop      rdi
        pop      rbp
        ret      
 						;; size=11 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 374, prolog size 51, PerfScore 109.17, instruction count 87, allocated bytes for code 374 (MethodHash=9c6c7da1) for method System.Linq.Expressions.Compiler.StackSpiller:RewriteConditionalExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (Tier0)
+; Total bytes of code 325, prolog size 44, PerfScore 105.92, instruction count 81, allocated bytes for code 325 (MethodHash=9c6c7da1) for method System.Linq.Expressions.Compiler.StackSpiller:RewriteConditionalExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -169,7 +160,7 @@ Unwind Info:
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
     CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 22 * 8 = 176 = 0x000B0
+      Size: 18 * 8 = 144 = 0x00090
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
-18 (-12.16%) : 95803.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundRoot():Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
@@ -10,29 +10,30 @@
 ;  V00 this         [V00,T00] (  7,  6.83)     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.MemberSemanticModel>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
-;  V03 tmp2         [V03,T03] (  3,  2.17)     ref  ->  rdx         "guarded devirt return temp"
+;  V03 tmp2         [V03,T05] (  3,  2.17)     ref  ->  rdx         "guarded devirt return temp"
 ;* V04 tmp3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.MethodBodySemanticModel>
-;  V05 tmp4         [V05,T04] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BoundNode>
+;  V05 tmp4         [V05,T06] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BoundNode>
 ;* V06 tmp5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
-;  V07 tmp6         [V07    ] (  5,  3.83)  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
-;  V08 tmp7         [V08,T06] (  2,  0.00)     int  ->  rcx         "Inline return value spill temp"
-;  V09 tmp8         [V09,T05] (  3,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BoundNode>
-;  V10 tmp9         [V10,T01] (  2,  6.67)     ref  ->   r8         single-def "argument with side effect"
-;  V11 tmp10        [V11,T07] (  3,  0   )     ref  ->  rax         single-def "arr expr"
-;  V12 cse0         [V12,T02] (  4,  3.67)    long  ->  rsi         "CSE #01: aggressive"
+;  V07 tmp6         [V07,T02] (  3,  3.83)  struct (16) [rsp+0x20]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op "Inline stloc first use temp" <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
+;  V08 tmp7         [V08,T08] (  2,  0.00)     int  ->  rcx         "Inline return value spill temp"
+;  V09 tmp8         [V09,T07] (  3,  1   )     ref  ->  rax         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BoundNode>
+;  V10 tmp9         [V10,T04] (  4,  3.33)     ref  ->  rdi         single-def "V07.[008..016)"
+;  V11 tmp10        [V11,T01] (  2,  6.67)     ref  ->   r8         single-def "argument with side effect"
+;  V12 cse0         [V12,T03] (  4,  3.67)    long  ->  rsi         "CSE #01: aggressive"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 48
 
 G_M51810_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 56
+       sub      rsp, 48
        xor      eax, eax
+       mov      qword ptr [rsp+0x20], rax
        mov      qword ptr [rsp+0x28], rax
-       mov      qword ptr [rsp+0x30], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-						;; size=21 bbWeight=1 PerfScore 4.75
+						;; size=22 bbWeight=1 PerfScore 5.75
 G_M51810_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rsi, qword ptr [rbx]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.MethodBodySemanticModel
@@ -52,37 +53,38 @@ G_M51810_IG04:        ; bbWeight=1.67, gcrefRegs=000C {rdx rbx}, byrefRegs=0000
        ; gcr arg pop 0
        mov      r8, rax
        ; gcrRegs +[r8]
-       lea      rdx, [rsp+0x28]
+       lea      rdx, [rsp+0x20]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rbx r8]
        ; gcr arg pop 0
-       cmp      gword ptr [rsp+0x30], 0
+       mov      rdi, gword ptr [rsp+0x28]
+       ; gcrRegs +[rdi]
+       test     rdi, rdi
        jne      SHORT G_M51810_IG07
-						;; size=37 bbWeight=1.67 PerfScore 20.42
+						;; size=39 bbWeight=1.67 PerfScore 19.17
 G_M51810_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rax, gword ptr [rsp+0x28]
+       ; gcrRegs -[rdi]
+       mov      rax, gword ptr [rsp+0x20]
        ; gcrRegs +[rax]
 						;; size=5 bbWeight=0.50 PerfScore 0.50
 G_M51810_IG06:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
-       add      rsp, 56
+       add      rsp, 48
        pop      rbx
        pop      rsi
+       pop      rdi
        ret      
-						;; size=7 bbWeight=1 PerfScore 2.25
-G_M51810_IG07:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax]
-       mov      rcx, gword ptr [rsp+0x30]
-       ; gcrRegs +[rcx]
-       mov      ecx, dword ptr [rcx+0x08]
-       ; gcrRegs -[rcx]
+						;; size=8 bbWeight=1 PerfScore 2.75
+G_M51810_IG07:        ; bbWeight=0.00, gcVars=0000000000000000 {}, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax] +[rdi]
+       mov      ecx, dword ptr [rdi+0x08]
        test     ecx, ecx
        jne      SHORT G_M51810_IG09
        jmp      SHORT G_M51810_IG10
-						;; size=14 bbWeight=0.00 PerfScore 0.00
+						;; size=9 bbWeight=0.00 PerfScore 0.00
 G_M51810_IG08:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rbx]
+       ; gcrRegs -[rdi] +[rbx]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rsi+0x78]
@@ -93,29 +95,20 @@ G_M51810_IG08:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rdx]
        jmp      SHORT G_M51810_IG04
 						;; size=15 bbWeight=0 PerfScore 0.00
-G_M51810_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax rdx rbx]
-       mov      rax, gword ptr [rsp+0x30]
+G_M51810_IG09:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax rdx rbx] +[rdi]
+       mov      rax, gword ptr [rdi+0x10]
        ; gcrRegs +[rax]
-       cmp      dword ptr [rax+0x08], 0
-       jbe      SHORT G_M51810_IG11
-       mov      rax, gword ptr [rax+0x10]
        jmp      SHORT G_M51810_IG06
-						;; size=17 bbWeight=0 PerfScore 0.00
+						;; size=6 bbWeight=0 PerfScore 0.00
 G_M51810_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
+       ; gcrRegs -[rax rdi]
        xor      rax, rax
        ; gcrRegs +[rax]
        jmp      SHORT G_M51810_IG06
 						;; size=4 bbWeight=0 PerfScore 0.00
-G_M51810_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
-       call     CORINFO_HELP_RNGCHKFAIL
-       ; gcr arg pop 0
-       int3     
-						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 148, prolog size 18, PerfScore 32.42, instruction count 45, allocated bytes for code 148 (MethodHash=bae0359d) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundRoot():Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
+; Total bytes of code 130, prolog size 19, PerfScore 32.67, instruction count 42, allocated bytes for code 130 (MethodHash=bae0359d) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundRoot():Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -123,11 +116,12 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x07
+  CountOfUnwindCodes: 4
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
+    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)
+39 (+10.29%) : 107735.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[double](double,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (Tier1)
@@ -9,11 +9,11 @@
 ; 4 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T18] (  3,  3   )  double  ->  [rsp+0x90]  ld-addr-op single-def
+;  V00 arg0         [V00,T16] (  3,  3   )  double  ->  [rsp+0x90]  ld-addr-op single-def
 ;  V01 arg1         [V01,T01] (  3,  6   )   byref  ->  rbx         single-def
 ;  V02 arg2         [V02,T02] (  3,  3   )   byref  ->   r8         single-def
 ;  V03 arg3         [V03    ] (  5,  4   )  struct ( 8) [rsp+0xA8]  do-not-enreg[XSF] addr-exposed ld-addr-op single-def <System.Buffers.StandardFormat>
-;  V04 loc0         [V04    ] (  4,  3   )  struct (16) [rsp+0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Span`1[ushort]>
+;  V04 loc0         [V04,T17] (  3,  0   )  struct (16) [rsp+0x50]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.Span`1[ushort]>
 ;* V05 loc1         [V05    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V06 loc2         [V06    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,35 +23,37 @@
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V12 tmp5         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V13 tmp6         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;  V14 tmp7         [V14,T04] (  2,  4   )     int  ->  rbp         "Inlining Arg"
-;  V15 tmp8         [V15,T03] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;* V14 tmp7         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V15 tmp8         [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V16 tmp9         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp10        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V18 tmp11        [V18,T00] (  9,  9.75)     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Globalization.CultureInfo>
 ;* V19 tmp12        [V19    ] (  0,  0   )  double  ->  zero-ref    "impAppendStmt"
-;  V20 tmp13        [V20,T08] (  3,  2   )     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-;  V21 tmp14        [V21,T09] (  3,  2   )     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+;  V20 tmp13        [V20,T07] (  3,  2   )     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+;  V21 tmp14        [V21,T08] (  3,  2   )     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
 ;* V22 tmp15        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def ptr "Inline stloc first use temp" <System.Globalization.CultureInfo>
-;  V23 tmp16        [V23,T06] (  2,  3   )     ref  ->   r8         class-hnd "spilling qmarkNull" <System.Globalization.NumberFormatInfo>
-;  V24 tmp17        [V24,T05] (  6,  3.19)     ref  ->   r8        
-;  V25 tmp18        [V25,T07] (  4,  2.06)     ref  ->  rax         single-def "ISINST eval op1"
-;  V26 tmp19        [V26,T15] (  3,  1.31)     ref  ->   r8         class-hnd "spilling qmarkNull" <System.Globalization.NumberFormatInfo>
-;  V27 tmp20        [V27,T16] (  2,  1   )     ref  ->   r8         class-hnd exact single-def "dup spill" <System.Globalization.NumberFormatInfo>
-;  V28 tmp21        [V28,T17] (  4,  0.88)     ref  ->   r8        
+;  V23 tmp16        [V23,T05] (  2,  3   )     ref  ->   r8         class-hnd "spilling qmarkNull" <System.Globalization.NumberFormatInfo>
+;  V24 tmp17        [V24,T03] (  6,  3.19)     ref  ->   r8        
+;  V25 tmp18        [V25,T06] (  4,  2.06)     ref  ->  rax         single-def "ISINST eval op1"
+;  V26 tmp19        [V26,T13] (  3,  1.31)     ref  ->   r8         class-hnd "spilling qmarkNull" <System.Globalization.NumberFormatInfo>
+;  V27 tmp20        [V27,T14] (  2,  1   )     ref  ->   r8         class-hnd exact single-def "dup spill" <System.Globalization.NumberFormatInfo>
+;  V28 tmp21        [V28,T15] (  4,  0.88)     ref  ->   r8        
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp23        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V31 tmp24        [V31    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V32 tmp25        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp26        [V33,T19] (  2,  0   )   byref  ->   r8         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V34 tmp27        [V34,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V11._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp28        [V35,T10] (  2,  2   )   byref  ->  rdi         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V36 tmp29        [V36,T13] (  2,  2   )     int  ->  rbp         "field V12._length (fldOffset=0x8)" P-INDEP
-;  V37 tmp30        [V37,T11] (  2,  2   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-;  V38 tmp31        [V38,T14] (  2,  2   )     int  ->  rbp         "field V13._length (fldOffset=0x8)" P-INDEP
-;  V39 tmp32        [V39    ] (  3,  0   )  struct (16) [rsp+0x40]  do-not-enreg[XSF] must-init addr-exposed ptr "by-value struct argument" <System.Span`1[ushort]>
-;  V40 tmp33        [V40    ] (  3,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V41 GsCookie     [V41    ] (  1,  1   )    long  ->  [rsp+0x60]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V42 tmp35        [V42,T12] (  2,  2   )   byref  ->  rsi         single-def "shadowVar"
+;  V33 tmp26        [V33,T18] (  2,  0   )   byref  ->   r8         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V34 tmp27        [V34,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V11._length (fldOffset=0x8)" P-INDEP
+;* V35 tmp28        [V35    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp29        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;  V37 tmp30        [V37,T10] (  2,  2   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V38 tmp31        [V38,T12] (  2,  2   )     int  ->  rbp         "field V13._length (fldOffset=0x8)" P-INDEP
+;  V39 tmp32        [V39,T09] (  3,  2   )   byref  ->  rdi         "V04.[000..008)"
+;  V40 tmp33        [V40,T04] (  4,  3   )     int  ->  rbp         "V04.[008..012)"
+;  V41 tmp34        [V41    ] (  3,  0   )  struct (16) [rsp+0x40]  do-not-enreg[XSF] must-init addr-exposed ptr "by-value struct argument" <System.Span`1[ushort]>
+;  V42 tmp35        [V42    ] (  3,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V43 GsCookie     [V43    ] (  1,  1   )    long  ->  [rsp+0x60]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
+;  V44 tmp37        [V44,T11] (  2,  2   )   byref  ->  rsi         single-def "shadowVar"
 ;
 ; Lcl frame size = 104
 
@@ -75,35 +77,37 @@ G_M7166_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0108 {rbx r8}, b
        ; byrRegs +[r8]
        mov      rsi, r8
        ; byrRegs +[rsi]
-       vxorps   xmm1, xmm1, xmm1
-       vmovdqu  xmmword ptr [rsp+0x50], xmm1
+       xor      rdi, rdi
+       ; byrRegs +[rdi]
+       xor      ebp, ebp
        movzx    rax, byte  ptr [rsp+0xA8]
        movzx    rcx, byte  ptr [rsp+0xA9]
        or       eax, ecx
-       jne      G_M7166_IG18
-						;; size=37 bbWeight=1 PerfScore 4.83
-G_M7166_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
+       jne      G_M7166_IG19
+						;; size=31 bbWeight=1 PerfScore 4.00
+G_M7166_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
        ; byrRegs -[r8]
-       mov      rdi, bword ptr [rsp+0x50]
-       ; byrRegs +[rdi]
-       mov      ebp, dword ptr [rsp+0x58]
+       test     ebp, ebp
+       jl       G_M7166_IG20
+						;; size=8 bbWeight=1 PerfScore 1.25
+G_M7166_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
        call     [System.Globalization.CultureInfo:get_InvariantCulture():System.Globalization.CultureInfo]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       G_M7166_IG19
-						;; size=24 bbWeight=1 PerfScore 6.25
-G_M7166_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+       je       G_M7166_IG21
+						;; size=15 bbWeight=1 PerfScore 4.25
+G_M7166_IG05:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        cmp      byte  ptr [rax+0x61], 0
-       jne      SHORT G_M7166_IG08
+       jne      SHORT G_M7166_IG09
 						;; size=6 bbWeight=0.50 PerfScore 2.00
-G_M7166_IG05:        ; bbWeight=0.25, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG06:        ; bbWeight=0.25, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        mov      r8, gword ptr [rax+0x18]
        ; gcrRegs +[r8]
        test     r8, r8
-       jne      SHORT G_M7166_IG07
+       jne      SHORT G_M7166_IG08
 						;; size=9 bbWeight=0.25 PerfScore 0.81
-G_M7166_IG06:        ; bbWeight=0.12, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref
+G_M7166_IG07:        ; bbWeight=0.12, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref
        ; gcrRegs -[r8]
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -116,11 +120,11 @@ G_M7166_IG06:        ; bbWeight=0.12, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx
        mov      r8, rax
        ; gcrRegs +[r8]
 						;; size=16 bbWeight=0.12 PerfScore 0.94
-G_M7166_IG07:        ; bbWeight=0.25, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG08:        ; bbWeight=0.25, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        ; gcrRegs -[rax]
-       jmp      SHORT G_M7166_IG13
+       jmp      SHORT G_M7166_IG14
 						;; size=2 bbWeight=0.25 PerfScore 0.50
-G_M7166_IG08:        ; bbWeight=0.75, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG09:        ; bbWeight=0.75, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        ; gcrRegs -[r8] +[rax]
        mov      rcx, 0xD1FFAB1E      ; System.Globalization.NumberFormatInfo
        xor      r11, r11
@@ -130,9 +134,9 @@ G_M7166_IG08:        ; bbWeight=0.75, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx
        ; gcrRegs +[r8]
        cmove    r8, rax
        test     r8, r8
-       jne      SHORT G_M7166_IG13
+       jne      SHORT G_M7166_IG14
 						;; size=28 bbWeight=0.75 PerfScore 3.94
-G_M7166_IG09:        ; bbWeight=0.38, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG10:        ; bbWeight=0.38, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        ; gcrRegs -[r8 r11]
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -143,18 +147,18 @@ G_M7166_IG09:        ; bbWeight=0.38, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     rax, rax
-       jne      SHORT G_M7166_IG16
+       jne      SHORT G_M7166_IG17
 						;; size=31 bbWeight=0.38 PerfScore 1.88
-G_M7166_IG10:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
+G_M7166_IG11:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
        ; gcrRegs -[rax]
        xor      r8, r8
        ; gcrRegs +[r8]
 						;; size=3 bbWeight=0.19 PerfScore 0.05
-G_M7166_IG11:        ; bbWeight=0.38, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG12:        ; bbWeight=0.38, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        test     r8, r8
-       jne      SHORT G_M7166_IG13
+       jne      SHORT G_M7166_IG14
 						;; size=5 bbWeight=0.38 PerfScore 0.47
-G_M7166_IG12:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
+G_M7166_IG13:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
        ; gcrRegs -[r8]
        call     [System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo]
        ; gcrRegs +[rax]
@@ -162,7 +166,7 @@ G_M7166_IG12:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi
        mov      r8, rax
        ; gcrRegs +[r8]
 						;; size=9 bbWeight=0.19 PerfScore 0.61
-G_M7166_IG13:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG14:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        ; gcrRegs -[rax]
        mov      bword ptr [rsp+0x30], rdi
        mov      dword ptr [rsp+0x38], ebp
@@ -178,13 +182,13 @@ G_M7166_IG13:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi
        ; gcr arg pop 0
        mov      rcx, 0xD1FFAB1E
        cmp      qword ptr [rsp+0x60], rcx
-       je       SHORT G_M7166_IG14
+       je       SHORT G_M7166_IG15
        call     CORINFO_HELP_FAIL_FAST
 						;; size=59 bbWeight=1 PerfScore 14.00
-G_M7166_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M7166_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
-G_M7166_IG15:        ; bbWeight=1, epilog, nogc, extend
+G_M7166_IG16:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 104
        pop      rbx
        pop      rbp
@@ -192,19 +196,19 @@ G_M7166_IG15:        ; bbWeight=1, epilog, nogc, extend
        pop      rdi
        ret      
 						;; size=9 bbWeight=1 PerfScore 3.25
-G_M7166_IG16:        ; bbWeight=0.19, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, gcvars, byref, isz
+G_M7166_IG17:        ; bbWeight=0.19, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, gcvars, byref, isz
        ; gcrRegs +[rax]
        ; byrRegs +[rbx rsi rdi]
        mov      r8, 0xD1FFAB1E      ; System.Globalization.NumberFormatInfo
        cmp      qword ptr [rax], r8
-       jne      SHORT G_M7166_IG10
+       jne      SHORT G_M7166_IG11
 						;; size=15 bbWeight=0.19 PerfScore 0.80
-G_M7166_IG17:        ; bbWeight=0.09, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG18:        ; bbWeight=0.09, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        mov      r8, rax
        ; gcrRegs +[r8]
-       jmp      SHORT G_M7166_IG11
+       jmp      SHORT G_M7166_IG12
 						;; size=5 bbWeight=0.09 PerfScore 0.21
-G_M7166_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
+G_M7166_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
        ; gcrRegs -[rax r8]
        ; byrRegs -[rdi]
        lea      r8, [rsp+0x28]
@@ -215,19 +219,32 @@ G_M7166_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi},
        lea      rcx, [rsp+0xA8]
        call     [System.Buffers.StandardFormat:Format(System.Span`1[ushort]):System.Span`1[ushort]:this]
        ; gcr arg pop 0
-       jmp      G_M7166_IG03
-						;; size=47 bbWeight=0 PerfScore 0.00
-G_M7166_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
+       mov      rdi, bword ptr [rsp+0x50]
        ; byrRegs +[rdi]
+       mov      ebp, dword ptr [rsp+0x58]
+       jmp      G_M7166_IG03
+						;; size=56 bbWeight=0 PerfScore 0.00
+G_M7166_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
+       mov      rax, 0xD1FFAB1E      ; code for <unknown method>
+       call     [rax]<unknown method>
+       ; gcrRegs -[rcx rdx]
+       ; gcr arg pop 0
+       jmp      G_M7166_IG04
+						;; size=37 bbWeight=0 PerfScore 0.00
...
+39 (+10.29%) : 22430.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[double](double,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (Tier1)
@@ -9,11 +9,11 @@
 ; 4 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T18] (  3,  3   )  double  ->  [rsp+0x90]  ld-addr-op single-def
+;  V00 arg0         [V00,T16] (  3,  3   )  double  ->  [rsp+0x90]  ld-addr-op single-def
 ;  V01 arg1         [V01,T01] (  3,  6   )   byref  ->  rbx         single-def
 ;  V02 arg2         [V02,T02] (  3,  3   )   byref  ->   r8         single-def
 ;  V03 arg3         [V03    ] (  5,  4   )  struct ( 8) [rsp+0xA8]  do-not-enreg[XSF] addr-exposed ld-addr-op single-def <System.Buffers.StandardFormat>
-;  V04 loc0         [V04    ] (  4,  3   )  struct (16) [rsp+0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Span`1[ushort]>
+;  V04 loc0         [V04,T17] (  3,  0   )  struct (16) [rsp+0x50]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.Span`1[ushort]>
 ;* V05 loc1         [V05    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V06 loc2         [V06    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,35 +23,37 @@
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V12 tmp5         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V13 tmp6         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;  V14 tmp7         [V14,T04] (  2,  4   )     int  ->  rbp         "Inlining Arg"
-;  V15 tmp8         [V15,T03] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;* V14 tmp7         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V15 tmp8         [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V16 tmp9         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp10        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V18 tmp11        [V18,T00] (  9,  9.75)     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Globalization.CultureInfo>
 ;* V19 tmp12        [V19    ] (  0,  0   )  double  ->  zero-ref    "impAppendStmt"
-;  V20 tmp13        [V20,T08] (  3,  2   )     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-;  V21 tmp14        [V21,T09] (  3,  2   )     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+;  V20 tmp13        [V20,T07] (  3,  2   )     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+;  V21 tmp14        [V21,T08] (  3,  2   )     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
 ;* V22 tmp15        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def ptr "Inline stloc first use temp" <System.Globalization.CultureInfo>
-;  V23 tmp16        [V23,T06] (  2,  3   )     ref  ->   r8         class-hnd "spilling qmarkNull" <System.Globalization.NumberFormatInfo>
-;  V24 tmp17        [V24,T05] (  6,  3.19)     ref  ->   r8        
-;  V25 tmp18        [V25,T07] (  4,  2.06)     ref  ->  rax         single-def "ISINST eval op1"
-;  V26 tmp19        [V26,T15] (  3,  1.31)     ref  ->   r8         class-hnd "spilling qmarkNull" <System.Globalization.NumberFormatInfo>
-;  V27 tmp20        [V27,T16] (  2,  1   )     ref  ->   r8         class-hnd exact single-def "dup spill" <System.Globalization.NumberFormatInfo>
-;  V28 tmp21        [V28,T17] (  4,  0.88)     ref  ->   r8        
+;  V23 tmp16        [V23,T05] (  2,  3   )     ref  ->   r8         class-hnd "spilling qmarkNull" <System.Globalization.NumberFormatInfo>
+;  V24 tmp17        [V24,T03] (  6,  3.19)     ref  ->   r8        
+;  V25 tmp18        [V25,T06] (  4,  2.06)     ref  ->  rax         single-def "ISINST eval op1"
+;  V26 tmp19        [V26,T13] (  3,  1.31)     ref  ->   r8         class-hnd "spilling qmarkNull" <System.Globalization.NumberFormatInfo>
+;  V27 tmp20        [V27,T14] (  2,  1   )     ref  ->   r8         class-hnd exact single-def "dup spill" <System.Globalization.NumberFormatInfo>
+;  V28 tmp21        [V28,T15] (  4,  0.88)     ref  ->   r8        
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp23        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V31 tmp24        [V31    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V32 tmp25        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp26        [V33,T19] (  2,  0   )   byref  ->   r8         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V34 tmp27        [V34,T20] (  0,  0   )     int  ->  zero-ref    ptr "field V11._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp28        [V35,T10] (  2,  2   )   byref  ->  rdi         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V36 tmp29        [V36,T13] (  2,  2   )     int  ->  rbp         "field V12._length (fldOffset=0x8)" P-INDEP
-;  V37 tmp30        [V37,T11] (  2,  2   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-;  V38 tmp31        [V38,T14] (  2,  2   )     int  ->  rbp         "field V13._length (fldOffset=0x8)" P-INDEP
-;  V39 tmp32        [V39    ] (  3,  0   )  struct (16) [rsp+0x40]  do-not-enreg[XSF] must-init addr-exposed ptr "by-value struct argument" <System.Span`1[ushort]>
-;  V40 tmp33        [V40    ] (  3,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V41 GsCookie     [V41    ] (  1,  1   )    long  ->  [rsp+0x60]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
-;  V42 tmp35        [V42,T12] (  2,  2   )   byref  ->  rsi         single-def "shadowVar"
+;  V33 tmp26        [V33,T18] (  2,  0   )   byref  ->   r8         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V34 tmp27        [V34,T19] (  0,  0   )     int  ->  zero-ref    ptr "field V11._length (fldOffset=0x8)" P-INDEP
+;* V35 tmp28        [V35    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;* V36 tmp29        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;  V37 tmp30        [V37,T10] (  2,  2   )   byref  ->  rdi         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V38 tmp31        [V38,T12] (  2,  2   )     int  ->  rbp         "field V13._length (fldOffset=0x8)" P-INDEP
+;  V39 tmp32        [V39,T09] (  3,  2   )   byref  ->  rdi         "V04.[000..008)"
+;  V40 tmp33        [V40,T04] (  4,  3   )     int  ->  rbp         "V04.[008..012)"
+;  V41 tmp34        [V41    ] (  3,  0   )  struct (16) [rsp+0x40]  do-not-enreg[XSF] must-init addr-exposed ptr "by-value struct argument" <System.Span`1[ushort]>
+;  V42 tmp35        [V42    ] (  3,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V43 GsCookie     [V43    ] (  1,  1   )    long  ->  [rsp+0x60]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
+;  V44 tmp37        [V44,T11] (  2,  2   )   byref  ->  rsi         single-def "shadowVar"
 ;
 ; Lcl frame size = 104
 
@@ -75,35 +77,37 @@ G_M7166_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0108 {rbx r8}, b
        ; byrRegs +[r8]
        mov      rsi, r8
        ; byrRegs +[rsi]
-       vxorps   xmm1, xmm1, xmm1
-       vmovdqu  xmmword ptr [rsp+0x50], xmm1
+       xor      rdi, rdi
+       ; byrRegs +[rdi]
+       xor      ebp, ebp
        movzx    rax, byte  ptr [rsp+0xA8]
        movzx    rcx, byte  ptr [rsp+0xA9]
        or       eax, ecx
-       jne      G_M7166_IG18
-						;; size=37 bbWeight=1 PerfScore 4.83
-G_M7166_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
+       jne      G_M7166_IG19
+						;; size=31 bbWeight=1 PerfScore 4.00
+G_M7166_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
        ; byrRegs -[r8]
-       mov      rdi, bword ptr [rsp+0x50]
-       ; byrRegs +[rdi]
-       mov      ebp, dword ptr [rsp+0x58]
+       test     ebp, ebp
+       jl       G_M7166_IG20
+						;; size=8 bbWeight=1 PerfScore 1.25
+G_M7166_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
        call     [System.Globalization.CultureInfo:get_InvariantCulture():System.Globalization.CultureInfo]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       je       G_M7166_IG19
-						;; size=24 bbWeight=1 PerfScore 6.25
-G_M7166_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+       je       G_M7166_IG21
+						;; size=15 bbWeight=1 PerfScore 4.25
+G_M7166_IG05:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        cmp      byte  ptr [rax+0x61], 0
-       jne      SHORT G_M7166_IG08
+       jne      SHORT G_M7166_IG09
 						;; size=6 bbWeight=0.50 PerfScore 2.00
-G_M7166_IG05:        ; bbWeight=0.25, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG06:        ; bbWeight=0.25, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        mov      r8, gword ptr [rax+0x18]
        ; gcrRegs +[r8]
        test     r8, r8
-       jne      SHORT G_M7166_IG07
+       jne      SHORT G_M7166_IG08
 						;; size=9 bbWeight=0.25 PerfScore 0.81
-G_M7166_IG06:        ; bbWeight=0.12, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref
+G_M7166_IG07:        ; bbWeight=0.12, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref
        ; gcrRegs -[r8]
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -116,11 +120,11 @@ G_M7166_IG06:        ; bbWeight=0.12, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx
        mov      r8, rax
        ; gcrRegs +[r8]
 						;; size=16 bbWeight=0.12 PerfScore 0.94
-G_M7166_IG07:        ; bbWeight=0.25, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG08:        ; bbWeight=0.25, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        ; gcrRegs -[rax]
-       jmp      SHORT G_M7166_IG13
+       jmp      SHORT G_M7166_IG14
 						;; size=2 bbWeight=0.25 PerfScore 0.50
-G_M7166_IG08:        ; bbWeight=0.75, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG09:        ; bbWeight=0.75, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        ; gcrRegs -[r8] +[rax]
        mov      rcx, 0xD1FFAB1E      ; System.Globalization.NumberFormatInfo
        xor      r11, r11
@@ -130,9 +134,9 @@ G_M7166_IG08:        ; bbWeight=0.75, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx
        ; gcrRegs +[r8]
        cmove    r8, rax
        test     r8, r8
-       jne      SHORT G_M7166_IG13
+       jne      SHORT G_M7166_IG14
 						;; size=28 bbWeight=0.75 PerfScore 3.94
-G_M7166_IG09:        ; bbWeight=0.38, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG10:        ; bbWeight=0.38, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        ; gcrRegs -[r8 r11]
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -143,18 +147,18 @@ G_M7166_IG09:        ; bbWeight=0.38, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     rax, rax
-       jne      SHORT G_M7166_IG16
+       jne      SHORT G_M7166_IG17
 						;; size=31 bbWeight=0.38 PerfScore 1.88
-G_M7166_IG10:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
+G_M7166_IG11:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
        ; gcrRegs -[rax]
        xor      r8, r8
        ; gcrRegs +[r8]
 						;; size=3 bbWeight=0.19 PerfScore 0.05
-G_M7166_IG11:        ; bbWeight=0.38, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG12:        ; bbWeight=0.38, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        test     r8, r8
-       jne      SHORT G_M7166_IG13
+       jne      SHORT G_M7166_IG14
 						;; size=5 bbWeight=0.38 PerfScore 0.47
-G_M7166_IG12:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
+G_M7166_IG13:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
        ; gcrRegs -[r8]
        call     [System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo]
        ; gcrRegs +[rax]
@@ -162,7 +166,7 @@ G_M7166_IG12:        ; bbWeight=0.19, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi
        mov      r8, rax
        ; gcrRegs +[r8]
 						;; size=9 bbWeight=0.19 PerfScore 0.61
-G_M7166_IG13:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG14:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        ; gcrRegs -[rax]
        mov      bword ptr [rsp+0x30], rdi
        mov      dword ptr [rsp+0x38], ebp
@@ -178,13 +182,13 @@ G_M7166_IG13:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=00C8 {rbx rsi
        ; gcr arg pop 0
        mov      rcx, 0xD1FFAB1E
        cmp      qword ptr [rsp+0x60], rcx
-       je       SHORT G_M7166_IG14
+       je       SHORT G_M7166_IG15
        call     CORINFO_HELP_FAIL_FAST
 						;; size=59 bbWeight=1 PerfScore 14.00
-G_M7166_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M7166_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
-G_M7166_IG15:        ; bbWeight=1, epilog, nogc, extend
+G_M7166_IG16:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 104
        pop      rbx
        pop      rbp
@@ -192,19 +196,19 @@ G_M7166_IG15:        ; bbWeight=1, epilog, nogc, extend
        pop      rdi
        ret      
 						;; size=9 bbWeight=1 PerfScore 3.25
-G_M7166_IG16:        ; bbWeight=0.19, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, gcvars, byref, isz
+G_M7166_IG17:        ; bbWeight=0.19, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, gcvars, byref, isz
        ; gcrRegs +[rax]
        ; byrRegs +[rbx rsi rdi]
        mov      r8, 0xD1FFAB1E      ; System.Globalization.NumberFormatInfo
        cmp      qword ptr [rax], r8
-       jne      SHORT G_M7166_IG10
+       jne      SHORT G_M7166_IG11
 						;; size=15 bbWeight=0.19 PerfScore 0.80
-G_M7166_IG17:        ; bbWeight=0.09, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
+G_M7166_IG18:        ; bbWeight=0.09, gcrefRegs=0001 {rax}, byrefRegs=00C8 {rbx rsi rdi}, byref, isz
        mov      r8, rax
        ; gcrRegs +[r8]
-       jmp      SHORT G_M7166_IG11
+       jmp      SHORT G_M7166_IG12
 						;; size=5 bbWeight=0.09 PerfScore 0.21
-G_M7166_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
+G_M7166_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
        ; gcrRegs -[rax r8]
        ; byrRegs -[rdi]
        lea      r8, [rsp+0x28]
@@ -215,19 +219,32 @@ G_M7166_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi},
        lea      rcx, [rsp+0xA8]
        call     [System.Buffers.StandardFormat:Format(System.Span`1[ushort]):System.Span`1[ushort]:this]
        ; gcr arg pop 0
-       jmp      G_M7166_IG03
-						;; size=47 bbWeight=0 PerfScore 0.00
-G_M7166_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
+       mov      rdi, bword ptr [rsp+0x50]
        ; byrRegs +[rdi]
+       mov      ebp, dword ptr [rsp+0x58]
+       jmp      G_M7166_IG03
+						;; size=56 bbWeight=0 PerfScore 0.00
+G_M7166_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=00C8 {rbx rsi rdi}, byref
+       mov      rcx, 0xD1FFAB1E
+       ; gcrRegs +[rcx]
+       mov      rdx, 0xD1FFAB1E
+       ; gcrRegs +[rdx]
+       mov      rax, 0xD1FFAB1E      ; code for <unknown method>
+       call     [rax]<unknown method>
+       ; gcrRegs -[rcx rdx]
+       ; gcr arg pop 0
+       jmp      G_M7166_IG04
+						;; size=37 bbWeight=0 PerfScore 0.00
...
+15 (+12.82%) : 91176.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:Microsoft.Cci.IParameterTypeInformation.get_CustomModifiers():System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]:this (Tier1)
@@ -8,20 +8,20 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  6,  3.50)     ref  ->  rcx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol>
-;  V01 loc0         [V01    ] (  3,  1.50)  struct (24) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V01 loc0         [V01    ] (  6,  2   )  struct (24) [rsp+0x20]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]>
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEParameterSymbol>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    single-def "guarded devirt return temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]>
-;  V07 tmp5         [V07,T01] (  5,  5   )     ref  ->  rcx         single-def "guarded devirt arg temp"
+;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "guarded devirt arg temp"
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType>
 ;* V09 tmp7         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]>
 ;* V10 tmp8         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;* V11 tmp9         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]>
-;  V12 tmp10        [V12    ] (  2,  0.50)     ref  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed "field V01.DefaultType (fldOffset=0x0)" P-DEP
-;  V13 tmp11        [V13    ] (  3,  1.50)     ref  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed "field V01._extensions (fldOffset=0x8)" P-DEP
-;  V14 tmp12        [V14    ] (  2,  0.50)   ubyte  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V01.DefaultNullableAnnotation (fldOffset=0x10)" P-DEP
+;  V12 tmp10        [V12,T03] (  2,  0.50)     ref  ->  [rsp+0x20]  do-not-enreg[H] hidden-struct-arg "field V01.DefaultType (fldOffset=0x0)" P-DEP
+;  V13 tmp11        [V13,T01] (  6,  2   )     ref  ->  [rsp+0x28]  do-not-enreg[H] hidden-struct-arg "field V01._extensions (fldOffset=0x8)" P-DEP
+;  V14 tmp12        [V14,T04] (  2,  0.50)   ubyte  ->  [rsp+0x30]  do-not-enreg[H] hidden-struct-arg "field V01.DefaultNullableAnnotation (fldOffset=0x10)" P-DEP
 ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04.array (fldOffset=0x0)" P-INDEP
 ;  V16 tmp14        [V16,T02] (  3,  1.50)     ref  ->  rax         single-def "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp15        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V09.array (fldOffset=0x0)" P-INDEP
@@ -50,18 +50,19 @@ G_M54628_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
 						;; size=20 bbWeight=0.50 PerfScore 4.00
 G_M54628_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
-       mov      rcx, gword ptr [rsp+0x28]
-       ; gcrRegs +[rcx]
-       mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType
-       cmp      qword ptr [rcx], rax
+       mov      rax, gword ptr [rsp+0x28]
+       ; gcrRegs +[rax]
+       mov      rdx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType
+       cmp      qword ptr [rax], rdx
        jne      SHORT G_M54628_IG08
 						;; size=20 bbWeight=1 PerfScore 5.25
-G_M54628_IG05:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
-       mov      rax, gword ptr [rcx+0x08]
+G_M54628_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
+       mov      rax, gword ptr [rsp+0x28]
        ; gcrRegs +[rax]
-						;; size=4 bbWeight=0.50 PerfScore 1.00
+       mov      rax, gword ptr [rax+0x08]
+						;; size=9 bbWeight=0.50 PerfScore 1.50
 G_M54628_IG06:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rcx]
        add      rsp, 56
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
@@ -75,17 +76,21 @@ G_M54628_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {
        ; gcr arg pop 0
        jmp      SHORT G_M54628_IG04
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M54628_IG08:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M54628_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      rcx, gword ptr [rsp+0x28]
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rcx]
+       mov      rax, gword ptr [rsp+0x28]
+       ; gcrRegs +[rax]
+       mov      rax, qword ptr [rax]
+       ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        jmp      SHORT G_M54628_IG06
-						;; size=12 bbWeight=0 PerfScore 0.00
+						;; size=22 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 117, prolog size 21, PerfScore 19.58, instruction count 28, allocated bytes for code 117 (MethodHash=6a052a9b) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:Microsoft.Cci.IParameterTypeInformation.get_CustomModifiers():System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]:this (Tier1)
+; Total bytes of code 132, prolog size 21, PerfScore 20.08, instruction count 31, allocated bytes for code 132 (MethodHash=6a052a9b) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:Microsoft.Cci.IParameterTypeInformation.get_CustomModifiers():System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
benchmarks.run_tiered.windows.x64.checked.mch
-23 (-11.86%) : 44013.dasm - Microsoft.CodeAnalysis.SyntaxNode:FindTokenInternal(int):Microsoft.CodeAnalysis.SyntaxToken:this (Tier1)
@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  5,  4   )     ref  ->  rcx         this class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
-;  V01 RetBuf       [V01,T01] (  7,  7   )   byref  ->  rbx         single-def
-;  V02 arg1         [V02,T02] (  3,  6   )     int  ->  rsi         single-def
-;  V03 loc0         [V03    ] ( 12, 21   )  struct (24) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxNodeOrToken>
+;  V00 this         [V00,T06] (  5,  4   )     ref  ->  rcx         this class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
+;  V01 RetBuf       [V01,T03] (  7,  7   )   byref  ->  rbx         single-def
+;  V02 arg1         [V02,T04] (  3,  6   )     int  ->  rsi         single-def
+;  V03 loc0         [V03,T01] (  5, 20   )  struct (24) [rsp+0x28]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <Microsoft.CodeAnalysis.SyntaxNodeOrToken>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
 ;  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    do-not-enreg[S] "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNodeOrToken>
@@ -20,52 +20,57 @@
 ;  V09 tmp4         [V09,T00] (  5, 20   )     ref  ->  rcx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxToken>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V12 tmp7         [V12,T11] (  2,  2   )     ref  ->  rdx         class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V13 tmp8         [V13,T12] (  2,  2   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
+;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
+;* V13 tmp8         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
 ;* V14 tmp9         [V14    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V15 tmp10        [V15,T13] (  2,  2   )     int  ->  rdi         "Inlining Arg"
-;  V16 tmp11        [V16,T14] (  2,  2   )     int  ->  rbp         "Inlining Arg"
+;* V15 tmp10        [V15    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V16 tmp11        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp12        [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V07._nodeOrParent (fldOffset=0x0)" P-INDEP
 ;* V18 tmp13        [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V07._token (fldOffset=0x8)" P-INDEP
-;  V19 tmp14        [V19,T15] (  2,  1   )     int  ->   r8         single-def "field V07._position (fldOffset=0x10)" P-INDEP
+;  V19 tmp14        [V19,T16] (  2,  1   )     int  ->  rdi         single-def "field V07._position (fldOffset=0x10)" P-INDEP
 ;* V20 tmp15        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "field V07._tokenIndex (fldOffset=0x14)" P-INDEP
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V14.<Parent>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V14.<Node>k__BackingField (fldOffset=0x8)" P-INDEP
 ;* V23 tmp18        [V23    ] (  0,  0   )     int  ->  zero-ref    single-def "field V14.<Index>k__BackingField (fldOffset=0x10)" P-INDEP
 ;* V24 tmp19        [V24    ] (  0,  0   )     int  ->  zero-ref    single-def "field V14.<Position>k__BackingField (fldOffset=0x14)" P-INDEP
-;  V25 tmp20        [V25,T04] (  3,  2   )     ref  ->  rdx         "V06.[000..008)"
-;* V26 tmp21        [V26    ] (  0,  0   )     ref  ->  zero-ref    "V06.[008..016)"
-;  V27 tmp22        [V27,T07] (  3,  2   )     int  ->   r8         "V06.[016..020)"
-;  V28 tmp23        [V28,T08] (  3,  2   )     int  ->  rax         "V06.[020..024)"
-;  V29 tmp24        [V29,T05] (  3,  2   )     ref  ->  rdx         "V10.[000..008)"
-;  V30 tmp25        [V30,T06] (  3,  2   )     ref  ->  rsi         "V10.[008..016)"
-;  V31 tmp26        [V31,T09] (  3,  2   )     int  ->  rbp         "V10.[016..020)"
-;  V32 tmp27        [V32,T10] (  3,  2   )     int  ->  rdi         "V10.[020..024)"
-;* V33 tmp28        [V33    ] (  0,  0   )     ref  ->  zero-ref    single-def "V08.[000..008)"
-;* V34 tmp29        [V34    ] (  0,  0   )     ref  ->  zero-ref    single-def "V08.[008..016)"
-;* V35 tmp30        [V35    ] (  0,  0   )     int  ->  zero-ref    single-def "V08.[016..020)"
-;* V36 tmp31        [V36    ] (  0,  0   )     int  ->  zero-ref    single-def "V08.[020..024)"
-;* V37 tmp32        [V37    ] (  0,  0   )     ref  ->  zero-ref    single-def "V11.[000..008)"
-;* V38 tmp33        [V38    ] (  0,  0   )     ref  ->  zero-ref    single-def "V11.[008..016)"
-;* V39 tmp34        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def "V11.[016..020)"
-;* V40 tmp35        [V40    ] (  0,  0   )     int  ->  zero-ref    single-def "V11.[020..024)"
+;  V25 tmp20        [V25,T05] (  4,  7.50)     ref  ->  rdx         "V03.[000..008)"
+;  V26 tmp21        [V26,T02] (  5, 14.50)     ref  ->  r14         "V03.[008..016)"
+;  V27 tmp22        [V27,T07] (  3,  5.50)     int  ->  rdi         "V03.[016..020)"
+;  V28 tmp23        [V28,T08] (  3,  5.50)     int  ->  rbp         "V03.[020..024)"
+;  V29 tmp24        [V29,T09] (  3,  2   )     ref  ->  rdx         "V06.[000..008)"
+;* V30 tmp25        [V30    ] (  0,  0   )     ref  ->  zero-ref    "V06.[008..016)"
+;  V31 tmp26        [V31,T12] (  3,  2   )     int  ->  rdi         "V06.[016..020)"
+;  V32 tmp27        [V32,T13] (  3,  2   )     int  ->  rbp         "V06.[020..024)"
+;  V33 tmp28        [V33,T10] (  3,  2   )     ref  ->  rdx         "V10.[000..008)"
+;  V34 tmp29        [V34,T11] (  3,  2   )     ref  ->  r14         "V10.[008..016)"
+;  V35 tmp30        [V35,T14] (  3,  2   )     int  ->  rbp         "V10.[016..020)"
+;  V36 tmp31        [V36,T15] (  3,  2   )     int  ->  rdi         "V10.[020..024)"
+;* V37 tmp32        [V37    ] (  0,  0   )     ref  ->  zero-ref    single-def "V08.[000..008)"
+;* V38 tmp33        [V38    ] (  0,  0   )     ref  ->  zero-ref    single-def "V08.[008..016)"
+;* V39 tmp34        [V39    ] (  0,  0   )     int  ->  zero-ref    single-def "V08.[016..020)"
+;* V40 tmp35        [V40    ] (  0,  0   )     int  ->  zero-ref    single-def "V08.[020..024)"
+;* V41 tmp36        [V41    ] (  0,  0   )     ref  ->  zero-ref    single-def "V11.[000..008)"
+;* V42 tmp37        [V42    ] (  0,  0   )     ref  ->  zero-ref    single-def "V11.[008..016)"
+;* V43 tmp38        [V43    ] (  0,  0   )     int  ->  zero-ref    single-def "V11.[016..020)"
+;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    single-def "V11.[020..024)"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 64
 
 G_M41910_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 56
+       sub      rsp, 64
        vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x20], xmm4
+       vmovdqu  xmmword ptr [rsp+0x28], xmm4
        xor      eax, eax
-       mov      qword ptr [rsp+0x30], rax
+       mov      qword ptr [rsp+0x38], rax
        mov      rbx, rdx
        ; byrRegs +[rbx]
        mov      esi, r8d
-						;; size=31 bbWeight=1 PerfScore 8.33
+						;; size=33 bbWeight=1 PerfScore 9.33
 G_M41910_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs +[rcx]
        test     rcx, rcx
@@ -75,78 +80,75 @@ G_M41910_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        ; gcrRegs -[rcx]
        xor      rdx, rdx
        ; gcrRegs +[rdx]
-       xor      r8d, r8d
-       xor      eax, eax
+       xor      edi, edi
+       xor      ebp, ebp
        jmp      SHORT G_M41910_IG05
-						;; size=9 bbWeight=0.50 PerfScore 1.38
+						;; size=8 bbWeight=0.50 PerfScore 1.38
 G_M41910_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rdx] +[rcx]
-       mov      r8d, dword ptr [rcx+0x20]
+       mov      edi, dword ptr [rcx+0x20]
        mov      rdx, rcx
        ; gcrRegs +[rdx]
-       mov      eax, -1
-						;; size=12 bbWeight=0.50 PerfScore 1.25
+       mov      ebp, -1
+						;; size=11 bbWeight=0.50 PerfScore 1.25
 G_M41910_IG05:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs -[rcx]
-       mov      gword ptr [rsp+0x20], rdx
-       xor      rdx, rdx
-       mov      gword ptr [rsp+0x28], rdx
-       mov      dword ptr [rsp+0x30], r8d
-       mov      dword ptr [rsp+0x34], eax
+       xor      r14, r14
+       ; gcrRegs +[r14]
        jmp      SHORT G_M41910_IG07
-						;; size=23 bbWeight=1 PerfScore 6.25
+						;; size=5 bbWeight=1 PerfScore 2.25
 G_M41910_IG06:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs -[rdx] +[rcx]
-       lea      rdx, [rsp+0x20]
+       ; gcrRegs -[rdx r14] +[rcx]
+       lea      rdx, [rsp+0x28]
        mov      r8d, esi
        mov      rax, qword ptr [rcx]
        mov      rax, qword ptr [rax+0x50]
        call     [rax+0x10]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-						;; size=18 bbWeight=4 PerfScore 31.00
-G_M41910_IG07:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       cmp      gword ptr [rsp+0x28], 0
+       mov      rdx, gword ptr [rsp+0x28]
+       ; gcrRegs +[rdx]
+       mov      r14, gword ptr [rsp+0x30]
+       ; gcrRegs +[r14]
+       mov      edi, dword ptr [rsp+0x38]
+       mov      ebp, dword ptr [rsp+0x3C]
+						;; size=36 bbWeight=4 PerfScore 47.00
+G_M41910_IG07:        ; bbWeight=8, gcrefRegs=4004 {rdx r14}, byrefRegs=0008 {rbx}, byref, isz
+       test     r14, r14
        je       SHORT G_M41910_IG09
-						;; size=8 bbWeight=8 PerfScore 24.00
-G_M41910_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+						;; size=5 bbWeight=8 PerfScore 10.00
+G_M41910_IG08:        ; bbWeight=2, gcrefRegs=4004 {rdx r14}, byrefRegs=0008 {rbx}, byref, isz
        xor      rcx, rcx
        ; gcrRegs +[rcx]
        jmp      SHORT G_M41910_IG10
 						;; size=4 bbWeight=2 PerfScore 4.50
-G_M41910_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M41910_IG09:        ; bbWeight=2, gcrefRegs=4004 {rdx r14}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rcx]
-       mov      rcx, gword ptr [rsp+0x20]
+       mov      rcx, rdx
        ; gcrRegs +[rcx]
-						;; size=5 bbWeight=2 PerfScore 2.00
-G_M41910_IG10:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0008 {rbx}, byref, isz
+						;; size=3 bbWeight=2 PerfScore 0.50
+G_M41910_IG10:        ; bbWeight=8, gcrefRegs=4006 {rcx rdx r14}, byrefRegs=0008 {rbx}, byref, isz
        test     rcx, rcx
        jne      SHORT G_M41910_IG06
 						;; size=5 bbWeight=8 PerfScore 10.00
-G_M41910_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M41910_IG11:        ; bbWeight=1, gcrefRegs=4004 {rdx r14}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs -[rcx]
-       cmp      gword ptr [rsp+0x28], 0
+       test     r14, r14
        je       SHORT G_M41910_IG13
-						;; size=8 bbWeight=1 PerfScore 3.00
-G_M41910_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       mov      rdx, gword ptr [rsp+0x20]
-       ; gcrRegs +[rdx]
-       mov      rsi, gword ptr [rsp+0x28]
-       ; gcrRegs +[rsi]
-       mov      edi, dword ptr [rsp+0x30]
-       mov      ebp, dword ptr [rsp+0x34]
+						;; size=5 bbWeight=1 PerfScore 1.25
+G_M41910_IG12:        ; bbWeight=0.50, gcrefRegs=4004 {rdx r14}, byrefRegs=0008 {rbx}, byref, isz
        jmp      SHORT G_M41910_IG14
-						;; size=20 bbWeight=0.50 PerfScore 3.00
+						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M41910_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs -[rdx rsi]
+       ; gcrRegs -[rdx r14]
        xor      rdx, rdx
        ; gcrRegs +[rdx]
-       xor      rsi, rsi
-       ; gcrRegs +[rsi]
+       xor      r14, r14
+       ; gcrRegs +[r14]
        xor      ebp, ebp
        xor      edi, edi
-						;; size=8 bbWeight=0.50 PerfScore 0.50
-G_M41910_IG14:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0008 {rbx}, byref
+						;; size=9 bbWeight=0.50 PerfScore 0.50
+G_M41910_IG14:        ; bbWeight=1, gcrefRegs=4004 {rdx r14}, byrefRegs=0008 {rbx}, byref
        mov      rcx, rbx
        ; byrRegs +[rcx]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
@@ -154,10 +156,10 @@ G_M41910_IG14:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0008 {rb
        ; byrRegs -[rcx]
        lea      rcx, bword ptr [rbx+0x08]
        ; byrRegs +[rcx]
-       mov      rdx, rsi
+       mov      rdx, r14
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       ; gcrRegs -[rdx rsi]
+       ; gcrRegs -[rdx r14]
        ; byrRegs -[rcx]
        mov      dword ptr [rbx+0x10], ebp
        mov      dword ptr [rbx+0x14], edi
@@ -165,15 +167,16 @@ G_M41910_IG14:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0008 {rb
        ; byrRegs +[rax]
 						;; size=29 bbWeight=1 PerfScore 5.25
 G_M41910_IG15:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 64
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
+       pop      r14
        ret      
-						;; size=9 bbWeight=1 PerfScore 3.25
+						;; size=11 bbWeight=1 PerfScore 3.75
 
-; Total bytes of code 194, prolog size 25, PerfScore 104.96, instruction count 63, allocated bytes for code 194 (MethodHash=9c055c49) for method Microsoft.CodeAnalysis.SyntaxNode:FindTokenInternal(int):Microsoft.CodeAnalysis.SyntaxToken:this (Tier1)
+; Total bytes of code 171, prolog size 27, PerfScore 99.21, instruction count 61, allocated bytes for code 171 (MethodHash=9c055c49) for method Microsoft.CodeAnalysis.SyntaxNode:FindTokenInternal(int):Microsoft.CodeAnalysis.SyntaxToken:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -181,13 +184,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
...
-12 (-10.26%) : 43108.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetUpperBoundNode(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
@@ -11,12 +11,12 @@
 ;  V00 this         [V00,T00] (  5,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.MemberSemanticModel>
 ;  V01 arg1         [V01,T01] (  5,  4   )     ref  ->  rax         class-hnd <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
 ;  V02 arg2         [V02,T02] (  3,  3   )   ubyte  ->   r8         single-def
-;  V03 loc0         [V03    ] (  3,  2.50)  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
+;  V03 loc0         [V03,T04] (  3,  2.50)  struct (16) [rsp+0x20]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T06] (  2,  1   )     int  ->  rax         "Inline return value spill temp"
 ;  V06 tmp2         [V06,T05] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BoundNode>
-;  V07 tmp3         [V07,T04] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
-;  V08 cse0         [V08,T03] (  4,  3   )     ref  ->  rcx         "CSE #01: aggressive"
+;  V07 tmp3         [V07,T03] (  4,  3   )     ref  ->  rcx         single-def "V03.[008..016)"
+;  V08 cse0         [V08,T07] (  2,  1   )     int  ->  rax         "CSE #01: moderate"
 ;
 ; Lcl frame size = 48
 
@@ -79,27 +79,19 @@ G_M57241_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcrRegs +[rax]
        jmp      SHORT G_M57241_IG09
 						;; size=7 bbWeight=0.50 PerfScore 1.50
-G_M57241_IG08:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M57241_IG08:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax] +[rcx]
-       cmp      dword ptr [rcx+0x08], 0
-       jbe      SHORT G_M57241_IG10
        mov      rax, gword ptr [rcx+0x10]
        ; gcrRegs +[rax]
-						;; size=10 bbWeight=0.50 PerfScore 3.00
+						;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M57241_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
        ; gcrRegs -[rcx]
        add      rsp, 48
        pop      rbx
        ret      
 						;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M57241_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax]
-       call     CORINFO_HELP_RNGCHKFAIL
-       ; gcr arg pop 0
-       int3     
-						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 117, prolog size 17, PerfScore 23.25, instruction count 38, allocated bytes for code 117 (MethodHash=18ae2066) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetUpperBoundNode(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
+; Total bytes of code 105, prolog size 17, PerfScore 21.25, instruction count 34, allocated bytes for code 105 (MethodHash=18ae2066) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetUpperBoundNode(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
 ; ============================================================
 
 Unwind Info:
-12 (-10.26%) : 43315.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundRoot():Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
@@ -12,14 +12,14 @@
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T06] (  3,  2   )     ref  ->  rax         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BoundNode>
 ;* V03 tmp2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
-;  V04 tmp3         [V04    ] (  3,  2.50)  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
+;  V04 tmp3         [V04,T05] (  3,  2.50)  struct (16) [rsp+0x28]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op "Inline stloc first use temp" <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
 ;  V05 tmp4         [V05,T08] (  2,  1   )     int  ->  rcx         "Inline return value spill temp"
 ;  V06 tmp5         [V06,T07] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.BoundNode>
-;  V07 tmp6         [V07,T01] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V08 tmp7         [V08,T02] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V09 tmp8         [V09,T04] (  3,  3   )     ref  ->  rax         single-def "arr expr"
-;  V10 cse0         [V10,T03] (  4,  3   )     ref  ->  rax         "CSE #02: aggressive"
-;  V11 cse1         [V11,T05] (  3,  3   )    long  ->  rsi         "CSE #01: aggressive"
+;  V07 tmp6         [V07,T03] (  4,  3   )     ref  ->  rax         single-def "V04.[008..016)"
+;  V08 tmp7         [V08,T01] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
+;  V09 tmp8         [V09,T02] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V10 cse0         [V10,T04] (  3,  3   )    long  ->  rsi         "CSE #01: aggressive"
+;  V11 cse1         [V11,T09] (  2,  1   )     int  ->  rcx         "CSE #02: moderate"
 ;
 ; Lcl frame size = 56
 
@@ -76,25 +76,17 @@ G_M51810_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rax]
        jmp      SHORT G_M51810_IG06
 						;; size=7 bbWeight=0.50 PerfScore 1.50
-G_M51810_IG05:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
-       cmp      dword ptr [rax+0x08], 0
-       jbe      SHORT G_M51810_IG07
+G_M51810_IG05:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
        mov      rax, gword ptr [rax+0x10]
-						;; size=10 bbWeight=0.50 PerfScore 3.00
+						;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M51810_IG06:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
        add      rsp, 56
        pop      rbx
        pop      rsi
        ret      
 						;; size=7 bbWeight=1 PerfScore 2.25
-G_M51810_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rax]
-       call     CORINFO_HELP_RNGCHKFAIL
-       ; gcr arg pop 0
-       int3     
-						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 117, prolog size 18, PerfScore 33.25, instruction count 38, allocated bytes for code 117 (MethodHash=bae0359d) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundRoot():Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
+; Total bytes of code 105, prolog size 18, PerfScore 31.25, instruction count 34, allocated bytes for code 105 (MethodHash=bae0359d) for method Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundRoot():Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
 ; ============================================================
 
 Unwind Info:
+29 (+2.96%) : 43111.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundNodes(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)
@@ -8,88 +8,86 @@
 ; 0 inlinees with PGO data; 48 single block inlinees; 16 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 24, 14.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.MemberSemanticModel>
-;  V01 RetBuf       [V01,T05] (  5,  4   )   byref  ->  r15         single-def
-;  V02 arg1         [V02,T01] ( 12,  8   )     ref  ->  r14         class-hnd <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
-;  V03 loc0         [V03    ] ( 10,  6   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
-;  V04 loc1         [V04,T23] (  3,  1.50)     ref  ->  rsi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
-;  V05 loc2         [V05,T12] (  4,  2   )     ref  ->  rdi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V06 loc3         [V06,T13] (  4,  2   )     ref  ->  r13         class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V07 loc4         [V07,T14] (  4,  2   )     ref  ->  rdi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V00 this         [V00,T00] ( 24, 14.50)     ref  ->  rsi         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.MemberSemanticModel>
+;  V01 RetBuf       [V01,T06] (  6,  4.50)   byref  ->  rbx         single-def
+;  V02 arg1         [V02,T01] ( 12,  8   )     ref  ->  rdi         class-hnd <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
+;  V03 loc0         [V03,T07] (  9,  5.50)  struct (16) [rbp-0x48]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]>
+;  V04 loc1         [V04,T25] (  3,  1.50)     ref  ->  r14         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
+;  V05 loc2         [V05,T14] (  4,  2   )     ref  ->  r15         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V06 loc3         [V06,T15] (  4,  2   )     ref  ->  r13         class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V07 loc4         [V07,T16] (  4,  2   )     ref  ->  r15         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
 ;* V08 loc5         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter>
 ;* V09 loc6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter>
 ;* V10 loc7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.BoundNode>
 ;* V11 loc8         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.BoundNode>
 ;  V12 OutArgs      [V12    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V13 tmp1         [V13,T03] (  7,  7   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.MemberSemanticModel+IncrementalBinder>
-;  V14 tmp2         [V14,T04] (  7,  7   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.MemberSemanticModel+IncrementalBinder>
-;  V15 tmp3         [V15,T07] (  2,  4   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <System.Threading.ReaderWriterLockSlim>
+;  V13 tmp1         [V13,T04] (  7,  7   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.MemberSemanticModel+IncrementalBinder>
+;  V14 tmp2         [V14,T05] (  7,  7   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.MemberSemanticModel+IncrementalBinder>
+;  V15 tmp3         [V15,T09] (  2,  4   )     ref  ->  r14         class-hnd single-def "Inlining Arg" <System.Threading.ReaderWriterLockSlim>
 ;* V16 tmp4         [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter>
 ;* V17 tmp5         [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V18 tmp6         [V18,T21] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V19 tmp7         [V19,T34] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
+;* V18 tmp6         [V18,T23] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V19 tmp7         [V19,T33] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V20 tmp8         [V20    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V21 tmp9         [V21,T28] (  2,  1   )     int  ->  rax         "Inline return value spill temp"
-;  V22 tmp10        [V22,T15] (  2,  2   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Threading.ReaderWriterLockSlim>
+;  V21 tmp9         [V21,T27] (  2,  1   )     int  ->  rcx         "Inline return value spill temp"
+;  V22 tmp10        [V22,T17] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Threading.ReaderWriterLockSlim>
 ;* V23 tmp11        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter>
 ;* V24 tmp12        [V24    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V25 tmp13        [V25,T35] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V26 tmp14        [V26,T41] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
+;* V25 tmp13        [V25,T34] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V26 tmp14        [V26,T40] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V27 tmp15        [V27    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V28 tmp16        [V28,T29] (  2,  1   )     int  ->  rcx         "Inline return value spill temp"
-;  V29 tmp17        [V29,T16] (  2,  2   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Threading.ReaderWriterLockSlim>
+;  V28 tmp16        [V28,T28] (  2,  1   )     int  ->  rcx         "Inline return value spill temp"
+;  V29 tmp17        [V29,T18] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Threading.ReaderWriterLockSlim>
 ;* V30 tmp18        [V30    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter>
 ;* V31 tmp19        [V31    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V32 tmp20        [V32,T36] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V33 tmp21        [V33,T42] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
+;* V32 tmp20        [V32,T35] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V33 tmp21        [V33,T41] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V34 tmp22        [V34    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V35 tmp23        [V35,T30] (  2,  1   )     int  ->  rdx         "Inline return value spill temp"
-;  V36 tmp24        [V36,T17] (  2,  2   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Threading.ReaderWriterLockSlim>
+;  V35 tmp23        [V35,T29] (  2,  1   )     int  ->  rdx         "Inline return value spill temp"
+;  V36 tmp24        [V36,T19] (  2,  2   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Threading.ReaderWriterLockSlim>
 ;* V37 tmp25        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter>
 ;* V38 tmp26        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V39 tmp27        [V39,T37] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V40 tmp28        [V40,T43] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
+;* V39 tmp27        [V39,T36] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V40 tmp28        [V40,T42] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V41 tmp29        [V41    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V42 tmp30        [V42,T31] (  2,  1   )     int  ->  rax         "Inline return value spill temp"
-;  V43 tmp31        [V43,T08] (  2,  4   )   byref  ->  rax         single-def "Single return block return value"
-;  V44 tmp32        [V44,T22] (  4,  1.50)     ref  ->  [rbp-0x58]  do-not-enreg[M] EH-live "field V08._lock (fldOffset=0x0)" P-INDEP
-;  V45 tmp33        [V45,T33] (  4,  1   )     ref  ->  [rbp-0x60]  do-not-enreg[M] EH-live "field V09._lock (fldOffset=0x0)" P-INDEP
-;  V46 tmp34        [V46,T06] (  5,  5   )     ref  ->  rsi         single-def "field V16._lock (fldOffset=0x0)" P-INDEP
-;* V47 tmp35        [V47,T38] (  0,  0   )     int  ->  zero-ref    single-def "field V17._total (fldOffset=0x0)" P-INDEP
-;* V48 tmp36        [V48,T39] (  0,  0   )     int  ->  zero-ref    single-def "field V17._start (fldOffset=0x4)" P-INDEP
+;  V42 tmp30        [V42,T30] (  2,  1   )     int  ->  rax         "Inline return value spill temp"
+;  V43 tmp31        [V43,T10] (  2,  4   )   byref  ->  rax         single-def "Single return block return value"
+;  V44 tmp32        [V44,T24] (  4,  1.50)     ref  ->  [rbp-0x58]  do-not-enreg[M] EH-live "field V08._lock (fldOffset=0x0)" P-INDEP
+;  V45 tmp33        [V45,T32] (  4,  1   )     ref  ->  [rbp-0x60]  do-not-enreg[M] EH-live "field V09._lock (fldOffset=0x0)" P-INDEP
+;  V46 tmp34        [V46,T08] (  5,  5   )     ref  ->  r14         single-def "field V16._lock (fldOffset=0x0)" P-INDEP
+;* V47 tmp35        [V47,T37] (  0,  0   )     int  ->  zero-ref    single-def "field V17._total (fldOffset=0x0)" P-INDEP
+;* V48 tmp36        [V48,T38] (  0,  0   )     int  ->  zero-ref    single-def "field V17._start (fldOffset=0x4)" P-INDEP
 ;* V49 tmp37        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V20._total (fldOffset=0x0)" P-INDEP
 ;* V50 tmp38        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V20._start (fldOffset=0x4)" P-INDEP
-;  V51 tmp39        [V51,T09] (  5,  2.50)     ref  ->  rdi         single-def "field V23._lock (fldOffset=0x0)" P-INDEP
-;* V52 tmp40        [V52,T44] (  0,  0   )     int  ->  zero-ref    single-def "field V24._total (fldOffset=0x0)" P-INDEP
-;* V53 tmp41        [V53,T45] (  0,  0   )     int  ->  zero-ref    single-def "field V24._start (fldOffset=0x4)" P-INDEP
+;  V51 tmp39        [V51,T11] (  5,  2.50)     ref  ->  r15         single-def "field V23._lock (fldOffset=0x0)" P-INDEP
+;* V52 tmp40        [V52,T43] (  0,  0   )     int  ->  zero-ref    single-def "field V24._total (fldOffset=0x0)" P-INDEP
+;* V53 tmp41        [V53,T44] (  0,  0   )     int  ->  zero-ref    single-def "field V24._start (fldOffset=0x4)" P-INDEP
 ;* V54 tmp42        [V54    ] (  0,  0   )     int  ->  zero-ref    "field V27._total (fldOffset=0x0)" P-INDEP
 ;* V55 tmp43        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V27._start (fldOffset=0x4)" P-INDEP
-;  V56 tmp44        [V56,T10] (  5,  2.50)     ref  ->  rdi         single-def "field V30._lock (fldOffset=0x0)" P-INDEP
-;* V57 tmp45        [V57,T46] (  0,  0   )     int  ->  zero-ref    single-def "field V31._total (fldOffset=0x0)" P-INDEP
-;* V58 tmp46        [V58,T47] (  0,  0   )     int  ->  zero-ref    single-def "field V31._start (fldOffset=0x4)" P-INDEP
+;  V56 tmp44        [V56,T12] (  5,  2.50)     ref  ->  r15         single-def "field V30._lock (fldOffset=0x0)" P-INDEP
+;* V57 tmp45        [V57,T45] (  0,  0   )     int  ->  zero-ref    single-def "field V31._total (fldOffset=0x0)" P-INDEP
+;* V58 tmp46        [V58,T46] (  0,  0   )     int  ->  zero-ref    single-def "field V31._start (fldOffset=0x4)" P-INDEP
 ;* V59 tmp47        [V59    ] (  0,  0   )     int  ->  zero-ref    "field V34._total (fldOffset=0x0)" P-INDEP
 ;* V60 tmp48        [V60    ] (  0,  0   )     int  ->  zero-ref    "field V34._start (fldOffset=0x4)" P-INDEP
-;  V61 tmp49        [V61,T11] (  5,  2.50)     ref  ->  rdi         single-def "field V37._lock (fldOffset=0x0)" P-INDEP
-;* V62 tmp50        [V62,T48] (  0,  0   )     int  ->  zero-ref    single-def "field V38._total (fldOffset=0x0)" P-INDEP
-;* V63 tmp51        [V63,T49] (  0,  0   )     int  ->  zero-ref    single-def "field V38._start (fldOffset=0x4)" P-INDEP
+;  V61 tmp49        [V61,T13] (  5,  2.50)     ref  ->  r15         single-def "field V37._lock (fldOffset=0x0)" P-INDEP
+;* V62 tmp50        [V62,T47] (  0,  0   )     int  ->  zero-ref    single-def "field V38._total (fldOffset=0x0)" P-INDEP
+;* V63 tmp51        [V63,T48] (  0,  0   )     int  ->  zero-ref    single-def "field V38._start (fldOffset=0x4)" P-INDEP
 ;* V64 tmp52        [V64    ] (  0,  0   )     int  ->  zero-ref    "field V41._total (fldOffset=0x0)" P-INDEP
 ;* V65 tmp53        [V65    ] (  0,  0   )     int  ->  zero-ref    "field V41._start (fldOffset=0x4)" P-INDEP
-;  V66 tmp54        [V66,T18] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;* V67 tmp55        [V67    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V68 tmp56        [V68,T02] (  6,  9   )  struct ( 8) [rbp-0x50]  do-not-enreg[SF] "by-value struct argument" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V69 tmp57        [V69    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V70 tmp58        [V70,T19] (  2,  2   )     ref  ->   r9         single-def "argument with side effect"
-;* V71 tmp59        [V71    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V66 tmp54        [V66,T03] ( 13,  7.50)     ref  ->  [rbp-0x68]  "V03.[008..016)"
+;  V67 tmp55        [V67,T20] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
+;* V68 tmp56        [V68    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V69 tmp57        [V69,T02] (  6,  9   )  struct ( 8) [rbp-0x50]  do-not-enreg[SF] "by-value struct argument" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
+;* V70 tmp58        [V70    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V71 tmp59        [V71,T21] (  2,  2   )     ref  ->   r9         single-def "argument with side effect"
 ;* V72 tmp60        [V72    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V73 tmp61        [V73,T20] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V74 PSPSym       [V74,T40] (  1,  1   )    long  ->  [rbp-0x68]  do-not-enreg[V] "PSPSym"
-;  V75 cse0         [V75,T32] (  3,  1.50)    long  ->  rsi         "CSE #07: moderate"
-;  V76 cse1         [V76,T24] (  3,  1.50)     ref  ->  r12         "CSE #06: moderate"
-;  V77 cse2         [V77,T25] (  3,  1.50)     ref  ->  rcx         "CSE #03: moderate"
-;  V78 cse3         [V78,T26] (  3,  1.50)     ref  ->  rdx         "CSE #05: moderate"
-;  V79 cse4         [V79,T27] (  3,  1.50)     ref  ->  rax         "CSE #08: moderate"
+;* V73 tmp61        [V73    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V74 tmp62        [V74,T22] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V75 PSPSym       [V75,T39] (  1,  1   )    long  ->  [rbp-0x78]  do-not-enreg[V] "PSPSym"
+;  V76 cse0         [V76,T31] (  3,  1.50)    long  ->  r14         "CSE #04: moderate"
+;  V77 cse1         [V77,T26] (  3,  1.50)     ref  ->  r12         "CSE #03: moderate"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 104
 
 G_M18301_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
@@ -100,127 +98,132 @@ G_M18301_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 88
-       lea      rbp, [rsp+0x90]
+       sub      rsp, 104
+       lea      rbp, [rsp+0xA0]
        xor      eax, eax
        mov      qword ptr [rbp-0x48], rax
        mov      qword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0x68], rsp
-       mov      rbx, rcx
-       ; gcrRegs +[rbx]
-       mov      r15, rdx
-       ; byrRegs +[r15]
-       mov      r14, r8
-       ; gcrRegs +[r14]
+       mov      qword ptr [rbp-0x78], rsp
+       mov      rsi, rcx
+       ; gcrRegs +[rsi]
+       mov      rbx, rdx
+       ; byrRegs +[rbx]
+       mov      rdi, r8
+       ; gcrRegs +[rdi]
 						;; size=47 bbWeight=1 PerfScore 12.75
-G_M18301_IG02:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=8000 {r15}, byref, isz
-       test     r14, r14
+G_M18301_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
+       test     rdi, rdi
        jne      SHORT G_M18301_IG04
 						;; size=5 bbWeight=1 PerfScore 1.25
-G_M18301_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
-       ; gcrRegs -[r14]
-       mov      rcx, rbx
+G_M18301_IG03:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs -[rdi]
+       mov      rcx, rsi
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rsi]
        mov      rax, qword ptr [rax+0x78]
        call     [rax+0x08]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, rbx
+       mov      rcx, rsi
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rsi]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0xC8]
        call     [rax]<unknown method>
        ; gcrRegs -[rcx rdx] +[rax]
        ; gcr arg pop 0
-       mov      r14, rax
-       ; gcrRegs +[r14]
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
 						;; size=34 bbWeight=0.50 PerfScore 7.50
-G_M18301_IG04:        ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=8000 {r15}, byref
+G_M18301_IG04:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[rax]
-       mov      rcx, rbx
+       mov      rcx, rsi
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rsi, gword ptr [rbx+0x18]
-       ; gcrRegs +[rsi]
-       cmp      byte  ptr [rsi], sil
+       mov      r14, gword ptr [rsi+0x18]
+       ; gcrRegs +[r14]
+       cmp      byte  ptr [r14], r14b
        mov      dword ptr [rbp-0x50], -1
        xor      edx, edx
        mov      dword ptr [rbp-0x4C], edx
        mov      rdx, qword ptr [rbp-0x50]
-       mov      rcx, rsi
+       mov      rcx, r14
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      gword ptr [rbp-0x58], rsi
+       mov      gword ptr [rbp-0x58], r14
        ; GC ptr vars +{V44}
 						;; size=45 bbWeight=1 PerfScore 15.75
-G_M18301_IG05:        ; bbWeight=1, gcVars=0000000000400000 {V44}, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=8000 {r15}, gcvars, byref
+G_M18301_IG05:        ; bbWeight=1, gcVars=0000000001000000 {V44}, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0008 {rbx}, gcvars, byref
        lea      rdx, [rbp-0x48]
-       mov      rcx, rbx
+       mov      rcx, rsi
        ; gcrRegs +[rcx]
-       mov      r8, r14
+       mov      r8, rdi
        ; gcrRegs +[r8]
        call     [Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GuardedGetBoundNodesFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this]
        ; gcrRegs -[rcx r8]
        ; gcr arg pop 0
-       nop      
-						;; size=17 bbWeight=1 PerfScore 4.25
-G_M18301_IG06:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=8000 {r15}, gcvars, byref, isz
+       mov      r15, gword ptr [rbp-0x40]
+       ; gcrRegs +[r15]
...
+21 (+3.11%) : 40523.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.TupleTypeDecoder:DecodeTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this (Tier1)
@@ -8,18 +8,18 @@
 ; 0 inlinees with PGO data; 12 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T19] (  3,  6   )   byref  ->  rsi         this single-def
+;  V00 this         [V00,T20] (  3,  6   )   byref  ->  rsi         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
-;  V02 loc0         [V02,T22] (  5,  6   )     ref  ->  r14         class-hnd exact single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
+;  V02 loc0         [V02,T26] (  5,  6   )     ref  ->  r14         class-hnd exact single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
 ;  V03 loc1         [V03,T18] (  4,  9   )   ubyte  ->  rbp        
-;  V04 loc2         [V04,T29] (  2,  1   )     int  ->  rcx        
+;  V04 loc2         [V04,T33] (  2,  1   )     int  ->  rcx        
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (24) zero-ref    <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;* V06 loc4         [V06    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T25] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "dup spill" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
-;  V09 tmp2         [V09,T27] (  3,  3   )     int  ->  rbp         "Inlining Arg"
+;  V08 tmp1         [V08,T29] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "dup spill" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
+;  V09 tmp2         [V09,T31] (  3,  3   )     int  ->  rbp         "Inlining Arg"
 ;* V10 tmp3         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
-;  V11 tmp4         [V11    ] (  7, 20   )  struct (24) [rsp+0x60]  do-not-enreg[XS] must-init addr-exposed "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V11 tmp4         [V11,T19] (  4,  8   )  struct (24) [rsp+0x60]  do-not-enreg[HS] must-init hidden-struct-arg "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;* V12 tmp5         [V12    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;* V13 tmp6         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V14 tmp7         [V14,T14] (  3, 10   )     ref  ->  [rsp+0x48]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
@@ -30,14 +30,14 @@
 ;* V19 tmp12        [V19    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V20 tmp13        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
 ;* V21 tmp14        [V21    ] (  0,  0   )     ref  ->  zero-ref   
-;  V22 tmp15        [V22,T20] (  3,  8   )   ubyte  ->  rcx         "Inline return value spill temp"
+;  V22 tmp15        [V22,T23] (  3,  8   )   ubyte  ->  rcx         "Inline return value spill temp"
 ;* V23 tmp16        [V23    ] (  0,  0   )  struct (24) zero-ref    "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;  V24 tmp17        [V24,T00] (  8, 56   )     ref  ->  r13         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
 ;  V25 tmp18        [V25,T07] (  5, 16   )     int  ->  r12         "Inline stloc first use temp"
 ;* V26 tmp19        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V27 tmp20        [V27,T23] (  3,  6   )     int  ->  rdx         "Inline return value spill temp"
+;  V27 tmp20        [V27,T27] (  3,  6   )     int  ->  rdx         "Inline return value spill temp"
 ;  V28 tmp21        [V28,T12] (  3, 12   )     int  ->  rdx         "Inlining Arg"
-;  V29 tmp22        [V29,T26] (  3,  3   )     ref  ->   r8         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
+;  V29 tmp22        [V29,T30] (  3,  3   )     ref  ->   r8         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
 ;  V30 tmp23        [V30,T17] (  5,  7   )     ref  ->  rbx         single-def "field V01.array (fldOffset=0x0)" P-INDEP
 ;  V31 tmp24        [V31,T09] (  4, 12   )     ref  ->  r13         "field V05.DefaultType (fldOffset=0x0)" P-INDEP
 ;  V32 tmp25        [V32,T03] ( 11, 26   )     ref  ->  r12         "field V05._extensions (fldOffset=0x8)" P-INDEP
@@ -48,17 +48,20 @@
 ;* V37 tmp30        [V37    ] (  0,  0   )     ref  ->  zero-ref    "field V12.DefaultType (fldOffset=0x0)" P-INDEP
 ;* V38 tmp31        [V38    ] (  0,  0   )     ref  ->  zero-ref    "field V12._extensions (fldOffset=0x8)" P-INDEP
 ;* V39 tmp32        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "field V12.DefaultNullableAnnotation (fldOffset=0x10)" P-INDEP
-;  V40 tmp33        [V40,T24] (  2,  4   )     ref  ->   r9         "field V16.array (fldOffset=0x0)" P-INDEP
+;  V40 tmp33        [V40,T28] (  2,  4   )     ref  ->   r9         "field V16.array (fldOffset=0x0)" P-INDEP
 ;* V41 tmp34        [V41    ] (  0,  0   )     ref  ->  zero-ref    "field V23.DefaultType (fldOffset=0x0)" P-INDEP
 ;* V42 tmp35        [V42    ] (  0,  0   )     ref  ->  zero-ref    "field V23._extensions (fldOffset=0x8)" P-INDEP
 ;* V43 tmp36        [V43    ] (  0,  0   )   ubyte  ->  zero-ref    "field V23.DefaultNullableAnnotation (fldOffset=0x10)" P-INDEP
-;  V44 tmp37        [V44,T01] (  4, 32   )   byref  ->  rcx         "BlockOp address local"
-;  V45 tmp38        [V45,T04] (  3, 24   )     ref  ->  rcx         "arr expr"
-;  V46 tmp39        [V46,T05] (  3, 24   )     int  ->  rdx         "index expr"
-;  V47 tmp40        [V47,T02] (  4, 32   )   byref  ->  [rsp+0x28]  spill-single-def "BlockOp address local"
-;  V48 cse0         [V48,T28] (  3,  1.50)     ref  ->  rcx         "CSE #02: moderate"
-;  V49 cse1         [V49,T21] (  5,  7   )     int  ->  rdi         "CSE #01: moderate"
-;  V50 rat0         [V50,T06] (  7, 21   )    long  ->  r15         "Widened IV V04"
+;  V44 tmp37        [V44,T21] (  3,  8   )     ref  ->  registers   "V11.[000..008)"
+;  V45 tmp38        [V45,T22] (  3,  8   )     ref  ->  registers   "V11.[008..016)"
+;  V46 tmp39        [V46,T24] (  3,  8   )   ubyte  ->  registers   "V11.[016..017)"
+;  V47 tmp40        [V47,T01] (  4, 32   )   byref  ->  rcx         "BlockOp address local"
+;  V48 tmp41        [V48,T04] (  3, 24   )     ref  ->  rcx         "arr expr"
+;  V49 tmp42        [V49,T05] (  3, 24   )     int  ->  rdx         "index expr"
+;  V50 tmp43        [V50,T02] (  4, 32   )   byref  ->  [rsp+0x28]  spill-single-def "BlockOp address local"
+;  V51 cse0         [V51,T32] (  3,  1.50)     ref  ->  rcx         "CSE #02: conservative"
+;  V52 cse1         [V52,T25] (  5,  7   )     int  ->  rdi         "CSE #01: moderate"
+;  V53 rat0         [V53,T06] (  7, 21   )    long  ->  r15         "Widened IV V04"
 ;
 ; Lcl frame size = 120
 
@@ -204,18 +207,21 @@ G_M15152_IG12:        ; bbWeight=2, gcVars=0000000000004000 {V14}, gcrefRegs=700
 						;; size=15 bbWeight=2 PerfScore 9.00
 G_M15152_IG13:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=7008 {rbx r12 r13 r14}, byrefRegs=0040 {rsi}, gcvars, byref, isz
        ; GC ptr vars -{V14}
-       mov      gword ptr [rsp+0x60], r13
-       mov      gword ptr [rsp+0x68], r12
-       movzx    r10, byte  ptr [rsp+0x58]
-       mov      byte  ptr [rsp+0x70], r10b
+       mov      r10, r13
+       ; gcrRegs +[r10]
+       mov      r9, r12
+       ; gcrRegs +[r9]
+       movzx    r11, byte  ptr [rsp+0x58]
+       mov      edx, r11d
        jmp      SHORT G_M15152_IG16
-						;; size=23 bbWeight=2 PerfScore 12.00
+						;; size=17 bbWeight=2 PerfScore 7.50
 G_M15152_IG14:        ; bbWeight=2, gcVars=0000000000004000 {V14}, gcrefRegs=7008 {rbx r12 r13 r14}, byrefRegs=0040 {rsi}, gcvars, byref
+       ; gcrRegs -[r9-r10]
        ; GC ptr vars +{V14}
-       movzx    r10, byte  ptr [rsp+0x58]
+       movzx    r11, byte  ptr [rsp+0x58]
        mov      rcx, r12
        ; gcrRegs +[rcx]
-       mov      edx, r10d
+       mov      edx, r11d
        mov      r8, qword ptr [r12]
        mov      r8, qword ptr [r8+0x48]
        call     [r8+0x30]<unknown method>
@@ -241,26 +247,43 @@ G_M15152_IG15:        ; bbWeight=2, gcrefRegs=7008 {rbx r12 r13 r14}, byrefRegs=
        call     [<unknown method>]
        ; gcrRegs -[rax rdx r9]
        ; gcr arg pop 0
-       movzx    r10, byte  ptr [rsp+0x58]
-						;; size=44 bbWeight=2 PerfScore 28.00
-G_M15152_IG16:        ; bbWeight=4, gcrefRegs=7008 {rbx r12 r13 r14}, byrefRegs=0040 {rsi}, byref, isz
-       mov      rax, gword ptr [rsp+0x60]
+       mov      r10, gword ptr [rsp+0x60]
+       ; gcrRegs +[r10]
+       mov      rax, r10
+       ; gcrRegs +[rax]
+       mov      r9, gword ptr [rsp+0x68]
+       ; gcrRegs +[r9]
+       mov      r8, r9
+       ; gcrRegs +[r8]
+       movzx    rdx, byte  ptr [rsp+0x70]
+       mov      r10d, edx
+       ; gcrRegs -[r10]
+       mov      edx, r10d
+       mov      r9, r8
+       mov      r10, rax
+       ; gcrRegs +[r10]
+       movzx    r11, byte  ptr [rsp+0x58]
+						;; size=77 bbWeight=2 PerfScore 37.00
+G_M15152_IG16:        ; bbWeight=4, gcrefRegs=7608 {rbx r9 r10 r12 r13 r14}, byrefRegs=0040 {rsi}, byref, isz
+       ; gcrRegs -[rax r8]
+       mov      rax, r10
        ; gcrRegs +[rax]
        mov      gword ptr [rsp+0x38], rax
        ; GC ptr vars +{V34}
-       mov      r8, gword ptr [rsp+0x68]
+       mov      r8, r9
        ; gcrRegs +[r8]
        mov      gword ptr [rsp+0x30], r8
        ; GC ptr vars +{V35}
-       movzx    r9, byte  ptr [rsp+0x70]
-       mov      byte  ptr [rsp+0x54], r9b
+       movzx    r10, dl
+       ; gcrRegs -[r10]
+       mov      byte  ptr [rsp+0x54], r10b
        cmp      rax, r13
        mov      rax, gword ptr [rsp+0x38]
        jne      SHORT G_M15152_IG19
-						;; size=41 bbWeight=4 PerfScore 33.00
+						;; size=35 bbWeight=4 PerfScore 24.00
 G_M15152_IG17:        ; bbWeight=2, gcVars=0000000000008400 {V34 V35}, gcrefRegs=5109 {rax rbx r8 r12 r14}, byrefRegs=0040 {rsi}, gcvars, byref, isz
-       ; gcrRegs -[r13]
-       cmp      r9b, r10b
+       ; gcrRegs -[r9 r13]
+       cmp      r10b, r11b
        jne      SHORT G_M15152_IG18
        cmp      r8, r12
        sete     cl
@@ -269,7 +292,7 @@ G_M15152_IG17:        ; bbWeight=2, gcVars=0000000000008400 {V34 V35}, gcrefRegs
 						;; size=16 bbWeight=2 PerfScore 9.50
 G_M15152_IG18:        ; bbWeight=1, gcrefRegs=4109 {rax rbx r8 r14}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[r12]
-       movzx    r9, byte  ptr [rsp+0x54]
+       movzx    r10, byte  ptr [rsp+0x54]
 						;; size=6 bbWeight=1 PerfScore 1.00
 G_M15152_IG19:        ; bbWeight=2, gcrefRegs=4109 {rax rbx r8 r14}, byrefRegs=0040 {rsi}, byref
        xor      ecx, ecx
@@ -317,19 +340,19 @@ G_M15152_IG23:        ; bbWeight=4, gcrefRegs=6009 {rax rbx r13 r14}, byrefRegs=
        cmp      edx, dword ptr [rcx+0x08]
        jae      G_M15152_IG30
        lea      rdx, [rdx+2*rdx]
-       lea      r10, bword ptr [rcx+8*rdx+0x10]
-       ; byrRegs +[r10]
-       mov      rcx, r10
+       lea      r9, bword ptr [rcx+8*rdx+0x10]
+       ; byrRegs +[r9]
+       mov      rcx, r9
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
        mov      bword ptr [rsp+0x28], rcx
-       ; GC ptr vars +{V47}
+       ; GC ptr vars +{V50}
        mov      rdx, rax
        ; gcrRegs +[rdx]
        ; GC ptr vars -{V34}
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx]
-       ; byrRegs -[rcx r10]
+       ; byrRegs -[rcx r9]
        mov      rax, bword ptr [rsp+0x28]
        ; byrRegs +[rax]
        lea      rcx, bword ptr [rax+0x08]
@@ -342,8 +365,8 @@ G_M15152_IG23:        ; bbWeight=4, gcrefRegs=6009 {rax rbx r13 r14}, byrefRegs=
        ; byrRegs -[rax rcx]
        mov      rcx, bword ptr [rsp+0x28]
        ; byrRegs +[rcx]
-       movzx    r9, byte  ptr [rsp+0x54]
-       mov      byte  ptr [rcx+0x10], r9b
+       movzx    r10, byte  ptr [rsp+0x54]
+       mov      byte  ptr [rcx+0x10], r10b
        mov      dword ptr [r13+0x10], r12d
        dec      r15d
        jns      G_M15152_IG08
@@ -351,7 +374,7 @@ G_M15152_IG23:        ; bbWeight=4, gcrefRegs=6009 {rax rbx r13 r14}, byrefRegs=
 G_M15152_IG24:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r13]
        ; byrRegs -[rcx rsi]
-       ; GC ptr vars -{V47}
+       ; GC ptr vars -{V50}
        test     ebp, ebp
        jne      SHORT G_M15152_IG27
 						;; size=4 bbWeight=0.50 PerfScore 0.62
@@ -423,7 +446,7 @@ G_M15152_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 676, prolog size 33, PerfScore 404.96, instruction count 197, allocated bytes for code 676 (MethodHash=c73fc4cf) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.TupleTypeDecoder:DecodeTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this (Tier1)
+; Total bytes of code 697, prolog size 33, PerfScore 400.46, instruction count 206, allocated bytes for code 697 (MethodHash=c73fc4cf) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.TupleTypeDecoder:DecodeTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
+18 (+3.89%) : 23733.dasm - System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte (Tier1)
@@ -9,17 +9,17 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  4,  8   )   byref  ->  rcx         ld-addr-op single-def
-;  V01 arg1         [V01,T03] ( 10,  6   )   byref  ->  rbx         single-def
-;  V02 loc0         [V02,T06] (  4,  2   )   ubyte  ->  rax        
-;  V03 loc1         [V03,T09] (  3,  1.50)  ushort  ->  rcx        
+;  V01 arg1         [V01,T01] ( 10,  6   )   byref  ->  rbx         single-def
+;  V02 loc0         [V02,T08] (  4,  2   )   ubyte  ->  rax        
+;  V03 loc1         [V03,T11] (  3,  1.50)  ushort  ->  rcx        
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T10] (  3,  1.50)     int  ->  rax        
-;  V06 tmp2         [V06,T11] (  3,  1.50)     int  ->  rax        
-;  V07 tmp3         [V07    ] (  5,  3.50)  struct (16) [rsp+0x38]  do-not-enreg[XS] must-init addr-exposed "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;  V05 tmp1         [V05,T12] (  3,  1.50)     int  ->  rax        
+;  V06 tmp2         [V06,T13] (  3,  1.50)     int  ->  rax        
+;  V07 tmp3         [V07,T14] (  3,  1.50)  struct (16) [rsp+0x38]  do-not-enreg[HS] must-init hidden-struct-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V09 tmp5         [V09,T08] (  2,  2   )     int  ->  rcx         "Span.get_Item index"
-;  V10 tmp6         [V10,T16] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V11 tmp7         [V11,T04] (  4,  4   )  ushort  ->  rcx         "Inlining Arg"
+;  V09 tmp5         [V09,T10] (  2,  2   )     int  ->  rcx         "Span.get_Item index"
+;  V10 tmp6         [V10,T19] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V11 tmp7         [V11,T05] (  4,  4   )  ushort  ->  rcx         "Inlining Arg"
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V14 tmp10        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
@@ -27,8 +27,8 @@
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V17 tmp13        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V19 tmp15        [V19,T17] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V20 tmp16        [V20,T05] (  4,  4   )  ushort  ->  rcx         "Inlining Arg"
+;  V19 tmp15        [V19,T20] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V20 tmp16        [V20,T06] (  4,  4   )  ushort  ->  rcx         "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V22 tmp18        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V23 tmp19        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
@@ -36,18 +36,18 @@
 ;* V25 tmp21        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V26 tmp22        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp23        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V28 tmp24        [V28,T12] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;  V28 tmp24        [V28,T15] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;* V29 tmp25        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V30 tmp26        [V30    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V31 tmp27        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp28        [V32    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V33 tmp29        [V33,T13] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;  V33 tmp29        [V33,T16] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;* V34 tmp30        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V35 tmp31        [V35    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V36 tmp32        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V37 tmp33        [V37    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V38 tmp34        [V38,T01] ( 16,  9   )   byref  ->  rsi         "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V39 tmp35        [V39,T02] ( 12,  8   )     int  ->  rdi         "field V00._length (fldOffset=0x8)" P-INDEP
+;  V38 tmp34        [V38,T02] ( 12,  7   )   byref  ->  registers   "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V39 tmp35        [V39,T03] ( 10,  7   )     int  ->  registers   "field V00._length (fldOffset=0x8)" P-INDEP
 ;* V40 tmp36        [V40    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V41 tmp37        [V41    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V42 tmp38        [V42    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
@@ -78,21 +78,25 @@
 ;* V67 tmp63        [V67    ] (  0,  0   )     int  ->  zero-ref    "field V29._length (fldOffset=0x8)" P-INDEP
 ;* V68 tmp64        [V68    ] (  0,  0   )   byref  ->  zero-ref    "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp65        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
-;  V70 tmp66        [V70,T14] (  2,  1   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
-;* V71 tmp67        [V71,T18] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
+;  V70 tmp66        [V70,T17] (  2,  1   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+;* V71 tmp67        [V71,T21] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V72 tmp68        [V72    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V73 tmp69        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V74 tmp70        [V74    ] (  0,  0   )   byref  ->  zero-ref    "field V35._reference (fldOffset=0x0)" P-INDEP
 ;* V75 tmp71        [V75    ] (  0,  0   )     int  ->  zero-ref    "field V35._length (fldOffset=0x8)" P-INDEP
-;  V76 tmp72        [V76,T15] (  2,  1   )   byref  ->  rcx         single-def "field V36._reference (fldOffset=0x0)" P-INDEP
-;* V77 tmp73        [V77,T19] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
-;* V78 tmp74        [V78    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
-;  V79 tmp75        [V79    ] ( 18, 18   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V80 cse0         [V80,T07] (  4,  2   )     int  ->  rbp         "CSE #03: moderate"
+;  V76 tmp72        [V76,T18] (  2,  1   )   byref  ->  rcx         single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V77 tmp73        [V77,T22] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
+;  V78 tmp74        [V78,T04] (  7,  4   )   byref  ->  rsi         "V07.[000..008)"
+;  V79 tmp75        [V79,T07] (  5,  3   )     int  ->  rdi         "V07.[008..012)"
+;* V80 tmp76        [V80    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
+;  V81 tmp77        [V81    ] ( 18, 18   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V82 cse0         [V82,T09] (  4,  2   )     int  ->  r15         "CSE #03: moderate"
 ;
 ; Lcl frame size = 72
 
 G_M61906_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r15
+       push     r14
        push     rdi
        push     rsi
        push     rbp
@@ -105,7 +109,7 @@ G_M61906_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      qword ptr [rsp+0x40], rax
        mov      rbx, rdx
        ; byrRegs +[rbx]
-						;; size=33 bbWeight=1 PerfScore 9.08
+						;; size=37 bbWeight=1 PerfScore 11.08
 G_M61906_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=000A {rcx rbx}, byref, isz
        ; byrRegs +[rcx]
        mov      rsi, bword ptr [rcx]
@@ -142,10 +146,8 @@ G_M61906_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rs
        jne      SHORT G_M61906_IG08
 						;; size=25 bbWeight=0.50 PerfScore 4.00
 G_M61906_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
-       mov      bword ptr [rsp+0x38], rsi
-       mov      dword ptr [rsp+0x40], edi
        jmp      SHORT G_M61906_IG09
-						;; size=11 bbWeight=0.50 PerfScore 2.00
+						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M61906_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
        mov      edx, ecx
        mov      rcx, 0xD1FFAB1E      ; static handle
@@ -160,16 +162,19 @@ G_M61906_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rs
        call     [<unknown method>]
        ; byrRegs -[rsi]
        ; gcr arg pop 0
-						;; size=25 bbWeight=0.50 PerfScore 3.00
-G_M61906_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      rsi, bword ptr [rsp+0x38]
        ; byrRegs +[rsi]
        mov      edi, dword ptr [rsp+0x40]
-       cmp      edi, 32
+						;; size=34 bbWeight=0.50 PerfScore 4.00
+G_M61906_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
+       mov      rbp, rsi
+       ; byrRegs +[rbp]
+       mov      r14d, edi
+       cmp      r14d, 32
        jge      SHORT G_M61906_IG12
-						;; size=14 bbWeight=1 PerfScore 3.25
+						;; size=12 bbWeight=1 PerfScore 1.75
 G_M61906_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       ; byrRegs -[rsi]
+       ; byrRegs -[rbp rsi]
        mov      rcx, rbx
        ; byrRegs +[rcx]
        mov      edx, 9
@@ -184,37 +189,39 @@ G_M61906_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        pop      rsi
        pop      rdi
+       pop      r14
+       pop      r15
        ret      
-						;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M61906_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, gcvars, byref, isz
-       ; byrRegs +[rbx rsi]
-       movzx    rbp, word  ptr [rsi]
-       mov      ecx, ebp
+						;; size=13 bbWeight=0.50 PerfScore 2.12
+G_M61906_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp rsi}, gcvars, byref, isz
+       ; byrRegs +[rbx rbp rsi]
+       movzx    r15, word  ptr [rbp]
+       mov      ecx, r15d
        cmp      ecx, 40
        je       SHORT G_M61906_IG13
        cmp      ecx, 123
        je       SHORT G_M61906_IG17
-       cmp      word  ptr [rsi+0x10], 45
+       cmp      word  ptr [rbp+0x10], 45
        je       G_M61906_IG22
-       mov      bword ptr [rsp+0x28], rsi
-       mov      dword ptr [rsp+0x30], edi
+       mov      bword ptr [rsp+0x28], rbp
+       mov      dword ptr [rsp+0x30], r14d
        lea      rcx, [rsp+0x28]
        mov      rdx, rbx
        ; byrRegs +[rdx]
        call     [<unknown method>]
-       ; byrRegs -[rdx rbx rsi]
+       ; byrRegs -[rdx rbx rbp rsi]
        ; gcr arg pop 0
        jmp      G_M61906_IG23
-						;; size=54 bbWeight=0.50 PerfScore 8.25
+						;; size=58 bbWeight=0.50 PerfScore 8.25
 G_M61906_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
        ; byrRegs +[rbx rsi]
        cmp      edi, 38
        jne      SHORT G_M61906_IG14
-       cmp      ebp, 40
+       cmp      r15d, 40
        jne      SHORT G_M61906_IG14
        cmp      word  ptr [rsi+0x4A], 41
        je       SHORT G_M61906_IG15
-						;; size=17 bbWeight=0.50 PerfScore 3.25
+						;; size=18 bbWeight=0.50 PerfScore 3.25
 G_M61906_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        ; byrRegs -[rsi]
        mov      rcx, rbx
@@ -241,29 +248,29 @@ G_M61906_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rs
 G_M61906_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        jmp      G_M61906_IG23
 						;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M61906_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
-       ; byrRegs +[rbx rsi]
-       cmp      word  ptr [rsi+0x12], 45
+G_M61906_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0068 {rbx rbp rsi}, byref, isz
+       ; byrRegs +[rbx rbp rsi]
+       cmp      word  ptr [rbp+0x12], 45
        je       SHORT G_M61906_IG18
-       mov      bword ptr [rsp+0x28], rsi
-       mov      dword ptr [rsp+0x30], edi
+       mov      bword ptr [rsp+0x28], rbp
+       mov      dword ptr [rsp+0x30], r14d
        lea      rcx, [rsp+0x28]
        mov      rdx, rbx
        ; byrRegs +[rdx]
        call     [<unknown method>]
-       ; byrRegs -[rdx rbx rsi]
+       ; byrRegs -[rdx rbx rbp rsi]
        ; gcr arg pop 0
        jmp      SHORT G_M61906_IG21
-						;; size=32 bbWeight=0.50 PerfScore 5.88
+						;; size=33 bbWeight=0.50 PerfScore 5.88
 G_M61906_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
        ; byrRegs +[rbx rsi]
        cmp      edi, 38
        jne      SHORT G_M61906_IG19
-       cmp      ebp, 123
+       cmp      r15d, 123
        jne      SHORT G_M61906_IG19
        cmp      word  ptr [rsi+0x4A], 125
        je       SHORT G_M61906_IG20
-						;; size=17 bbWeight=0.50 PerfScore 3.25
+						;; size=18 bbWeight=0.50 PerfScore 3.25
 G_M61906_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        ; byrRegs -[rsi]
        mov      rcx, rbx
@@ -293,17 +300,17 @@ G_M61906_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        movzx    rax, al
        jmp      SHORT G_M61906_IG23
 						;; size=5 bbWeight=0.50 PerfScore 1.12
-G_M61906_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
-       ; byrRegs +[rbx rsi]
-       mov      bword ptr [rsp+0x28], rsi
-       mov      dword ptr [rsp+0x30], edi
+G_M61906_IG22:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0028 {rbx rbp}, byref
+       ; byrRegs +[rbx rbp]
+       mov      bword ptr [rsp+0x28], rbp
+       mov      dword ptr [rsp+0x30], r14d
        lea      rcx, [rsp+0x28]
        mov      rdx, rbx
        ; byrRegs +[rdx]
        call     [<unknown method>]
-       ; byrRegs -[rdx rbx rsi]
+       ; byrRegs -[rdx rbx rbp]
        ; gcr arg pop 0
...
coreclr_tests.run.windows.x64.checked.mch
-39 (-26.71%) : 585393.dasm - MCCTest.MyClass:Main():int (FullOpts)
@@ -9,27 +9,26 @@
 ; Final local variable assignments
 ;
 ;* V00 loc0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <MCCTest.MyClass>
-;  V01 loc1         [V01    ] (  2,  2   )  struct (144) [rsp+0xB8]  do-not-enreg[XS] must-init addr-exposed <MCCTest.VType5>
+;  V01 loc1         [V01    ] (  2,  2   )  struct (144) [rsp+0x28]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg <MCCTest.VType5>
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <MCCTest.MyClass>
 ;* V05 tmp2         [V05    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V06 tmp3         [V06,T00] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V07 tmp4         [V07    ] (  2,  4   )  struct (144) [rsp+0x28]  do-not-enreg[XS] addr-exposed "by-value struct argument" <MCCTest.VType5>
 ;
-; Lcl frame size = 328
+; Lcl frame size = 184
 
 G_M32108_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 328
+       sub      rsp, 184
        xor      eax, eax
-       mov      qword ptr [rsp+0xB8], rax
+       mov      qword ptr [rsp+0x28], rax
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0xC0], ymm4
-       vmovdqu  ymmword ptr [rsp+0xE0], ymm4
-       vmovdqu  ymmword ptr [rsp+0x100], ymm4
-       vmovdqu  ymmword ptr [rsp+0x120], ymm4
-       mov      qword ptr [rsp+0x140], rax
-						;; size=65 bbWeight=1 PerfScore 10.83
+       vmovdqu  ymmword ptr [rsp+0x30], ymm4
+       vmovdqu  ymmword ptr [rsp+0x50], ymm4
+       vmovdqu  ymmword ptr [rsp+0x70], ymm4
+       vmovdqu  ymmword ptr [rsp+0x90], ymm4
+       mov      qword ptr [rsp+0xB0], rax
+						;; size=53 bbWeight=1 PerfScore 10.83
 G_M32108_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; MCCTest.MyClass
        call     CORINFO_HELP_NEWSFAST
@@ -37,29 +36,22 @@ G_M32108_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       lea      rdx, [rsp+0xB8]
+       lea      rdx, [rsp+0x28]
        call     [<unknown method>]
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
-       lea      rcx, bword ptr [rsp+0x28]
-       ; byrRegs +[rcx]
-       lea      rdx, [rsp+0xB8]
-       mov      r8d, 144
-       call     CORINFO_HELP_MEMCPY
-       ; byrRegs -[rcx]
-       ; gcr arg pop 0
        lea      rcx, [rsp+0x28]
        mov      edx, 12
        call     [<unknown method>]
        ; gcr arg pop 0
        nop      
-						;; size=73 bbWeight=1 PerfScore 11.25
+						;; size=46 bbWeight=1 PerfScore 9.00
 G_M32108_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 328
+       add      rsp, 184
        ret      
 						;; size=8 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 146, prolog size 65, PerfScore 23.33, instruction count 24, allocated bytes for code 146 (MethodHash=b0d68293) for method MCCTest.MyClass:Main():int (FullOpts)
+; Total bytes of code 107, prolog size 53, PerfScore 21.08, instruction count 20, allocated bytes for code 107 (MethodHash=b0d68293) for method MCCTest.MyClass:Main():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -73,4 +65,4 @@ Unwind Info:
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
     CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 41 * 8 = 328 = 0x00148
+      Size: 23 * 8 = 184 = 0x000B8
-39 (-26.71%) : 585376.dasm - MCCTest.MyClass:Main():int (FullOpts)
@@ -9,27 +9,26 @@
 ; Final local variable assignments
 ;
 ;* V00 loc0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <MCCTest.MyClass>
-;  V01 loc1         [V01    ] (  2,  2   )  struct (144) [rsp+0xB8]  do-not-enreg[XS] must-init addr-exposed <MCCTest.VType5>
+;  V01 loc1         [V01    ] (  2,  2   )  struct (144) [rsp+0x28]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg <MCCTest.VType5>
 ;* V02 loc2         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <MCCTest.MyClass>
 ;* V05 tmp2         [V05    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V06 tmp3         [V06,T00] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V07 tmp4         [V07    ] (  2,  4   )  struct (144) [rsp+0x28]  do-not-enreg[XS] addr-exposed "by-value struct argument" <MCCTest.VType5>
 ;
-; Lcl frame size = 328
+; Lcl frame size = 184
 
 G_M32108_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 328
+       sub      rsp, 184
        xor      eax, eax
-       mov      qword ptr [rsp+0xB8], rax
+       mov      qword ptr [rsp+0x28], rax
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0xC0], ymm4
-       vmovdqu  ymmword ptr [rsp+0xE0], ymm4
-       vmovdqu  ymmword ptr [rsp+0x100], ymm4
-       vmovdqu  ymmword ptr [rsp+0x120], ymm4
-       mov      qword ptr [rsp+0x140], rax
-						;; size=65 bbWeight=1 PerfScore 10.83
+       vmovdqu  ymmword ptr [rsp+0x30], ymm4
+       vmovdqu  ymmword ptr [rsp+0x50], ymm4
+       vmovdqu  ymmword ptr [rsp+0x70], ymm4
+       vmovdqu  ymmword ptr [rsp+0x90], ymm4
+       mov      qword ptr [rsp+0xB0], rax
+						;; size=53 bbWeight=1 PerfScore 10.83
 G_M32108_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; MCCTest.MyClass
        call     CORINFO_HELP_NEWSFAST
@@ -37,29 +36,22 @@ G_M32108_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       lea      rdx, [rsp+0xB8]
+       lea      rdx, [rsp+0x28]
        call     [<unknown method>]
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
-       lea      rcx, bword ptr [rsp+0x28]
-       ; byrRegs +[rcx]
-       lea      rdx, [rsp+0xB8]
-       mov      r8d, 144
-       call     CORINFO_HELP_MEMCPY
-       ; byrRegs -[rcx]
-       ; gcr arg pop 0
        lea      rcx, [rsp+0x28]
        mov      edx, 12
        call     [<unknown method>]
        ; gcr arg pop 0
        nop      
-						;; size=73 bbWeight=1 PerfScore 11.25
+						;; size=46 bbWeight=1 PerfScore 9.00
 G_M32108_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 328
+       add      rsp, 184
        ret      
 						;; size=8 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 146, prolog size 65, PerfScore 23.33, instruction count 24, allocated bytes for code 146 (MethodHash=b0d68293) for method MCCTest.MyClass:Main():int (FullOpts)
+; Total bytes of code 107, prolog size 53, PerfScore 21.08, instruction count 20, allocated bytes for code 107 (MethodHash=b0d68293) for method MCCTest.MyClass:Main():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -73,4 +65,4 @@ Unwind Info:
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
     CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 41 * 8 = 328 = 0x00148
+      Size: 23 * 8 = 184 = 0x000B8
-25 (-26.60%) : 541719.dasm - N.Repro2:RunTest():int (FullOpts)
@@ -7,42 +7,36 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00    ] (  5,  5   )  struct (40) [rsp+0x50]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <N.Outer>
+;  V00 loc0         [V00    ] (  5,  5   )  struct (40) [rsp+0x20]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg ld-addr-op <N.Outer>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02    ] (  2,  4   )  struct (40) [rsp+0x28]  do-not-enreg[XS] addr-exposed "by-value struct argument" <N.Outer>
 ;
-; Lcl frame size = 120
+; Lcl frame size = 72
 
 G_M59487_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 120
+       sub      rsp, 72
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x50], ymm4
+       vmovdqu  ymmword ptr [rsp+0x20], ymm4
        xor      eax, eax
-       mov      qword ptr [rsp+0x70], rax
+       mov      qword ptr [rsp+0x40], rax
 						;; size=21 bbWeight=1 PerfScore 3.83
 G_M59487_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       lea      rcx, [rsp+0x58]
-       call     [<unknown method>]
-       ; gcr arg pop 0
-       vmovups  xmm0, xmmword ptr [rsp+0x58]
-       vmovups  xmmword ptr [rsp+0x68], xmm0
-       mov      dword ptr [rsp+0x50], 20
-       vmovdqu  ymm0, ymmword ptr [rsp+0x50]
-       vmovdqu  ymmword ptr [rsp+0x28], ymm0
-       mov      rcx, qword ptr [rsp+0x70]
-       mov      qword ptr [rsp+0x48], rcx
        lea      rcx, [rsp+0x28]
        call     [<unknown method>]
        ; gcr arg pop 0
+       vmovups  xmm0, xmmword ptr [rsp+0x28]
+       vmovups  xmmword ptr [rsp+0x38], xmm0
+       mov      dword ptr [rsp+0x20], 20
+       lea      rcx, [rsp+0x20]
+       call     [<unknown method>]
+       ; gcr arg pop 0
        nop      
-						;; size=65 bbWeight=1 PerfScore 19.25
+						;; size=43 bbWeight=1 PerfScore 12.25
 G_M59487_IG03:        ; bbWeight=1, epilog, nogc, extend
-       vzeroupper 
-       add      rsp, 120
+       add      rsp, 72
        ret      
-						;; size=8 bbWeight=1 PerfScore 2.25
+						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 94, prolog size 21, PerfScore 25.33, instruction count 20, allocated bytes for code 94 (MethodHash=28ea17a0) for method N.Repro2:RunTest():int (FullOpts)
+; Total bytes of code 69, prolog size 21, PerfScore 17.33, instruction count 15, allocated bytes for code 69 (MethodHash=28ea17a0) for method N.Repro2:RunTest():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -55,4 +49,4 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 14 * 8 + 8 = 120 = 0x78
+    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+48 (+15.34%) : 475190.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplySubtractScalarSingle:RunStructFldScenario():this (FullOpts)
@@ -9,31 +9,37 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplySubtractScalarSingle>
-;  V01 loc0         [V01    ] (  7,  7   )  struct (48) [rbp-0x70]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplySubtractScalarSingle+TestStruct>
+;  V01 loc0         [V01,T05] (  4,  4   )  struct (48) [rbp-0xA0]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplySubtractScalarSingle+TestStruct>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (64) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V04 tmp2         [V04,T13] (  2,  2   )  simd16  ->  mm6         single-def "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[float]>
-;  V05 tmp3         [V05    ] (  2,  4   )  simd16  ->  [rbp-0x80]  do-not-enreg[XS] addr-exposed "impAppendStmt"
-;  V06 tmp4         [V06    ] (  2,  4   )  simd16  ->  [rbp-0x90]  do-not-enreg[XS] addr-exposed "impAppendStmt"
-;  V07 tmp5         [V07    ] (  2,  4   )  simd16  ->  [rbp-0xA0]  do-not-enreg[XS] addr-exposed "impAppendStmt"
+;  V04 tmp2         [V04,T17] (  2,  2   )  simd16  ->  mm9         single-def "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[float]>
+;* V05 tmp3         [V05    ] (  0,  0   )  simd16  ->  zero-ref    "impAppendStmt"
+;* V06 tmp4         [V06    ] (  0,  0   )  simd16  ->  zero-ref    "impAppendStmt"
+;* V07 tmp5         [V07    ] (  0,  0   )  simd16  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp6         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[float]>
-;  V09 tmp7         [V09,T06] (  2,  4   )    long  ->  rdx         "impAppendStmt"
+;  V09 tmp7         [V09,T07] (  2,  4   )    long  ->  rdx         "impAppendStmt"
 ;  V10 tmp8         [V10,T00] (  4,  8   )   byref  ->  r14         single-def "Inlining Arg"
 ;* V11 tmp9         [V11    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
-;  V12 tmp10        [V12,T07] (  2,  4   )    long  ->  rax         "Inlining Arg"
+;  V12 tmp10        [V12,T08] (  2,  4   )    long  ->  rax         "Inlining Arg"
 ;  V13 tmp11        [V13,T02] (  3,  6   )    long  ->  rcx         "Inlining Arg"
-;  V14 tmp12        [V14,T05] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V14 tmp12        [V14,T06] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V15 tmp13        [V15    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
-;  V16 tmp14        [V16,T08] (  2,  4   )    long  ->  rax         "Inlining Arg"
+;  V16 tmp14        [V16,T09] (  2,  4   )    long  ->  rax         "Inlining Arg"
 ;  V17 tmp15        [V17,T03] (  3,  6   )    long  ->  rdx         "Inlining Arg"
-;* V18 tmp16        [V18,T12] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V08.hasValue (fldOffset=0x0)" P-INDEP
-;* V19 tmp17        [V19,T14] (  0,  0   )   float  ->  zero-ref    single-def "field V08.value (fldOffset=0x4)" P-INDEP
-;  V20 tmp18        [V20,T04] (  3,  6   )  struct ( 8) [rbp-0xA8]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[float]>
-;  V21 cse0         [V21,T09] (  3,  3   )   byref  ->  rdi         "CSE #01: aggressive"
-;  V22 cse1         [V22,T10] (  3,  3   )   byref  ->  r15         "CSE #02: aggressive"
-;  V23 cse2         [V23,T11] (  3,  3   )     ref  ->  rsi         "CSE #03: aggressive"
+;* V18 tmp16        [V18,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V08.hasValue (fldOffset=0x0)" P-INDEP
+;* V19 tmp17        [V19,T18] (  0,  0   )   float  ->  zero-ref    single-def "field V08.value (fldOffset=0x4)" P-INDEP
+;  V20 tmp18        [V20,T14] (  3,  3   )  simd16  ->  mm6         single-def "V01.[000..016)"
+;  V21 tmp19        [V21,T15] (  3,  3   )  simd16  ->  mm7         single-def "V01.[016..032)"
+;  V22 tmp20        [V22,T16] (  3,  3   )  simd16  ->  mm8         single-def "V01.[032..048)"
+;  V23 tmp21        [V23    ] (  2,  4   )  simd16  ->  [rbp-0xB0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V24 tmp22        [V24    ] (  2,  4   )  simd16  ->  [rbp-0xC0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V25 tmp23        [V25    ] (  2,  4   )  simd16  ->  [rbp-0xD0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V26 tmp24        [V26,T04] (  3,  6   )  struct ( 8) [rbp-0xD8]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[float]>
+;  V27 cse0         [V27,T10] (  3,  3   )   byref  ->  rdi         "CSE #01: aggressive"
+;  V28 cse1         [V28,T11] (  3,  3   )   byref  ->  r15         "CSE #02: aggressive"
+;  V29 cse2         [V29,T12] (  3,  3   )     ref  ->  rsi         "CSE #03: aggressive"
 ;
-; Lcl frame size = 200
+; Lcl frame size = 248
 
 G_M17940_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -42,15 +48,15 @@ G_M17940_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 200
-       vmovaps  xmmword ptr [rsp+0xB0], xmm6
-       lea      rbp, [rsp+0xF0]
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x70], ymm4
-       vmovdqa  xmmword ptr [rbp-0x50], xmm4
+       sub      rsp, 248
+       vmovaps  xmmword ptr [rsp+0xE0], xmm6
+       vmovaps  xmmword ptr [rsp+0xD0], xmm7
+       vmovaps  xmmword ptr [rsp+0xC0], xmm8
+       vmovaps  xmmword ptr [rsp+0xB0], xmm9
+       lea      rbp, [rsp+0x120]
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-						;; size=49 bbWeight=1 PerfScore 13.33
+						;; size=62 bbWeight=1 PerfScore 15.00
 G_M17940_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
@@ -64,11 +70,13 @@ G_M17940_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rax rcx]
-       lea      rcx, [rbp-0x70]
+       lea      rcx, [rbp-0xA0]
        call     [<unknown method>]
-       vmovups  xmm6, xmmword ptr [rbp-0x70]
-       vmovups  xmm0, xmmword ptr [rbp-0x60]
-       vfmsub213ss xmm6, xmm0, dword ptr [rbp-0x50]
+       vmovups  xmm6, xmmword ptr [rbp-0xA0]
+       vmovups  xmm7, xmmword ptr [rbp-0x90]
+       vmovups  xmm8, xmmword ptr [rbp-0x80]
+       vmovaps  xmm9, xmm6
+       vfmsub213ss xmm9, xmm7, xmm8
        lea      rdi, bword ptr [rbx+0x48]
        ; byrRegs +[rdi]
        mov      r14, rdi
@@ -84,13 +92,7 @@ G_M17940_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        lea      rax, [rax+rcx-0x01]
        dec      rcx
        andn     rcx, rcx, rax
-       vmovups  xmmword ptr [rcx], xmm6
-       vmovups  xmm0, xmmword ptr [rbp-0x70]
-       vmovaps  xmmword ptr [rbp-0x80], xmm0
-       vmovups  xmm0, xmmword ptr [rbp-0x60]
-       vmovaps  xmmword ptr [rbp-0x90], xmm0
-       vmovups  xmm0, xmmword ptr [rbp-0x50]
-       vmovaps  xmmword ptr [rbp-0xA0], xmm0
+       vmovups  xmmword ptr [rcx], xmm9
        mov      rcx, r15
        ; byrRegs +[rcx]
        call     [<unknown method>]
@@ -99,29 +101,35 @@ G_M17940_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        lea      r8, [rax+rdx-0x01]
        dec      rdx
        andn     rdx, rdx, r8
+       vmovaps  xmmword ptr [rbp-0xB0], xmm6
+       vmovaps  xmmword ptr [rbp-0xC0], xmm7
+       vmovaps  xmmword ptr [rbp-0xD0], xmm8
        mov      qword ptr [rsp+0x20], rdx
        xor      edx, edx
        mov      dword ptr [rsp+0x28], edx
-       mov      byte  ptr [rbp-0xA8], 0
-						;; size=188 bbWeight=1 PerfScore 57.00
+       mov      byte  ptr [rbp-0xD8], 0
+						;; size=193 bbWeight=1 PerfScore 49.25
 G_M17940_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; byrRegs -[rdi]
-       mov      dword ptr [rbp-0xA4], edx
+       mov      dword ptr [rbp-0xD4], edx
        mov      gword ptr [rsp+0x38], rsi
-       mov      rdx, qword ptr [rbp-0xA8]
-       mov      qword ptr [rsp+0x30], rdx
-       lea      rdx, [rbp-0x80]
-       lea      r8, [rbp-0x90]
-       lea      r9, [rbp-0xA0]
+       lea      rdx, [rbp-0xB0]
+       lea      r8, [rbp-0xC0]
+       lea      r9, [rbp-0xD0]
+       mov      rcx, qword ptr [rbp-0xD8]
+       mov      qword ptr [rsp+0x30], rcx
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rbx rsi]
        nop      
-						;; size=51 bbWeight=1 PerfScore 9.00
+						;; size=54 bbWeight=1 PerfScore 9.00
 G_M17940_IG04:        ; bbWeight=1, epilog, nogc, extend
-       vmovaps  xmm6, xmmword ptr [rsp+0xB0]
-       add      rsp, 200
+       vmovaps  xmm6, xmmword ptr [rsp+0xE0]
+       vmovaps  xmm7, xmmword ptr [rsp+0xD0]
+       vmovaps  xmm8, xmmword ptr [rsp+0xC0]
+       vmovaps  xmm9, xmmword ptr [rsp+0xB0]
+       add      rsp, 248
        pop      rbx
        pop      rsi
        pop      rdi
@@ -129,9 +137,9 @@ G_M17940_IG04:        ; bbWeight=1, epilog, nogc, extend
        pop      r15
        pop      rbp
        ret      
-						;; size=25 bbWeight=1 PerfScore 8.25
+						;; size=52 bbWeight=1 PerfScore 20.25
 
-; Total bytes of code 313, prolog size 46, PerfScore 87.58, instruction count 70, allocated bytes for code 313 (MethodHash=977fb9eb) for method JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplySubtractScalarSingle:RunStructFldScenario():this (FullOpts)
+; Total bytes of code 361, prolog size 59, PerfScore 93.50, instruction count 72, allocated bytes for code 361 (MethodHash=977fb9eb) for method JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplySubtractScalarSingle:RunStructFldScenario():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -139,15 +147,21 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x18
-  CountOfUnwindCodes: 10
+  SizeOfProlog      : 0x33
+  CountOfUnwindCodes: 16
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x18 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
+    CodeOffset: 0x33 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM9 (9)
       Scaled Small Offset: 11 * 16 = 176 = 0x000B0
+    CodeOffset: 0x2A UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM8 (8)
+      Scaled Small Offset: 12 * 16 = 192 = 0x000C0
+    CodeOffset: 0x21 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM7 (7)
+      Scaled Small Offset: 13 * 16 = 208 = 0x000D0
+    CodeOffset: 0x18 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
+      Scaled Small Offset: 14 * 16 = 224 = 0x000E0
     CodeOffset: 0x0F UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 25 * 8 = 200 = 0x000C8
+      Size: 31 * 8 = 248 = 0x000F8
     CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+48 (+15.34%) : 474910.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplyAddNegatedScalarSingle:RunStructFldScenario():this (FullOpts)
@@ -9,31 +9,37 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplyAddNegatedScalarSingle>
-;  V01 loc0         [V01    ] (  7,  7   )  struct (48) [rbp-0x70]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplyAddNegatedScalarSingle+TestStruct>
+;  V01 loc0         [V01,T05] (  4,  4   )  struct (48) [rbp-0xA0]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplyAddNegatedScalarSingle+TestStruct>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (64) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V04 tmp2         [V04,T13] (  2,  2   )  simd16  ->  mm6         single-def "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[float]>
-;  V05 tmp3         [V05    ] (  2,  4   )  simd16  ->  [rbp-0x80]  do-not-enreg[XS] addr-exposed "impAppendStmt"
-;  V06 tmp4         [V06    ] (  2,  4   )  simd16  ->  [rbp-0x90]  do-not-enreg[XS] addr-exposed "impAppendStmt"
-;  V07 tmp5         [V07    ] (  2,  4   )  simd16  ->  [rbp-0xA0]  do-not-enreg[XS] addr-exposed "impAppendStmt"
+;  V04 tmp2         [V04,T17] (  2,  2   )  simd16  ->  mm9         single-def "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[float]>
+;* V05 tmp3         [V05    ] (  0,  0   )  simd16  ->  zero-ref    "impAppendStmt"
+;* V06 tmp4         [V06    ] (  0,  0   )  simd16  ->  zero-ref    "impAppendStmt"
+;* V07 tmp5         [V07    ] (  0,  0   )  simd16  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp6         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[float]>
-;  V09 tmp7         [V09,T06] (  2,  4   )    long  ->  rdx         "impAppendStmt"
+;  V09 tmp7         [V09,T07] (  2,  4   )    long  ->  rdx         "impAppendStmt"
 ;  V10 tmp8         [V10,T00] (  4,  8   )   byref  ->  r14         single-def "Inlining Arg"
 ;* V11 tmp9         [V11    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
-;  V12 tmp10        [V12,T07] (  2,  4   )    long  ->  rax         "Inlining Arg"
+;  V12 tmp10        [V12,T08] (  2,  4   )    long  ->  rax         "Inlining Arg"
 ;  V13 tmp11        [V13,T02] (  3,  6   )    long  ->  rcx         "Inlining Arg"
-;  V14 tmp12        [V14,T05] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V14 tmp12        [V14,T06] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V15 tmp13        [V15    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
-;  V16 tmp14        [V16,T08] (  2,  4   )    long  ->  rax         "Inlining Arg"
+;  V16 tmp14        [V16,T09] (  2,  4   )    long  ->  rax         "Inlining Arg"
 ;  V17 tmp15        [V17,T03] (  3,  6   )    long  ->  rdx         "Inlining Arg"
-;* V18 tmp16        [V18,T12] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V08.hasValue (fldOffset=0x0)" P-INDEP
-;* V19 tmp17        [V19,T14] (  0,  0   )   float  ->  zero-ref    single-def "field V08.value (fldOffset=0x4)" P-INDEP
-;  V20 tmp18        [V20,T04] (  3,  6   )  struct ( 8) [rbp-0xA8]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[float]>
-;  V21 cse0         [V21,T09] (  3,  3   )   byref  ->  rdi         "CSE #01: aggressive"
-;  V22 cse1         [V22,T10] (  3,  3   )   byref  ->  r15         "CSE #02: aggressive"
-;  V23 cse2         [V23,T11] (  3,  3   )     ref  ->  rsi         "CSE #03: aggressive"
+;* V18 tmp16        [V18,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V08.hasValue (fldOffset=0x0)" P-INDEP
+;* V19 tmp17        [V19,T18] (  0,  0   )   float  ->  zero-ref    single-def "field V08.value (fldOffset=0x4)" P-INDEP
+;  V20 tmp18        [V20,T14] (  3,  3   )  simd16  ->  mm6         single-def "V01.[000..016)"
+;  V21 tmp19        [V21,T15] (  3,  3   )  simd16  ->  mm7         single-def "V01.[016..032)"
+;  V22 tmp20        [V22,T16] (  3,  3   )  simd16  ->  mm8         single-def "V01.[032..048)"
+;  V23 tmp21        [V23    ] (  2,  4   )  simd16  ->  [rbp-0xB0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V24 tmp22        [V24    ] (  2,  4   )  simd16  ->  [rbp-0xC0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V25 tmp23        [V25    ] (  2,  4   )  simd16  ->  [rbp-0xD0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V26 tmp24        [V26,T04] (  3,  6   )  struct ( 8) [rbp-0xD8]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[float]>
+;  V27 cse0         [V27,T10] (  3,  3   )   byref  ->  rdi         "CSE #01: aggressive"
+;  V28 cse1         [V28,T11] (  3,  3   )   byref  ->  r15         "CSE #02: aggressive"
+;  V29 cse2         [V29,T12] (  3,  3   )     ref  ->  rsi         "CSE #03: aggressive"
 ;
-; Lcl frame size = 200
+; Lcl frame size = 248
 
 G_M13817_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -42,15 +48,15 @@ G_M13817_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 200
-       vmovaps  xmmword ptr [rsp+0xB0], xmm6
-       lea      rbp, [rsp+0xF0]
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x70], ymm4
-       vmovdqa  xmmword ptr [rbp-0x50], xmm4
+       sub      rsp, 248
+       vmovaps  xmmword ptr [rsp+0xE0], xmm6
+       vmovaps  xmmword ptr [rsp+0xD0], xmm7
+       vmovaps  xmmword ptr [rsp+0xC0], xmm8
+       vmovaps  xmmword ptr [rsp+0xB0], xmm9
+       lea      rbp, [rsp+0x120]
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-						;; size=49 bbWeight=1 PerfScore 13.33
+						;; size=62 bbWeight=1 PerfScore 15.00
 G_M13817_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
@@ -64,11 +70,13 @@ G_M13817_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rax rcx]
-       lea      rcx, [rbp-0x70]
+       lea      rcx, [rbp-0xA0]
        call     [<unknown method>]
-       vmovups  xmm6, xmmword ptr [rbp-0x70]
-       vmovups  xmm0, xmmword ptr [rbp-0x60]
-       vfnmadd213ss xmm6, xmm0, dword ptr [rbp-0x50]
+       vmovups  xmm6, xmmword ptr [rbp-0xA0]
+       vmovups  xmm7, xmmword ptr [rbp-0x90]
+       vmovups  xmm8, xmmword ptr [rbp-0x80]
+       vmovaps  xmm9, xmm6
+       vfnmadd213ss xmm9, xmm7, xmm8
        lea      rdi, bword ptr [rbx+0x48]
        ; byrRegs +[rdi]
        mov      r14, rdi
@@ -84,13 +92,7 @@ G_M13817_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        lea      rax, [rax+rcx-0x01]
        dec      rcx
        andn     rcx, rcx, rax
-       vmovups  xmmword ptr [rcx], xmm6
-       vmovups  xmm0, xmmword ptr [rbp-0x70]
-       vmovaps  xmmword ptr [rbp-0x80], xmm0
-       vmovups  xmm0, xmmword ptr [rbp-0x60]
-       vmovaps  xmmword ptr [rbp-0x90], xmm0
-       vmovups  xmm0, xmmword ptr [rbp-0x50]
-       vmovaps  xmmword ptr [rbp-0xA0], xmm0
+       vmovups  xmmword ptr [rcx], xmm9
        mov      rcx, r15
        ; byrRegs +[rcx]
        call     [<unknown method>]
@@ -99,29 +101,35 @@ G_M13817_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        lea      r8, [rax+rdx-0x01]
        dec      rdx
        andn     rdx, rdx, r8
+       vmovaps  xmmword ptr [rbp-0xB0], xmm6
+       vmovaps  xmmword ptr [rbp-0xC0], xmm7
+       vmovaps  xmmword ptr [rbp-0xD0], xmm8
        mov      qword ptr [rsp+0x20], rdx
        xor      edx, edx
        mov      dword ptr [rsp+0x28], edx
-       mov      byte  ptr [rbp-0xA8], 0
-						;; size=188 bbWeight=1 PerfScore 57.00
+       mov      byte  ptr [rbp-0xD8], 0
+						;; size=193 bbWeight=1 PerfScore 49.25
 G_M13817_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; byrRegs -[rdi]
-       mov      dword ptr [rbp-0xA4], edx
+       mov      dword ptr [rbp-0xD4], edx
        mov      gword ptr [rsp+0x38], rsi
-       mov      rdx, qword ptr [rbp-0xA8]
-       mov      qword ptr [rsp+0x30], rdx
-       lea      rdx, [rbp-0x80]
-       lea      r8, [rbp-0x90]
-       lea      r9, [rbp-0xA0]
+       lea      rdx, [rbp-0xB0]
+       lea      r8, [rbp-0xC0]
+       lea      r9, [rbp-0xD0]
+       mov      rcx, qword ptr [rbp-0xD8]
+       mov      qword ptr [rsp+0x30], rcx
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rbx rsi]
        nop      
-						;; size=51 bbWeight=1 PerfScore 9.00
+						;; size=54 bbWeight=1 PerfScore 9.00
 G_M13817_IG04:        ; bbWeight=1, epilog, nogc, extend
-       vmovaps  xmm6, xmmword ptr [rsp+0xB0]
-       add      rsp, 200
+       vmovaps  xmm6, xmmword ptr [rsp+0xE0]
+       vmovaps  xmm7, xmmword ptr [rsp+0xD0]
+       vmovaps  xmm8, xmmword ptr [rsp+0xC0]
+       vmovaps  xmm9, xmmword ptr [rsp+0xB0]
+       add      rsp, 248
        pop      rbx
        pop      rsi
        pop      rdi
@@ -129,9 +137,9 @@ G_M13817_IG04:        ; bbWeight=1, epilog, nogc, extend
        pop      r15
        pop      rbp
        ret      
-						;; size=25 bbWeight=1 PerfScore 8.25
+						;; size=52 bbWeight=1 PerfScore 20.25
 
-; Total bytes of code 313, prolog size 46, PerfScore 87.58, instruction count 70, allocated bytes for code 313 (MethodHash=4c45ca06) for method JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplyAddNegatedScalarSingle:RunStructFldScenario():this (FullOpts)
+; Total bytes of code 361, prolog size 59, PerfScore 93.50, instruction count 72, allocated bytes for code 361 (MethodHash=4c45ca06) for method JIT.HardwareIntrinsics.X86._Fma_Vector128.SimpleTernaryOpTest__MultiplyAddNegatedScalarSingle:RunStructFldScenario():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -139,15 +147,21 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x18
-  CountOfUnwindCodes: 10
+  SizeOfProlog      : 0x33
+  CountOfUnwindCodes: 16
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x18 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
+    CodeOffset: 0x33 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM9 (9)
       Scaled Small Offset: 11 * 16 = 176 = 0x000B0
+    CodeOffset: 0x2A UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM8 (8)
+      Scaled Small Offset: 12 * 16 = 192 = 0x000C0
+    CodeOffset: 0x21 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM7 (7)
+      Scaled Small Offset: 13 * 16 = 208 = 0x000D0
+    CodeOffset: 0x18 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
+      Scaled Small Offset: 14 * 16 = 224 = 0x000E0
     CodeOffset: 0x0F UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 25 * 8 = 200 = 0x000C8
+      Size: 31 * 8 = 248 = 0x000F8
     CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+48 (+15.34%) : 475070.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector128.AlternatingTernaryOpTest__MultiplySubtractAddSingle:RunStructFldScenario():this (FullOpts)
@@ -9,31 +9,37 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <JIT.HardwareIntrinsics.X86._Fma_Vector128.AlternatingTernaryOpTest__MultiplySubtractAddSingle>
-;  V01 loc0         [V01    ] (  7,  7   )  struct (48) [rbp-0x70]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <JIT.HardwareIntrinsics.X86._Fma_Vector128.AlternatingTernaryOpTest__MultiplySubtractAddSingle+TestStruct>
+;  V01 loc0         [V01,T05] (  4,  4   )  struct (48) [rbp-0xA0]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <JIT.HardwareIntrinsics.X86._Fma_Vector128.AlternatingTernaryOpTest__MultiplySubtractAddSingle+TestStruct>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (64) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V04 tmp2         [V04,T13] (  2,  2   )  simd16  ->  mm6         single-def "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[float]>
-;  V05 tmp3         [V05    ] (  2,  4   )  simd16  ->  [rbp-0x80]  do-not-enreg[XS] addr-exposed "impAppendStmt"
-;  V06 tmp4         [V06    ] (  2,  4   )  simd16  ->  [rbp-0x90]  do-not-enreg[XS] addr-exposed "impAppendStmt"
-;  V07 tmp5         [V07    ] (  2,  4   )  simd16  ->  [rbp-0xA0]  do-not-enreg[XS] addr-exposed "impAppendStmt"
+;  V04 tmp2         [V04,T17] (  2,  2   )  simd16  ->  mm9         single-def "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[float]>
+;* V05 tmp3         [V05    ] (  0,  0   )  simd16  ->  zero-ref    "impAppendStmt"
+;* V06 tmp4         [V06    ] (  0,  0   )  simd16  ->  zero-ref    "impAppendStmt"
+;* V07 tmp5         [V07    ] (  0,  0   )  simd16  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp6         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[float]>
-;  V09 tmp7         [V09,T06] (  2,  4   )    long  ->  rdx         "impAppendStmt"
+;  V09 tmp7         [V09,T07] (  2,  4   )    long  ->  rdx         "impAppendStmt"
 ;  V10 tmp8         [V10,T00] (  4,  8   )   byref  ->  r14         single-def "Inlining Arg"
 ;* V11 tmp9         [V11    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
-;  V12 tmp10        [V12,T07] (  2,  4   )    long  ->  rax         "Inlining Arg"
+;  V12 tmp10        [V12,T08] (  2,  4   )    long  ->  rax         "Inlining Arg"
 ;  V13 tmp11        [V13,T02] (  3,  6   )    long  ->  rcx         "Inlining Arg"
-;  V14 tmp12        [V14,T05] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V14 tmp12        [V14,T06] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V15 tmp13        [V15    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
-;  V16 tmp14        [V16,T08] (  2,  4   )    long  ->  rax         "Inlining Arg"
+;  V16 tmp14        [V16,T09] (  2,  4   )    long  ->  rax         "Inlining Arg"
 ;  V17 tmp15        [V17,T03] (  3,  6   )    long  ->  rdx         "Inlining Arg"
-;* V18 tmp16        [V18,T12] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V08.hasValue (fldOffset=0x0)" P-INDEP
-;* V19 tmp17        [V19,T14] (  0,  0   )   float  ->  zero-ref    single-def "field V08.value (fldOffset=0x4)" P-INDEP
-;  V20 tmp18        [V20,T04] (  3,  6   )  struct ( 8) [rbp-0xA8]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[float]>
-;  V21 cse0         [V21,T09] (  3,  3   )   byref  ->  rdi         "CSE #01: aggressive"
-;  V22 cse1         [V22,T10] (  3,  3   )   byref  ->  r15         "CSE #02: aggressive"
-;  V23 cse2         [V23,T11] (  3,  3   )     ref  ->  rsi         "CSE #03: aggressive"
+;* V18 tmp16        [V18,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V08.hasValue (fldOffset=0x0)" P-INDEP
+;* V19 tmp17        [V19,T18] (  0,  0   )   float  ->  zero-ref    single-def "field V08.value (fldOffset=0x4)" P-INDEP
+;  V20 tmp18        [V20,T14] (  3,  3   )  simd16  ->  mm6         single-def "V01.[000..016)"
+;  V21 tmp19        [V21,T15] (  3,  3   )  simd16  ->  mm7         single-def "V01.[016..032)"
+;  V22 tmp20        [V22,T16] (  3,  3   )  simd16  ->  mm8         single-def "V01.[032..048)"
+;  V23 tmp21        [V23    ] (  2,  4   )  simd16  ->  [rbp-0xB0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V24 tmp22        [V24    ] (  2,  4   )  simd16  ->  [rbp-0xC0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V25 tmp23        [V25    ] (  2,  4   )  simd16  ->  [rbp-0xD0]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V26 tmp24        [V26,T04] (  3,  6   )  struct ( 8) [rbp-0xD8]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[float]>
+;  V27 cse0         [V27,T10] (  3,  3   )   byref  ->  rdi         "CSE #01: aggressive"
+;  V28 cse1         [V28,T11] (  3,  3   )   byref  ->  r15         "CSE #02: aggressive"
+;  V29 cse2         [V29,T12] (  3,  3   )     ref  ->  rsi         "CSE #03: aggressive"
 ;
-; Lcl frame size = 200
+; Lcl frame size = 248
 
 G_M40192_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
@@ -42,15 +48,15 @@ G_M40192_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 200
-       vmovaps  xmmword ptr [rsp+0xB0], xmm6
-       lea      rbp, [rsp+0xF0]
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x70], ymm4
-       vmovdqa  xmmword ptr [rbp-0x50], xmm4
+       sub      rsp, 248
+       vmovaps  xmmword ptr [rsp+0xE0], xmm6
+       vmovaps  xmmword ptr [rsp+0xD0], xmm7
+       vmovaps  xmmword ptr [rsp+0xC0], xmm8
+       vmovaps  xmmword ptr [rsp+0xB0], xmm9
+       lea      rbp, [rsp+0x120]
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-						;; size=49 bbWeight=1 PerfScore 13.33
+						;; size=62 bbWeight=1 PerfScore 15.00
 G_M40192_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
@@ -64,11 +70,13 @@ G_M40192_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rax rcx]
-       lea      rcx, [rbp-0x70]
+       lea      rcx, [rbp-0xA0]
        call     [<unknown method>]
-       vmovups  xmm6, xmmword ptr [rbp-0x70]
-       vmovups  xmm0, xmmword ptr [rbp-0x60]
-       vfmsubadd213ps xmm6, xmm0, xmmword ptr [rbp-0x50]
+       vmovups  xmm6, xmmword ptr [rbp-0xA0]
+       vmovups  xmm7, xmmword ptr [rbp-0x90]
+       vmovups  xmm8, xmmword ptr [rbp-0x80]
+       vmovaps  xmm9, xmm6
+       vfmsubadd213ps xmm9, xmm7, xmm8
        lea      rdi, bword ptr [rbx+0x48]
        ; byrRegs +[rdi]
        mov      r14, rdi
@@ -84,13 +92,7 @@ G_M40192_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        lea      rax, [rax+rcx-0x01]
        dec      rcx
        andn     rcx, rcx, rax
-       vmovups  xmmword ptr [rcx], xmm6
-       vmovups  xmm0, xmmword ptr [rbp-0x70]
-       vmovaps  xmmword ptr [rbp-0x80], xmm0
-       vmovups  xmm0, xmmword ptr [rbp-0x60]
-       vmovaps  xmmword ptr [rbp-0x90], xmm0
-       vmovups  xmm0, xmmword ptr [rbp-0x50]
-       vmovaps  xmmword ptr [rbp-0xA0], xmm0
+       vmovups  xmmword ptr [rcx], xmm9
        mov      rcx, r15
        ; byrRegs +[rcx]
        call     [<unknown method>]
@@ -99,29 +101,35 @@ G_M40192_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        lea      r8, [rax+rdx-0x01]
        dec      rdx
        andn     rdx, rdx, r8
+       vmovaps  xmmword ptr [rbp-0xB0], xmm6
+       vmovaps  xmmword ptr [rbp-0xC0], xmm7
+       vmovaps  xmmword ptr [rbp-0xD0], xmm8
        mov      qword ptr [rsp+0x20], rdx
        xor      edx, edx
        mov      dword ptr [rsp+0x28], edx
-       mov      byte  ptr [rbp-0xA8], 0
-						;; size=188 bbWeight=1 PerfScore 57.00
+       mov      byte  ptr [rbp-0xD8], 0
+						;; size=193 bbWeight=1 PerfScore 49.25
 G_M40192_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; byrRegs -[rdi]
-       mov      dword ptr [rbp-0xA4], edx
+       mov      dword ptr [rbp-0xD4], edx
        mov      gword ptr [rsp+0x38], rsi
-       mov      rdx, qword ptr [rbp-0xA8]
-       mov      qword ptr [rsp+0x30], rdx
-       lea      rdx, [rbp-0x80]
-       lea      r8, [rbp-0x90]
-       lea      r9, [rbp-0xA0]
+       lea      rdx, [rbp-0xB0]
+       lea      r8, [rbp-0xC0]
+       lea      r9, [rbp-0xD0]
+       mov      rcx, qword ptr [rbp-0xD8]
+       mov      qword ptr [rsp+0x30], rcx
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rbx rsi]
        nop      
-						;; size=51 bbWeight=1 PerfScore 9.00
+						;; size=54 bbWeight=1 PerfScore 9.00
 G_M40192_IG04:        ; bbWeight=1, epilog, nogc, extend
-       vmovaps  xmm6, xmmword ptr [rsp+0xB0]
-       add      rsp, 200
+       vmovaps  xmm6, xmmword ptr [rsp+0xE0]
+       vmovaps  xmm7, xmmword ptr [rsp+0xD0]
+       vmovaps  xmm8, xmmword ptr [rsp+0xC0]
+       vmovaps  xmm9, xmmword ptr [rsp+0xB0]
+       add      rsp, 248
        pop      rbx
        pop      rsi
        pop      rdi
@@ -129,9 +137,9 @@ G_M40192_IG04:        ; bbWeight=1, epilog, nogc, extend
        pop      r15
        pop      rbp
        ret      
-						;; size=25 bbWeight=1 PerfScore 8.25
+						;; size=52 bbWeight=1 PerfScore 20.25
 
-; Total bytes of code 313, prolog size 46, PerfScore 87.58, instruction count 70, allocated bytes for code 313 (MethodHash=3b3a62ff) for method JIT.HardwareIntrinsics.X86._Fma_Vector128.AlternatingTernaryOpTest__MultiplySubtractAddSingle:RunStructFldScenario():this (FullOpts)
+; Total bytes of code 361, prolog size 59, PerfScore 93.50, instruction count 72, allocated bytes for code 361 (MethodHash=3b3a62ff) for method JIT.HardwareIntrinsics.X86._Fma_Vector128.AlternatingTernaryOpTest__MultiplySubtractAddSingle:RunStructFldScenario():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -139,15 +147,21 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x18
-  CountOfUnwindCodes: 10
+  SizeOfProlog      : 0x33
+  CountOfUnwindCodes: 16
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x18 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
+    CodeOffset: 0x33 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM9 (9)
       Scaled Small Offset: 11 * 16 = 176 = 0x000B0
+    CodeOffset: 0x2A UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM8 (8)
+      Scaled Small Offset: 12 * 16 = 192 = 0x000C0
+    CodeOffset: 0x21 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM7 (7)
+      Scaled Small Offset: 13 * 16 = 208 = 0x000D0
+    CodeOffset: 0x18 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
+      Scaled Small Offset: 14 * 16 = 224 = 0x000E0
     CodeOffset: 0x0F UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 25 * 8 = 200 = 0x000C8
+      Size: 31 * 8 = 248 = 0x000F8
     CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
libraries.crossgen2.windows.x64.checked.mch
-48 (-33.10%) : 169830.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
@@ -11,34 +11,31 @@
 ;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.GeneratorDriver>
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   r9         class-hnd single-def <Microsoft.CodeAnalysis.Compilation>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Threading.CancellationToken>
-;  V03 loc0         [V03    ] (  2,  2   )  struct (80) [rsp+0x80]  do-not-enreg[XS] must-init addr-exposed <Microsoft.CodeAnalysis.GeneratorDriverState>
+;  V03 loc0         [V03    ] (  2,  2   )  struct (80) [rsp+0x30]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg <Microsoft.CodeAnalysis.GeneratorDriverState>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T02] (  2,  2   )     ref  ->   r8         single-def "field V02._source (fldOffset=0x0)" P-INDEP
-;  V06 tmp2         [V06    ] (  2,  4   )  struct (80) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.GeneratorDriverState>
 ;
-; Lcl frame size = 208
+; Lcl frame size = 128
 
 G_M23079_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 208
+       sub      rsp, 128
        xorps    xmm4, xmm4
        movaps   xmmword ptr [rsp+0x30], xmm4
-       mov      rax, -144
-       movaps   xmmword ptr [rsp+rax+0xD0], xmm4
-       movaps   xmmword ptr [rsp+rax+0xE0], xmm4
-       movaps   xmmword ptr [rsp+rax+0xF0], xmm4
-       add      rax, 48
-       jne      SHORT  -5 instr
+       movaps   xmmword ptr [rsp+0x40], xmm4
+       movaps   xmmword ptr [rsp+0x50], xmm4
+       movaps   xmmword ptr [rsp+0x60], xmm4
+       movaps   xmmword ptr [rsp+0x70], xmm4
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      r9, rdx
        ; gcrRegs +[r9]
-						;; size=62 bbWeight=1 PerfScore 11.58
+						;; size=42 bbWeight=1 PerfScore 12.08
 G_M23079_IG02:        ; bbWeight=1, gcrefRegs=0308 {rbx r8 r9}, byrefRegs=0000 {}, byref
        ; gcrRegs +[r8]
        mov      gword ptr [rsp+0x20], r8
        ; gcr arg write
-       lea      rdx, [rsp+0x80]
+       lea      rdx, [rsp+0x30]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      r8, r9
@@ -46,13 +43,6 @@ G_M23079_IG02:        ; bbWeight=1, gcrefRegs=0308 {rbx r8 r9}, byrefRegs=0000 {
        call     [<unknown method>]
        ; gcrRegs -[rcx r8-r9]
        ; gcr arg pop 0
-       lea      rcx, bword ptr [rsp+0x30]
-       ; byrRegs +[rcx]
-       lea      rdx, [rsp+0x80]
-       mov      r8d, 80
-       call     [CORINFO_HELP_BULK_WRITEBARRIER]
-       ; byrRegs -[rcx]
-       ; gcr arg pop 0
        lea      rdx, [rsp+0x30]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -62,14 +52,14 @@ G_M23079_IG02:        ; bbWeight=1, gcrefRegs=0308 {rbx r8 r9}, byrefRegs=0000 {
        ; gcrRegs -[rcx rbx] +[rax]
        ; gcr arg pop 0
        nop      
-						;; size=74 bbWeight=1 PerfScore 17.00
+						;; size=46 bbWeight=1 PerfScore 12.75
 G_M23079_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 208
+       add      rsp, 128
        pop      rbx
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 145, prolog size 56, PerfScore 30.33, instruction count 31, allocated bytes for code 145 (MethodHash=0fc5a5d8) for method Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
+; Total bytes of code 97, prolog size 36, PerfScore 26.58, instruction count 25, allocated bytes for code 97 (MethodHash=0fc5a5d8) for method Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -78,10 +68,9 @@ Unwind Info:
   Version           : 1
   Flags             : 0x00
   SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 3
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 26 * 8 = 208 = 0x000D0
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 15 * 8 + 8 = 128 = 0x80
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-12 (-26.67%) : 226716.dasm - System.CommandLine.Help.HelpBuilder:g__IsOptional|16_0(System.CommandLine.CliArgument):ubyte (FullOpts)
@@ -10,17 +10,14 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->  rcx         class-hnd single-def <System.CommandLine.CliArgument>
-;  V01 loc0         [V01    ] (  2,  2   )  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.CommandLine.ArgumentArity>
+;  V01 loc0         [V01,T01] (  2,  2   )  struct (16) [rsp+0x28]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <System.CommandLine.ArgumentArity>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 56
 
 G_M2446_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 56
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
-       mov      qword ptr [rsp+0x30], rax
-						;; size=16 bbWeight=1 PerfScore 2.50
+						;; size=4 bbWeight=1 PerfScore 0.25
 G_M2446_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        lea      rdx, [rsp+0x28]
@@ -37,7 +34,7 @@ G_M2446_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 45, prolog size 16, PerfScore 13.50, instruction count 12, allocated bytes for code 45 (MethodHash=dfa0f671) for method System.CommandLine.Help.HelpBuilder:<FormatArgumentUsage>g__IsOptional|16_0(System.CommandLine.CliArgument):ubyte (FullOpts)
+; Total bytes of code 33, prolog size 4, PerfScore 11.25, instruction count 9, allocated bytes for code 33 (MethodHash=dfa0f671) for method System.CommandLine.Help.HelpBuilder:<FormatArgumentUsage>g__IsOptional|16_0(System.CommandLine.CliArgument):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
-15 (-25.00%) : 92774.dasm - Microsoft.Diagnostics.Tracing.Stacks.Formats.ChromiumStackSourceWriter+<>c:b__2_0(System.Collections.Generic.KeyValuePair`2[Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper+ThreadInfo,System.Collections.Generic.IReadOnlyList`1[Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper+ProfileEvent]]):double:this (FullOpts)
@@ -11,7 +11,7 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Microsoft.Diagnostics.Tracing.Stacks.Formats.ChromiumStackSourceWriter+<>c>
 ;  V01 arg1         [V01,T00] (  3,  6   )   byref  ->  rcx         ld-addr-op single-def
-;  V02 loc0         [V02    ] (  2,  2   )  struct (24) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper+ProfileEvent>
+;  V02 loc0         [V02,T02] (  2,  2   )  struct (24) [rsp+0x20]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper+ProfileEvent>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T01] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
 ;
@@ -19,13 +19,9 @@
 
 G_M29351_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 56
-       xorps    xmm4, xmm4
-       movaps   xmmword ptr [rsp+0x20], xmm4
-       xor      eax, eax
-       mov      qword ptr [rsp+0x30], rax
        mov      rcx, rdx
        ; byrRegs +[rcx]
-						;; size=22 bbWeight=1 PerfScore 4.08
+						;; size=7 bbWeight=1 PerfScore 0.50
 G_M29351_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
        mov      rdx, qword ptr [(reloc)]      ; System.Collections.Generic.KeyValuePair`2[Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper+ThreadInfo,System.Collections.Generic.IReadOnlyList`1[Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper+ProfileEvent]]
        call     [<unknown method>]
@@ -45,7 +41,7 @@ G_M29351_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 60, prolog size 19, PerfScore 17.08, instruction count 14, allocated bytes for code 60 (MethodHash=3a378d58) for method Microsoft.Diagnostics.Tracing.Stacks.Formats.ChromiumStackSourceWriter+<>c:<WriteToFile>b__2_0(System.Collections.Generic.KeyValuePair`2[Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper+ThreadInfo,System.Collections.Generic.IReadOnlyList`1[Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper+ProfileEvent]]):double:this (FullOpts)
+; Total bytes of code 45, prolog size 4, PerfScore 13.50, instruction count 10, allocated bytes for code 45 (MethodHash=3a378d58) for method Microsoft.Diagnostics.Tracing.Stacks.Formats.ChromiumStackSourceWriter+<>c:<WriteToFile>b__2_0(System.Collections.Generic.KeyValuePair`2[Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper+ThreadInfo,System.Collections.Generic.IReadOnlyList`1[Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper+ProfileEvent]]):double:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
+41 (+10.10%) : 256549.dasm - System.Drawing.ColorConverterCommon:PossibleKnownColor(System.Drawing.Color):System.Drawing.Color (FullOpts)
@@ -9,54 +9,56 @@
 ; 0 inlinees with PGO data; 5 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 RetBuf       [V00,T05] (  6,  6   )   byref  ->  [rbp+0x10]  EH-live single-def
-;  V01 arg0         [V01,T03] (  6, 12   )   byref  ->  rsi         ld-addr-op single-def
-;  V02 loc0         [V02,T04] (  2,  9   )     int  ->  rdi        
-;  V03 loc1         [V03    ] (  5, 19   )  struct (40) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.String,System.Drawing.Color]>
-;  V04 loc2         [V04    ] (  5, 25   )  struct (24) [rbp-0x60]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Drawing.Color>
-;  V05 loc3         [V05,T11] (  2,  2   )  struct (24) [rbp-0x78]  do-not-enreg[SZ] must-init EH-live <System.Drawing.Color>
+;  V00 RetBuf       [V00,T05] (  7,  7   )   byref  ->  [rbp+0x10]  EH-live single-def
+;  V01 arg0         [V01,T04] (  6, 12   )   byref  ->  rsi         ld-addr-op single-def
+;  V02 loc0         [V02,T06] (  2,  9   )     int  ->  rdi        
+;  V03 loc1         [V03    ] (  5, 19   )  struct (40) [rbp-0x50]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg ld-addr-op <System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.String,System.Drawing.Color]>
+;  V04 loc2         [V04,T01] (  5, 25   )  struct (24) [rbp-0x68]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.Drawing.Color>
+;  V05 loc3         [V05,T12] (  2,  2   )  struct (24) [rbp-0x80]  do-not-enreg[SZ] must-init EH-live <System.Drawing.Color>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07,T06] (  4,  4   )    long  ->  rdi         "Inline return value spill temp"
-;  V08 tmp2         [V08,T01] (  4, 20   )    long  ->  r14         "Inline return value spill temp"
+;  V07 tmp1         [V07,T07] (  4,  4   )    long  ->  rdi         "Inline return value spill temp"
+;  V08 tmp2         [V08,T03] (  4, 20   )    long  ->  r15         "Inline return value spill temp"
 ;* V09 tmp3         [V09    ] (  0,  0   )     ref  ->  zero-ref    "field V01.name (fldOffset=0x0)" P-INDEP
 ;* V10 tmp4         [V10    ] (  0,  0   )    long  ->  zero-ref    "field V01.value (fldOffset=0x8)" P-INDEP
 ;* V11 tmp5         [V11    ] (  0,  0   )   short  ->  zero-ref    "field V01.knownColor (fldOffset=0x10)" P-INDEP
 ;* V12 tmp6         [V12    ] (  0,  0   )   short  ->  zero-ref    "field V01.state (fldOffset=0x12)" P-INDEP
-;* V13 tmp7         [V13    ] (  0,  0   )  struct (24) zero-ref    "Promoted implicit byref" <System.Drawing.Color>
-;  V14 tmp8         [V14,T07] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V15 tmp9         [V15,T08] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V16 tmp10        [V16,T09] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V17 PSPSym       [V17,T12] (  1,  1   )    long  ->  [rbp-0x80]  do-not-enreg[V] "PSPSym"
-;  V18 cse0         [V18,T10] (  3,  3   )     int  ->  rcx         "CSE #01: aggressive"
-;  V19 cse1         [V19,T02] (  3, 20   )     int  ->  rcx         "CSE #03: aggressive"
-;  V20 cse2         [V20,T00] (  6, 27   )    long  ->  r14         multi-def "CSE #02: aggressive"
+;  V13 tmp7         [V13,T02] (  4, 21   )   short  ->  r14         "V04.[018..020)"
+;  V14 tmp8         [V14,T13] (  2,  2   )   short  ->  [rbp-0x84]  do-not-enreg[Z] EH-live "V05.[018..020)"
+;* V15 tmp9         [V15    ] (  0,  0   )  struct (24) zero-ref    "Promoted implicit byref" <System.Drawing.Color>
+;  V16 tmp10        [V16,T08] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
+;  V17 tmp11        [V17,T09] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
+;  V18 tmp12        [V18,T10] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
+;  V19 PSPSym       [V19,T14] (  1,  1   )    long  ->  [rbp-0x90]  do-not-enreg[V] "PSPSym"
+;  V20 cse0         [V20,T11] (  3,  3   )     int  ->  rcx         "CSE #01: aggressive"
+;  V21 cse1         [V21,T00] (  6, 27   )    long  ->  r14         multi-def "CSE #02: aggressive"
 ;
-; Lcl frame size = 128
+; Lcl frame size = 136
 
 G_M37917_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
+       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 128
-       lea      rbp, [rsp+0xA0]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x78], rax
+       sub      rsp, 136
+       lea      rbp, [rsp+0xB0]
        xorps    xmm4, xmm4
+       movaps   xmmword ptr [rbp-0x80], xmm4
        movaps   xmmword ptr [rbp-0x70], xmm4
        movaps   xmmword ptr [rbp-0x60], xmm4
        movaps   xmmword ptr [rbp-0x50], xmm4
        movaps   xmmword ptr [rbp-0x40], xmm4
-       movaps   xmmword ptr [rbp-0x30], xmm4
-       mov      qword ptr [rbp-0x80], rsp
+       xor      eax, eax
+       mov      qword ptr [rbp-0x30], rax
+       mov      qword ptr [rbp-0x90], rsp
        mov      bword ptr [rbp+0x10], rcx
        ; GC ptr vars +{V00}
        mov      rbx, rcx
        ; byrRegs +[rbx]
        mov      rsi, rdx
        ; byrRegs +[rsi]
-						;; size=64 bbWeight=1 PerfScore 19.83
+						;; size=69 bbWeight=1 PerfScore 20.83
 G_M37917_IG02:        ; bbWeight=1, gcVars=0000000000000020 {V00}, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, gcvars, byref, isz
        movsx    rcx, word  ptr [rsi+0x12]
        test     cl, 2
@@ -97,7 +99,7 @@ G_M37917_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi},
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       lea      rdx, [rbp-0x48]
+       lea      rdx, [rbp-0x50]
        lea      r11, [(reloc)]      ; function address
        cmp      dword ptr [rcx], ecx
        call     [r11]<unknown method>
@@ -106,80 +108,87 @@ G_M37917_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi},
        nop      
 						;; size=56 bbWeight=1 PerfScore 25.75
 G_M37917_IG06:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
-       lea      rcx, [rbp-0x48]
+       lea      rcx, [rbp-0x50]
        mov      r14, qword ptr [(reloc)]      ; System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.String,System.Drawing.Color]
        mov      rdx, r14
        call     [<unknown method>]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M37917_IG16
-       lea      rcx, [rbp-0x48]
-       lea      rdx, [rbp-0x60]
+       je       G_M37917_IG17
+       lea      rcx, [rbp-0x50]
+       lea      rdx, [rbp-0x68]
        mov      r8, r14
        call     [<unknown method>]
        ; gcr arg pop 0
-       movsx    rcx, word  ptr [rbp-0x4E]
-       test     cl, 2
+       movsx    r14, word  ptr [rbp-0x56]
+       test     r14b, 2
        je       SHORT G_M37917_IG08
-						;; size=51 bbWeight=8 PerfScore 124.00
+						;; size=56 bbWeight=8 PerfScore 124.00
 G_M37917_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
-       mov      r14, qword ptr [rbp-0x58]
+       mov      r15, qword ptr [rbp-0x60]
        jmp      SHORT G_M37917_IG10
 						;; size=6 bbWeight=4 PerfScore 12.00
 G_M37917_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
-       test     cl, 1
+       test     r14b, 1
        je       SHORT G_M37917_IG09
-       movsx    rcx, word  ptr [rbp-0x50]
+       movsx    rcx, word  ptr [rbp-0x58]
        call     [System.Drawing.KnownColorTable:KnownColorToArgb(int):uint]
        ; gcr arg pop 0
-       mov      r14d, eax
+       mov      r15d, eax
        jmp      SHORT G_M37917_IG10
-						;; size=21 bbWeight=4 PerfScore 38.00
+						;; size=22 bbWeight=4 PerfScore 38.00
 G_M37917_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
-       xor      r14d, r14d
+       xor      r15d, r15d
 						;; size=3 bbWeight=4 PerfScore 1.00
 G_M37917_IG10:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
-       cmp      r14d, edi
+       cmp      r15d, edi
        jne      SHORT G_M37917_IG06
 						;; size=5 bbWeight=8 PerfScore 10.00
 G_M37917_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, nogc
        ; byrRegs -[rsi]
-       movups   xmm0, xmmword ptr [rbp-0x60]
-       movups   xmmword ptr [rbp-0x78], xmm0
-       mov      rcx, qword ptr [rbp-0x50]
-       mov      qword ptr [rbp-0x68], rcx
+       movups   xmm0, xmmword ptr [rbp-0x68]
+       movups   xmmword ptr [rbp-0x80], xmm0
+       mov      rcx, qword ptr [rbp-0x58]
+       mov      qword ptr [rbp-0x70], rcx
 						;; size=16 bbWeight=1 PerfScore 6.00
-G_M37917_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M37917_IG12:        ; bbWeight=1, extend
+       mov      dword ptr [rbp-0x84], r14d
+						;; size=7 bbWeight=1 PerfScore 1.00
+G_M37917_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      rcx, rsp
 						;; size=3 bbWeight=1 PerfScore 0.25
-G_M37917_IG13:        ; bbWeight=1, nogc, extend
-       call     G_M37917_IG18
+G_M37917_IG14:        ; bbWeight=1, nogc, extend
+       call     G_M37917_IG19
        ; byrRegs -[rbx]
        nop      
 						;; size=6 bbWeight=1 PerfScore 1.25
-G_M37917_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M37917_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rdi, bword ptr [rbp+0x10]
        ; byrRegs +[rdi]
-       lea      rsi, bword ptr [rbp-0x78]
+       lea      rsi, bword ptr [rbp-0x80]
        ; byrRegs +[rsi]
        call     [CORINFO_HELP_ASSIGN_BYREF]
        movsq    
        movsq    
-       mov      rax, bword ptr [rbp+0x10]
+       movsx    rax, word  ptr [rbp-0x84]
+       mov      rdi, bword ptr [rbp+0x10]
+       mov      word  ptr [rdi+0x12], ax
+       mov      rax, rdi
        ; byrRegs +[rax]
-						;; size=22 bbWeight=1 PerfScore 7.50
-G_M37917_IG15:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 128
+						;; size=37 bbWeight=1 PerfScore 11.75
+G_M37917_IG16:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 136
        pop      rbx
        pop      rsi
        pop      rdi
        pop      r14
+       pop      r15
        pop      rbp
        ret      
-						;; size=14 bbWeight=1 PerfScore 3.75
-G_M37917_IG16:        ; bbWeight=1, gcVars=0000000000000020 {V00}, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, gcvars, byref
+						;; size=16 bbWeight=1 PerfScore 4.25
+G_M37917_IG17:        ; bbWeight=1, gcVars=0000000000000020 {V00}, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, gcvars, byref
        ; byrRegs -[rax rdi] +[rbx]
-       lea      rcx, [rbp-0x48]
+       lea      rcx, [rbp-0x50]
        mov      rdx, r14
        call     [<unknown method>]
        ; gcr arg pop 0
@@ -191,46 +200,49 @@ G_M37917_IG16:        ; bbWeight=1, gcVars=0000000000000020 {V00}, gcrefRegs=000
        mov      rax, rbx
        ; byrRegs +[rax]
 						;; size=29 bbWeight=1 PerfScore 9.25
-G_M37917_IG17:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 128
+G_M37917_IG18:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 136
        pop      rbx
        pop      rsi
        pop      rdi
        pop      r14
+       pop      r15
        pop      rbp
        ret      
-						;; size=14 bbWeight=1 PerfScore 3.75
-G_M37917_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+						;; size=16 bbWeight=1 PerfScore 4.25
+G_M37917_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        ; byrRegs -[rax rbx rsi rdi]
        push     rbp
+       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 48
+       sub      rsp, 40
        mov      rbp, qword ptr [rcx+0x20]
        mov      qword ptr [rsp+0x20], rbp
-       lea      rbp, [rbp+0xA0]
-						;; size=26 bbWeight=1 PerfScore 8.75
-G_M37917_IG19:        ; bbWeight=1, gcVars=0000000000000020 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       lea      rcx, [rbp-0x48]
+       lea      rbp, [rbp+0xB0]
+						;; size=28 bbWeight=1 PerfScore 9.75
+G_M37917_IG20:        ; bbWeight=1, gcVars=0000000000000020 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+       lea      rcx, [rbp-0x50]
        mov      r14, qword ptr [(reloc)]      ; System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.String,System.Drawing.Color]
        mov      rdx, r14
        call     [<unknown method>]
        ; gcr arg pop 0
...
+23 (+12.11%) : 245573.dasm - System.Formats.Cbor.CborWriter:WriteBigInteger(System.Numerics.BigInteger):this (FullOpts)
@@ -10,22 +10,24 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rsi         this class-hnd single-def <System.Formats.Cbor.CborWriter>
-;  V01 arg1         [V01,T00] (  5,  8   )   byref  ->  rbx         ld-addr-op single-def
-;  V02 loc0         [V02,T02] (  3,  3   )   ubyte  ->  rdi         single-def
-;  V03 loc1         [V03,T03] (  2,  2   )     ref  ->  rbx         class-hnd single-def <ubyte[]>
+;  V01 arg1         [V01,T00] (  7, 10   )   byref  ->  rbx         ld-addr-op single-def
+;  V02 loc0         [V02,T03] (  3,  3   )   ubyte  ->  rdi         single-def
+;  V03 loc1         [V03,T06] (  2,  2   )     ref  ->  rbx         class-hnd single-def <ubyte[]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05    ] (  3,  2   )  struct (16) [rsp+0x50]  do-not-enreg[XS] must-init addr-exposed <System.Numerics.BigInteger>
+;  V05 tmp1         [V05,T02] (  5,  3   )  struct (16) [rsp+0x50]  do-not-enreg[HS] must-init hidden-struct-arg <System.Numerics.BigInteger>
 ;* V06 tmp2         [V06    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V07 tmp3         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V08 tmp4         [V08,T04] (  2,  2   )    long  ->  rdx        
+;  V08 tmp4         [V08,T07] (  2,  2   )    long  ->  rdx        
 ;  V09 tmp5         [V09    ] (  2,  2   )  struct (16) [rsp+0x40]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "spilled call-like call argument" <System.Numerics.BigInteger>
-;  V10 tmp6         [V10    ] (  2,  4   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Numerics.BigInteger>
+;  V10 tmp6         [V10    ] (  4,  8   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Numerics.BigInteger>
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[] "field V01._bits (fldOffset=0x0)" P-DEP
 ;* V12 tmp8         [V12    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[] "field V01._sign (fldOffset=0x8)" P-DEP
-;  V13 tmp9         [V13    ] (  2,  4   )     ref  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V10._bits (fldOffset=0x0)" P-DEP
-;  V14 tmp10        [V14    ] (  2,  4   )     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V10._sign (fldOffset=0x8)" P-DEP
-;* V15 tmp11        [V15    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "Promoted implicit byref" <System.Numerics.BigInteger>
-;  V16 tmp12        [V16    ] (  2,  2   )  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Numerics.BigInteger>
+;  V13 tmp9         [V13    ] (  3,  5   )     ref  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V10._bits (fldOffset=0x0)" P-DEP
+;  V14 tmp10        [V14    ] (  3,  5   )     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V10._sign (fldOffset=0x8)" P-DEP
+;  V15 tmp11        [V15,T04] (  3,  2   )     ref  ->  rcx         "V05.[000..008)"
+;  V16 tmp12        [V16,T05] (  3,  2   )     int  ->  rdx         "V05.[008..012)"
+;* V17 tmp13        [V17    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "Promoted implicit byref" <System.Numerics.BigInteger>
+;  V18 tmp14        [V18    ] (  2,  2   )  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Numerics.BigInteger>
 ;
 ; Lcl frame size = 96
 
@@ -72,19 +74,27 @@ G_M54633_IG05:        ; bbWeight=0.50, isz, extend
        call     [<unknown method>]
        ; byrRegs -[rbx]
        ; gcr arg pop 0
+       mov      rcx, gword ptr [rsp+0x50]
+       ; gcrRegs +[rcx]
+       mov      edx, dword ptr [rsp+0x58]
        jmp      SHORT G_M54633_IG07
-						;; size=23 bbWeight=0.50 PerfScore 3.25
-G_M54633_IG06:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, nogc
+						;; size=32 bbWeight=0.50 PerfScore 4.25
+G_M54633_IG06:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs -[rcx]
        ; byrRegs +[rbx]
-       movups   xmm0, xmmword ptr [rbx]
-       movups   xmmword ptr [rsp+0x50], xmm0
-						;; size=8 bbWeight=0.50 PerfScore 2.50
-G_M54633_IG07:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, nogc
+       mov      rcx, gword ptr [rbx]
+       ; gcrRegs +[rcx]
+       mov      edx, dword ptr [rbx+0x08]
+       mov      r8d, dword ptr [rbx+0x0C]
+       mov      dword ptr [rsp+0x5C], r8d
+						;; size=15 bbWeight=0.50 PerfScore 3.50
+G_M54633_IG07:        ; bbWeight=1, gcrefRegs=0042 {rcx rsi}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
-       movups   xmm0, xmmword ptr [rsp+0x50]
-       movups   xmmword ptr [rsp+0x30], xmm0
-						;; size=10 bbWeight=1 PerfScore 4.00
-G_M54633_IG08:        ; bbWeight=1, extend
+       mov      gword ptr [rsp+0x30], rcx
+       mov      dword ptr [rsp+0x38], edx
+       mov      ecx, dword ptr [rsp+0x5C]
+       ; gcrRegs -[rcx]
+       mov      dword ptr [rsp+0x3C], ecx
        lea      rcx, [rsp+0x30]
        mov      edx, 1
        mov      r8d, 1
@@ -110,8 +120,8 @@ G_M54633_IG08:        ; bbWeight=1, extend
        ; gcrRegs -[rcx rdx rbx rsi]
        ; gcr arg pop 0
        nop      
-						;; size=63 bbWeight=1 PerfScore 12.25
-G_M54633_IG09:        ; bbWeight=1, epilog, nogc, extend
+						;; size=80 bbWeight=1 PerfScore 16.25
+G_M54633_IG08:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 96
        pop      rbx
        pop      rsi
@@ -119,7 +129,7 @@ G_M54633_IG09:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 190, prolog size 30, PerfScore 46.46, instruction count 51, allocated bytes for code 190 (MethodHash=68a92a96) for method System.Formats.Cbor.CborWriter:WriteBigInteger(System.Numerics.BigInteger):this (FullOpts)
+; Total bytes of code 213, prolog size 30, PerfScore 48.46, instruction count 57, allocated bytes for code 213 (MethodHash=68a92a96) for method System.Formats.Cbor.CborWriter:WriteBigInteger(System.Numerics.BigInteger):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
+49 (+15.51%) : 261701.dasm - System.Threading.Channels.ChannelWriter`1[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
@@ -8,50 +8,52 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  5,  5   )     ref  ->  [rbp+0x10]  this class-hnd EH-live single-def <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
-;  V01 RetBuf       [V01,T01] (  4,  4   )   byref  ->  [rbp+0x18]  EH-live single-def
-;  V02 arg1         [V02,T02] (  4,  4   )     ref  ->  rsi         class-hnd single-def <System.__Canon>
+;  V00 this         [V00,T01] (  5,  5   )     ref  ->  [rbp+0x10]  this class-hnd EH-live single-def <System.Threading.Channels.ChannelWriter`1[System.__Canon]>
+;  V01 RetBuf       [V01,T02] (  4,  4   )   byref  ->  [rbp+0x18]  EH-live single-def
+;  V02 arg1         [V02,T03] (  4,  4   )     ref  ->  rsi         class-hnd single-def <System.__Canon>
 ;  V03 arg2         [V03    ] (  6,  6   )  struct ( 8) [rbp+0x28]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.Threading.CancellationToken>
-;  V04 loc0         [V04    ] (  4,  3   )  struct (16) [rbp-0x38]  do-not-enreg[SB] must-init ld-addr-op <System.Threading.Tasks.ValueTask>
+;  V04 loc0         [V04    ] (  7,  6   )  struct (16) [rbp-0x40]  do-not-enreg[SB] must-init ld-addr-op <System.Threading.Tasks.ValueTask>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  3,  6   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask>
-;  V07 tmp2         [V07    ] (  4,  4   )  struct (16) [rbp-0x58]  do-not-enreg[XS] must-init addr-exposed <System.Threading.Tasks.ValueTask>
-;  V08 tmp3         [V08,T09] (  2,  0   )     ref  ->  rcx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-;  V09 tmp4         [V09    ] (  3,  0   )  struct (16) [rbp-0x68]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask>
+;  V06 tmp1         [V06    ] (  6, 12   )  struct (16) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask>
+;  V07 tmp2         [V07,T00] (  7,  7   )  struct (16) [rbp-0x60]  do-not-enreg[HS] must-init hidden-struct-arg <System.Threading.Tasks.ValueTask>
+;  V08 tmp3         [V08,T13] (  2,  0   )     ref  ->  rcx         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V09 tmp4         [V09    ] (  3,  0   )  struct (16) [rbp-0x70]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask>
 ;  V10 tmp5         [V10    ] (  6,  6   )     ref  ->  [rbp+0x28]  do-not-enreg[X] addr-exposed single-def "field V03._source (fldOffset=0x0)" P-DEP
-;  V11 tmp6         [V11,T05] (  4,  3   )     ref  ->  [rbp-0x38]  do-not-enreg[H] EH-live "field V04._obj (fldOffset=0x0)" P-DEP
-;  V12 tmp7         [V12,T06] (  4,  3   )   short  ->  [rbp-0x30]  do-not-enreg[H] EH-live "field V04._token (fldOffset=0x8)" P-DEP
-;  V13 tmp8         [V13,T07] (  4,  3   )   ubyte  ->  [rbp-0x2E]  do-not-enreg[H] EH-live "field V04._continueOnCapturedContext (fldOffset=0xa)" P-DEP
-;  V14 tmp9         [V14    ] (  3,  6   )     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V06._obj (fldOffset=0x0)" P-DEP
-;  V15 tmp10        [V15    ] (  3,  6   )   short  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V06._token (fldOffset=0x8)" P-DEP
-;  V16 tmp11        [V16    ] (  3,  6   )   ubyte  ->  [rbp-0x3E]  do-not-enreg[X] addr-exposed "field V06._continueOnCapturedContext (fldOffset=0xa)" P-DEP
-;  V17 tmp12        [V17    ] (  3,  0   )     ref  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed "field V09._obj (fldOffset=0x0)" P-DEP
-;  V18 tmp13        [V18    ] (  3,  0   )   short  ->  [rbp-0x60]  do-not-enreg[X] addr-exposed "field V09._token (fldOffset=0x8)" P-DEP
-;  V19 tmp14        [V19    ] (  3,  0   )   ubyte  ->  [rbp-0x5E]  do-not-enreg[X] addr-exposed "field V09._continueOnCapturedContext (fldOffset=0xa)" P-DEP
-;  V20 tmp15        [V20,T04] (  2,  4   )    long  ->  rcx         "argument with side effect"
-;  V21 tmp16        [V21,T03] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V22 tmp17        [V22,T10] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V23 PSPSym       [V23,T08] (  1,  1   )    long  ->  [rbp-0x70]  do-not-enreg[V] "PSPSym"
+;  V11 tmp6         [V11,T04] (  5,  4   )     ref  ->  [rbp-0x40]  do-not-enreg[Z] EH-live "field V04._obj (fldOffset=0x0)" P-DEP
+;  V12 tmp7         [V12,T05] (  5,  4   )   short  ->  [rbp-0x38]  do-not-enreg[Z] EH-live "field V04._token (fldOffset=0x8)" P-DEP
+;  V13 tmp8         [V13,T06] (  5,  4   )   ubyte  ->  [rbp-0x36]  do-not-enreg[Z] EH-live "field V04._continueOnCapturedContext (fldOffset=0xa)" P-DEP
+;  V14 tmp9         [V14    ] (  4,  7   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V06._obj (fldOffset=0x0)" P-DEP
+;  V15 tmp10        [V15    ] (  4,  7   )   short  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V06._token (fldOffset=0x8)" P-DEP
+;  V16 tmp11        [V16    ] (  4,  7   )   ubyte  ->  [rbp-0x46]  do-not-enreg[X] addr-exposed "field V06._continueOnCapturedContext (fldOffset=0xa)" P-DEP
+;  V17 tmp12        [V17    ] (  3,  0   )     ref  ->  [rbp-0x70]  do-not-enreg[X] addr-exposed "field V09._obj (fldOffset=0x0)" P-DEP
+;  V18 tmp13        [V18    ] (  3,  0   )   short  ->  [rbp-0x68]  do-not-enreg[X] addr-exposed "field V09._token (fldOffset=0x8)" P-DEP
+;  V19 tmp14        [V19    ] (  3,  0   )   ubyte  ->  [rbp-0x66]  do-not-enreg[X] addr-exposed "field V09._continueOnCapturedContext (fldOffset=0xa)" P-DEP
+;  V20 tmp15        [V20,T07] (  4,  4   )     ref  ->  rsi         "V07.[000..008)"
+;  V21 tmp16        [V21,T08] (  4,  4   )   short  ->  rdi         "V07.[008..010)"
+;  V22 tmp17        [V22,T09] (  4,  4   )   ubyte  ->  r15         "V07.[010..011)"
+;  V23 tmp18        [V23,T11] (  2,  4   )    long  ->  rcx         "argument with side effect"
+;  V24 tmp19        [V24,T10] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
+;  V25 tmp20        [V25,T14] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V26 PSPSym       [V26,T12] (  1,  1   )    long  ->  [rbp-0x80]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 112
+; Lcl frame size = 120
 
 G_M40388_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rbp
+       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 112
-       lea      rbp, [rsp+0x90]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x68], rax
+       sub      rsp, 120
+       lea      rbp, [rsp+0xA0]
        xorps    xmm4, xmm4
+       movaps   xmmword ptr [rbp-0x70], xmm4
        movaps   xmmword ptr [rbp-0x60], xmm4
        movaps   xmmword ptr [rbp-0x50], xmm4
        movaps   xmmword ptr [rbp-0x40], xmm4
-       mov      qword ptr [rbp-0x30], rax
-       mov      qword ptr [rbp-0x70], rsp
-       mov      qword ptr [rbp-0x28], rcx
+       mov      qword ptr [rbp-0x80], rsp
+       mov      qword ptr [rbp-0x30], rcx
        mov      gword ptr [rbp+0x10], rcx
        ; GC ptr vars +{V00}
        mov      bword ptr [rbp+0x18], rdx
@@ -63,8 +65,8 @@ G_M40388_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ; byrRegs +[r14]
        mov      rsi, r8
        ; gcrRegs +[rsi]
-						;; size=72 bbWeight=1 PerfScore 20.08
-G_M40388_IG02:        ; bbWeight=1, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0048 {rbx rsi}, byrefRegs=4000 {r14}, gcvars, byref, isz
+						;; size=68 bbWeight=1 PerfScore 20.83
+G_M40388_IG02:        ; bbWeight=1, gcVars=0000000000000006 {V00 V01}, gcrefRegs=0048 {rbx rsi}, byrefRegs=4000 {r14}, gcvars, byref, isz
        lea      rcx, [rbp+0x28]
        call     [<unknown method>]
        ; gcr arg pop 0
@@ -81,7 +83,7 @@ G_M40388_IG02:        ; bbWeight=1, gcVars=0000000000000003 {V00 V01}, gcrefRegs
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M40388_IG06
-       lea      rdx, [rbp-0x58]
+       lea      rdx, [rbp-0x60]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      r8, rsi
@@ -91,11 +93,16 @@ G_M40388_IG02:        ; bbWeight=1, gcVars=0000000000000003 {V00 V01}, gcrefRegs
        call     [System.Threading.Channels.ChannelWriter`1[System.__Canon]:WriteAsyncCore(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this]
        ; gcrRegs -[rcx rsi r8-r9]
        ; gcr arg pop 0
+       mov      rsi, gword ptr [rbp-0x60]
+       ; gcrRegs +[rsi]
+       movsx    rdi, word  ptr [rbp-0x58]
+       movzx    r15, byte  ptr [rbp-0x56]
        jmp      SHORT G_M40388_IG07
-						;; size=58 bbWeight=1 PerfScore 20.00
+						;; size=72 bbWeight=1 PerfScore 25.00
 G_M40388_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=4000 {r14}, byref
+       ; gcrRegs -[rsi]
        xorps    xmm0, xmm0
-       movups   xmmword ptr [rbp-0x48], xmm0
+       movups   xmmword ptr [rbp-0x50], xmm0
        mov      rcx, qword ptr [rbx]
        call     [CORINFO_HELP_READYTORUN_GENERIC_HANDLE]
        ; gcr arg pop 0
@@ -107,95 +114,112 @@ G_M40388_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=4000 {r14},
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       lea      rcx, [rbp-0x48]
+       lea      rcx, [rbp-0x50]
        call     [<unknown method>]
        ; gcrRegs -[rax rdx]
        ; gcr arg pop 0
-						;; size=42 bbWeight=1 PerfScore 14.33
+       mov      rsi, gword ptr [rbp-0x50]
+       ; gcrRegs +[rsi]
+       movsx    rdi, word  ptr [rbp-0x48]
+       movzx    r15, byte  ptr [rbp-0x46]
+						;; size=56 bbWeight=1 PerfScore 19.33
 G_M40388_IG04:        ; bbWeight=1, nogc, extend
-       movups   xmm0, xmmword ptr [rbp-0x48]
-       movups   xmmword ptr [rbp-0x58], xmm0
+       movups   xmm0, xmmword ptr [rbp-0x50]
+       movups   xmmword ptr [rbp-0x60], xmm0
 						;; size=8 bbWeight=1 PerfScore 4.00
 G_M40388_IG05:        ; bbWeight=1, isz, extend
        jmp      SHORT G_M40388_IG07
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M40388_IG06:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=4000 {r14}, byref
+       ; gcrRegs -[rsi]
        xorps    xmm0, xmm0
-       movups   xmmword ptr [rbp-0x38], xmm0
+       movups   xmmword ptr [rbp-0x40], xmm0
+       xor      rsi, rsi
+       ; gcrRegs +[rsi]
+       xor      edi, edi
+       xor      r15d, r15d
        xorps    xmm0, xmm0
-       movups   xmmword ptr [rbp-0x58], xmm0
-						;; size=14 bbWeight=1 PerfScore 2.67
-G_M40388_IG07:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=4000 {r14}, byref, nogc
-       movups   xmm0, xmmword ptr [rbp-0x58]
-       movups   xmmword ptr [rbp-0x38], xmm0
+       movups   xmmword ptr [rbp-0x60], xmm0
+						;; size=21 bbWeight=1 PerfScore 3.42
+G_M40388_IG07:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=4000 {r14}, byref, nogc
+       movups   xmm0, xmmword ptr [rbp-0x60]
+       movups   xmmword ptr [rbp-0x40], xmm0
 						;; size=8 bbWeight=1 PerfScore 4.00
-G_M40388_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rbx]
+G_M40388_IG08:        ; bbWeight=1, extend
+       mov      gword ptr [rbp-0x40], rsi
+       mov      word  ptr [rbp-0x38], di
+       mov      byte  ptr [rbp-0x36], r15b
+						;; size=12 bbWeight=1 PerfScore 3.00
+G_M40388_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx rsi]
        ; byrRegs -[r14]
        mov      rdi, bword ptr [rbp+0x18]
        ; byrRegs +[rdi]
-       lea      rsi, bword ptr [rbp-0x38]
+       lea      rsi, bword ptr [rbp-0x40]
        ; byrRegs +[rsi]
        call     [CORINFO_HELP_ASSIGN_BYREF]
        movsq    
        mov      rax, bword ptr [rbp+0x18]
        ; byrRegs +[rax]
 						;; size=20 bbWeight=1 PerfScore 6.50
-G_M40388_IG09:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 112
+G_M40388_IG10:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 120
        pop      rbx
        pop      rsi
        pop      rdi
        pop      r14
+       pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=1 PerfScore 3.75
-G_M40388_IG10:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+						;; size=13 bbWeight=1 PerfScore 4.25
+G_M40388_IG11:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, funclet prolog, nogc
        ; gcrRegs +[rdx]
        ; byrRegs -[rax rsi rdi]
        push     rbp
+       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 48
+       sub      rsp, 40
        mov      rbp, qword ptr [rcx+0x20]
        mov      qword ptr [rsp+0x20], rbp
-       lea      rbp, [rbp+0x90]
-						;; size=26 bbWeight=0 PerfScore 0.00
-G_M40388_IG11:        ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref
+       lea      rbp, [rbp+0xA0]
+						;; size=28 bbWeight=0 PerfScore 0.00
+G_M40388_IG12:        ; bbWeight=0, gcVars=0000000000000006 {V00 V01}, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, gcvars, byref
        mov      rcx, rdx
        ; gcrRegs +[rcx]
        xorps    xmm0, xmm0
-       movups   xmmword ptr [rbp-0x68], xmm0
+       movups   xmmword ptr [rbp-0x70], xmm0
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx] +[rax]
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       lea      rcx, [rbp-0x68]
+       lea      rcx, [rbp-0x70]
        call     [<unknown method>]
        ; gcrRegs -[rax rdx]
        ; gcr arg pop 0
 						;; size=29 bbWeight=0 PerfScore 0.00
-G_M40388_IG12:        ; bbWeight=0, nogc, extend
-       movups   xmm0, xmmword ptr [rbp-0x68]
-       movups   xmmword ptr [rbp-0x38], xmm0
+G_M40388_IG13:        ; bbWeight=0, nogc, extend
+       movups   xmm0, xmmword ptr [rbp-0x70]
+       movups   xmmword ptr [rbp-0x40], xmm0
 						;; size=8 bbWeight=0 PerfScore 0.00
-G_M40388_IG13:        ; bbWeight=0, extend
-       lea      rax, G_M40388_IG08
+G_M40388_IG14:        ; bbWeight=0, extend
+       lea      rax, G_M40388_IG09
 						;; size=7 bbWeight=0 PerfScore 0.00
-G_M40388_IG14:        ; bbWeight=0, funclet epilog, nogc, extend
-       add      rsp, 48
+G_M40388_IG15:        ; bbWeight=0, funclet epilog, nogc, extend
...
libraries.pmi.windows.x64.checked.mch
-42 (-38.89%) : 293711.dasm - System.Numerics.Tensors.TensorPrimitives+LogBaseOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
@@ -12,58 +12,52 @@
 ;  V01 arg0         [V01,T00] (  3,  6   )   byref  ->  rdx         single-def
 ;  V02 arg1         [V02,T01] (  3,  6   )   byref  ->  rbx         single-def
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T03] (  2,  4   )  simd32  ->  mm6         "impAppendStmt"
+;* V04 tmp1         [V04    ] (  0,  0   )  simd32  ->  zero-ref    "impAppendStmt"
 ;* V05 tmp2         [V05    ] (  0,  0   )  simd32  ->  zero-ref    "spilled call-like call argument"
 ;* V06 tmp3         [V06    ] (  0,  0   )  simd32  ->  zero-ref    "spilled call-like call argument"
-;  V07 tmp4         [V07    ] (  2,  2   )  simd32  ->  [rsp+0x40]  do-not-enreg[XS] addr-exposed "Inline return value spill temp" <System.Runtime.Intrinsics.Vector256`1[double]>
+;  V07 tmp4         [V07,T03] (  2,  2   )  simd32  ->  [rsp+0x40]  do-not-enreg[HS] hidden-struct-arg "Inline return value spill temp" <System.Runtime.Intrinsics.Vector256`1[double]>
 ;* V08 tmp5         [V08    ] (  0,  0   )  simd32  ->  zero-ref    "Inline return value spill temp" <System.Runtime.Intrinsics.Vector256`1[double]>
 ;* V09 tmp6         [V09    ] (  0,  0   )  simd32  ->  zero-ref    "spilled call-like call argument"
-;  V10 tmp7         [V10    ] (  2,  2   )  simd32  ->  [rsp+0x20]  do-not-enreg[XS] addr-exposed "Inline return value spill temp" <System.Runtime.Intrinsics.Vector256`1[double]>
+;  V10 tmp7         [V10,T04] (  2,  2   )  simd32  ->  [rsp+0x20]  do-not-enreg[HS] hidden-struct-arg "Inline return value spill temp" <System.Runtime.Intrinsics.Vector256`1[double]>
 ;
-; Lcl frame size = 136
+; Lcl frame size = 104
 
 G_M63676_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rsi
        push     rbx
-       sub      rsp, 136
-       vmovaps  xmmword ptr [rsp+0x70], xmm6
-       vmovaps  xmmword ptr [rsp+0x60], xmm7
+       sub      rsp, 104
        mov      rsi, rcx
        ; byrRegs +[rsi]
        mov      rbx, r8
        ; byrRegs +[rbx]
-						;; size=27 bbWeight=1 PerfScore 6.75
+						;; size=12 bbWeight=1 PerfScore 2.75
 G_M63676_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=004C {rdx rbx rsi}, byref
        ; byrRegs +[rdx]
        lea      rcx, [rsp+0x40]
        call     [<unknown method>]
        ; byrRegs -[rdx]
        ; gcr arg pop 0
-       vmovups  ymm6, ymmword ptr [rsp+0x40]
        lea      rcx, [rsp+0x20]
        mov      rdx, rbx
        ; byrRegs +[rdx]
-       vextractf128 xmm7, ymm6, 1
        call     [<unknown method>]
        ; byrRegs -[rdx rbx]
        ; gcr arg pop 0
-       vinsertf128 ymm6, ymm6, xmm7, 1
-       vdivpd   ymm0, ymm6, ymmword ptr [rsp+0x20]
+       vmovups  ymm0, ymmword ptr [rsp+0x40]
+       vdivpd   ymm0, ymm0, ymmword ptr [rsp+0x20]
        vmovups  ymmword ptr [rsi], ymm0
        mov      rax, rsi
        ; byrRegs +[rax]
-						;; size=56 bbWeight=1 PerfScore 31.50
+						;; size=44 bbWeight=1 PerfScore 27.50
 G_M63676_IG03:        ; bbWeight=1, epilog, nogc, extend
        vzeroupper 
-       vmovaps  xmm6, xmmword ptr [rsp+0x70]
-       vmovaps  xmm7, xmmword ptr [rsp+0x60]
-       add      rsp, 136
+       add      rsp, 104
        pop      rbx
        pop      rsi
        ret      
-						;; size=25 bbWeight=1 PerfScore 11.25
+						;; size=10 bbWeight=1 PerfScore 3.25
 
-; Total bytes of code 108, prolog size 21, PerfScore 49.50, instruction count 25, allocated bytes for code 108 (MethodHash=d2500743) for method System.Numerics.Tensors.TensorPrimitives+LogBaseOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
+; Total bytes of code 66, prolog size 6, PerfScore 33.50, instruction count 19, allocated bytes for code 66 (MethodHash=d2500743) for method System.Numerics.Tensors.TensorPrimitives+LogBaseOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -71,16 +65,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x15
-  CountOfUnwindCodes: 8
+  SizeOfProlog      : 0x06
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x15 UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM7 (7)
-      Scaled Small Offset: 6 * 16 = 96 = 0x00060
-    CodeOffset: 0x0F UnwindOp: UWOP_SAVE_XMM128 (8)     OpInfo: XMM6 (6)
-      Scaled Small Offset: 7 * 16 = 112 = 0x00070
-    CodeOffset: 0x09 UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 17 * 8 = 136 = 0x00088
+    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 12 * 8 + 8 = 104 = 0x68
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-46 (-34.07%) : 139603.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
@@ -10,32 +10,29 @@
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.GeneratorDriver>
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   r9         class-hnd single-def <Microsoft.CodeAnalysis.Compilation>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Threading.CancellationToken>
-;  V03 loc0         [V03    ] (  2,  2   )  struct (80) [rsp+0x80]  do-not-enreg[XS] must-init addr-exposed <Microsoft.CodeAnalysis.GeneratorDriverState>
+;  V03 loc0         [V03    ] (  2,  2   )  struct (80) [rsp+0x30]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg <Microsoft.CodeAnalysis.GeneratorDriverState>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T02] (  2,  2   )     ref  ->   r8         single-def "field V02._source (fldOffset=0x0)" P-INDEP
-;  V06 tmp2         [V06    ] (  2,  4   )  struct (80) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.GeneratorDriverState>
 ;
-; Lcl frame size = 208
+; Lcl frame size = 128
 
 G_M23079_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 208
+       sub      rsp, 128
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rsp+0x30], ymm4
        vmovdqu  ymmword ptr [rsp+0x50], ymm4
-       vmovdqu  ymmword ptr [rsp+0x70], ymm4
-       vmovdqu  ymmword ptr [rsp+0x90], ymm4
-       vmovdqu  ymmword ptr [rsp+0xB0], ymm4
+       vmovdqa  xmmword ptr [rsp+0x70], xmm4
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      r9, rdx
        ; gcrRegs +[r9]
-						;; size=54 bbWeight=1 PerfScore 12.08
+						;; size=36 bbWeight=1 PerfScore 8.08
 G_M23079_IG02:        ; bbWeight=1, gcrefRegs=0308 {rbx r8 r9}, byrefRegs=0000 {}, byref
        ; gcrRegs +[r8]
        mov      gword ptr [rsp+0x20], r8
        ; gcr arg write
-       lea      rdx, [rsp+0x80]
+       lea      rdx, [rsp+0x30]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      r8, r9
@@ -43,13 +40,6 @@ G_M23079_IG02:        ; bbWeight=1, gcrefRegs=0308 {rbx r8 r9}, byrefRegs=0000 {
        call     [<unknown method>]
        ; gcrRegs -[rcx r8-r9]
        ; gcr arg pop 0
-       lea      rcx, bword ptr [rsp+0x30]
-       ; byrRegs +[rcx]
-       lea      rdx, [rsp+0x80]
-       mov      r8d, 80
-       call     [CORINFO_HELP_BULK_WRITEBARRIER]
-       ; byrRegs -[rcx]
-       ; gcr arg pop 0
        lea      rdx, [rsp+0x30]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -59,14 +49,14 @@ G_M23079_IG02:        ; bbWeight=1, gcrefRegs=0308 {rbx r8 r9}, byrefRegs=0000 {
        ; gcrRegs -[rcx rbx] +[rax]
        ; gcr arg pop 0
        nop      
-						;; size=72 bbWeight=1 PerfScore 17.50
+						;; size=44 bbWeight=1 PerfScore 13.25
 G_M23079_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 208
+       add      rsp, 128
        pop      rbx
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 135, prolog size 48, PerfScore 31.33, instruction count 29, allocated bytes for code 135 (MethodHash=0fc5a5d8) for method Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
+; Total bytes of code 89, prolog size 30, PerfScore 23.08, instruction count 23, allocated bytes for code 89 (MethodHash=0fc5a5d8) for method Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -75,10 +65,9 @@ Unwind Info:
   Version           : 1
   Flags             : 0x00
   SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 3
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 26 * 8 = 208 = 0x000D0
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 15 * 8 + 8 = 128 = 0x80
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-12 (-26.67%) : 250801.dasm - System.CommandLine.Help.HelpBuilder:g__IsOptional|16_0(System.CommandLine.CliArgument):ubyte (FullOpts)
@@ -9,17 +9,14 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->  rcx         class-hnd single-def <System.CommandLine.CliArgument>
-;  V01 loc0         [V01    ] (  2,  2   )  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.CommandLine.ArgumentArity>
+;  V01 loc0         [V01,T01] (  2,  2   )  struct (16) [rsp+0x28]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <System.CommandLine.ArgumentArity>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 56
 
 G_M2446_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 56
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
-       mov      qword ptr [rsp+0x30], rax
-						;; size=16 bbWeight=1 PerfScore 2.50
+						;; size=4 bbWeight=1 PerfScore 0.25
 G_M2446_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        lea      rdx, [rsp+0x28]
@@ -36,7 +33,7 @@ G_M2446_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 45, prolog size 16, PerfScore 13.50, instruction count 12, allocated bytes for code 45 (MethodHash=dfa0f671) for method System.CommandLine.Help.HelpBuilder:<FormatArgumentUsage>g__IsOptional|16_0(System.CommandLine.CliArgument):ubyte (FullOpts)
+; Total bytes of code 33, prolog size 4, PerfScore 11.25, instruction count 9, allocated bytes for code 33 (MethodHash=dfa0f671) for method System.CommandLine.Help.HelpBuilder:<FormatArgumentUsage>g__IsOptional|16_0(System.CommandLine.CliArgument):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
+38 (+19.39%) : 276211.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (FullOpts)
@@ -9,55 +9,57 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  4,  4   )     ref  ->  rbx         class-hnd single-def <System.Reflection.Metadata.TypeName>
-;  V01 arg1         [V01,T01] (  3,  3   )     int  ->  rsi         single-def
-;  V02 loc0         [V02    ] (  5,  5   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ushort]>
+;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rsi         single-def
+;  V02 loc0         [V02,T11] (  3,  3   )  struct (16) [rsp+0x40]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.ArraySegment`1[ushort]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V07 tmp4         [V07,T02] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
+;  V07 tmp4         [V07,T03] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
 ;* V08 tmp5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
-;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
+;  V09 tmp6         [V09    ] ( 11, 12   )  struct (16) [rsp+0x30]  do-not-enreg[SF] must-init ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
 ;* V10 tmp7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ushort[]>
 ;* V11 tmp8         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V13 tmp10        [V13    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V15 tmp12        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;  V16 tmp13        [V16,T06] (  2,  4   )     int  ->  rsi         "Inlining Arg"
-;  V17 tmp14        [V17,T03] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V16 tmp13        [V16,T07] (  2,  4   )     int  ->  rdi         "Inlining Arg"
+;  V17 tmp14        [V17,T04] (  2,  4   )   byref  ->  rsi         single-def "Inlining Arg"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;  V24 tmp21        [V24,T07] (  4,  3   )     ref  ->  rcx         single-def "field V09._array (fldOffset=0x0)" P-INDEP
-;  V25 tmp22        [V25,T08] (  4,  2   )     int  ->  rbx         single-def "field V09._offset (fldOffset=0x8)" P-INDEP
-;  V26 tmp23        [V26,T09] (  4,  2   )     int  ->  rsi         single-def "field V09._count (fldOffset=0xc)" P-INDEP
-;  V27 tmp24        [V27,T12] (  3,  1.50)   byref  ->  rdi         "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V28 tmp25        [V28,T13] (  3,  1.50)     int  ->  rsi         "field V12._length (fldOffset=0x8)" P-INDEP
+;  V24 tmp21        [V24,T01] (  5,  5   )     ref  ->  [rsp+0x30]  do-not-enreg[] single-def "field V09._array (fldOffset=0x0)" P-DEP
+;  V25 tmp22        [V25,T08] (  4,  3   )     int  ->  [rsp+0x38]  do-not-enreg[] "field V09._offset (fldOffset=0x8)" P-DEP
+;  V26 tmp23        [V26,T09] (  4,  3   )     int  ->  [rsp+0x3C]  do-not-enreg[] "field V09._count (fldOffset=0xc)" P-DEP
+;  V27 tmp24        [V27,T14] (  3,  1.50)   byref  ->  rsi         "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V28 tmp25        [V28,T15] (  3,  1.50)     int  ->  rdi         "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp28        [V31,T10] (  2,  2   )   byref  ->  rdi         single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-;  V32 tmp29        [V32,T11] (  2,  2   )     int  ->  rsi         single-def "field V15._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp30        [V33,T04] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V34 tmp31        [V34,T05] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V35 tmp32        [V35    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V31 tmp28        [V31,T12] (  2,  2   )   byref  ->  rsi         single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp29        [V32,T13] (  2,  2   )     int  ->  rdi         single-def "field V15._length (fldOffset=0x8)" P-INDEP
+;  V33 tmp30        [V33,T10] (  3,  3   )     ref  ->  rbx         single-def "V02.[000..008)"
+;  V34 tmp31        [V34,T05] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
+;  V35 tmp32        [V35,T06] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V36 tmp33        [V36    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 80
 
 G_M6715_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 80
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      esi, edx
-						;; size=22 bbWeight=1 PerfScore 6.08
+						;; size=28 bbWeight=1 PerfScore 8.08
 G_M6715_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -77,79 +79,88 @@ G_M6715_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byre
        ; gcrRegs +[r8]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x30]
+       lea      rcx, [rsp+0x40]
        mov      r9d, esi
        call     [<unknown method>]
        ; gcrRegs -[rax rdx rdi r8]
        ; gcr arg pop 0
+       mov      rbx, gword ptr [rsp+0x40]
+       ; gcrRegs +[rbx]
+       mov      gword ptr [rsp+0x30], rbx
+       mov      rcx, qword ptr [rsp+0x48]
+       mov      qword ptr [rsp+0x38], rcx
+       cmp      gword ptr [rsp+0x30], 0
+       je       SHORT G_M6715_IG06
+						;; size=74 bbWeight=1 PerfScore 25.75
+G_M6715_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, dword ptr [rsp+0x38]
+       mov      edx, dword ptr [rsp+0x3C]
+       add      rcx, rdx
+       mov      rdx, gword ptr [rsp+0x30]
+       ; gcrRegs +[rdx]
+       mov      edx, dword ptr [rdx+0x08]
+       ; gcrRegs -[rdx]
+       cmp      rcx, rdx
+       ja       SHORT G_M6715_IG07
        mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
-       mov      ebx, dword ptr [rsp+0x38]
-       mov      esi, dword ptr [rsp+0x3C]
-       test     rcx, rcx
-       je       SHORT G_M6715_IG06
-						;; size=64 bbWeight=1 PerfScore 23.00
-G_M6715_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       mov      edx, ebx
-       mov      r8d, esi
-       add      rdx, r8
-       mov      r8d, dword ptr [rcx+0x08]
-       cmp      rdx, r8
-       ja       SHORT G_M6715_IG07
-       mov      edx, ebx
-       lea      rdi, bword ptr [rcx+2*rdx+0x10]
-       ; byrRegs +[rdi]
-						;; size=24 bbWeight=0.50 PerfScore 2.62
-G_M6715_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+       mov      edx, dword ptr [rsp+0x38]
+       lea      rsi, bword ptr [rcx+2*rdx+0x10]
+       ; byrRegs +[rsi]
+       mov      edi, dword ptr [rsp+0x3C]
+						;; size=42 bbWeight=0.50 PerfScore 5.25
+G_M6715_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rcx]
-       mov      bword ptr [rsp+0x20], rdi
-       mov      dword ptr [rsp+0x28], esi
+       mov      bword ptr [rsp+0x20], rsi
+       mov      dword ptr [rsp+0x28], edi
        lea      rcx, [rsp+0x20]
        mov      edx, 1
        xor      r8, r8
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[r8] +[rax]
-       ; byrRegs -[rdi]
+       ; byrRegs -[rsi]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rsp+0x30]
+       mov      rdx, rbx
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
+       ; gcrRegs -[rax rcx rdx rbx]
        ; gcr arg pop 0
-       mov      rax, rbx
+       mov      rax, rsi
        ; gcrRegs +[rax]
-						;; size=61 bbWeight=1 PerfScore 13.00
+						;; size=59 bbWeight=1 PerfScore 12.25
 G_M6715_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 80
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
-G_M6715_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax rbx]
-       or       ebx, esi
+G_M6715_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax rsi] +[rbx]
+       mov      eax, dword ptr [rsp+0x38]
+       or       eax, dword ptr [rsp+0x3C]
        jne      SHORT G_M6715_IG07
-       xor      rdi, rdi
-       ; byrRegs +[rdi]
-       xor      esi, esi
+       xor      rsi, rsi
+       ; byrRegs +[rsi]
+       xor      edi, edi
        jmp      SHORT G_M6715_IG04
-						;; size=10 bbWeight=0 PerfScore 0.00
+						;; size=16 bbWeight=0 PerfScore 0.00
 G_M6715_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       ; gcrRegs -[rbx]
+       ; byrRegs -[rsi]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 196, prolog size 17, PerfScore 47.46, instruction count 58, allocated bytes for code 196 (MethodHash=48a4e5c4) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (FullOpts)
+; Total bytes of code 234, prolog size 23, PerfScore 54.08, instruction count 64, allocated bytes for code 234 (MethodHash=48a4e5c4) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -162,7 +173,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
     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)
+38 (+20.65%) : 276210.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (FullOpts)
@@ -9,51 +9,53 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  4,  4   )     ref  ->  rcx         class-hnd single-def <System.Type>
-;  V01 arg1         [V01,T01] (  3,  3   )     int  ->  rbx         single-def
-;  V02 loc0         [V02    ] (  5,  5   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ushort]>
+;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rbx         single-def
+;  V02 loc0         [V02,T10] (  3,  3   )  struct (16) [rsp+0x40]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.ArraySegment`1[ushort]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V06 tmp3         [V06,T02] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
+;  V06 tmp3         [V06,T03] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
-;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
+;  V08 tmp5         [V08    ] ( 11, 12   )  struct (16) [rsp+0x30]  do-not-enreg[SF] must-init ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ushort[]>
 ;* V10 tmp7         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V11 tmp8         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V12 tmp9         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;  V15 tmp12        [V15,T05] (  2,  4   )     int  ->  rsi         "Inlining Arg"
-;  V16 tmp13        [V16,T03] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V15 tmp12        [V15,T06] (  2,  4   )     int  ->  rdi         "Inlining Arg"
+;  V16 tmp13        [V16,T04] (  2,  4   )   byref  ->  rsi         single-def "Inlining Arg"
 ;* V17 tmp14        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V20 tmp17        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp20        [V23,T06] (  4,  3   )     ref  ->  rcx         single-def "field V08._array (fldOffset=0x0)" P-INDEP
-;  V24 tmp21        [V24,T07] (  4,  2   )     int  ->  rbx         single-def "field V08._offset (fldOffset=0x8)" P-INDEP
-;  V25 tmp22        [V25,T08] (  4,  2   )     int  ->  rsi         single-def "field V08._count (fldOffset=0xc)" P-INDEP
-;  V26 tmp23        [V26,T11] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp24        [V27,T12] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp20        [V23,T01] (  5,  5   )     ref  ->  [rsp+0x30]  do-not-enreg[] single-def "field V08._array (fldOffset=0x0)" P-DEP
+;  V24 tmp21        [V24,T07] (  4,  3   )     int  ->  [rsp+0x38]  do-not-enreg[] "field V08._offset (fldOffset=0x8)" P-DEP
+;  V25 tmp22        [V25,T08] (  4,  3   )     int  ->  [rsp+0x3C]  do-not-enreg[] "field V08._count (fldOffset=0xc)" P-DEP
+;  V26 tmp23        [V26,T13] (  3,  1.50)   byref  ->  rsi         "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V27 tmp24        [V27,T14] (  3,  1.50)     int  ->  rdi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp25        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "field V13._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp27        [V30,T09] (  2,  2   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp28        [V31,T10] (  2,  2   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp29        [V32,T04] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V33 tmp30        [V33    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V30 tmp27        [V30,T11] (  2,  2   )   byref  ->  rsi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V31 tmp28        [V31,T12] (  2,  2   )     int  ->  rdi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
+;  V32 tmp29        [V32,T09] (  3,  3   )     ref  ->  rbx         single-def "V02.[000..008)"
+;  V33 tmp30        [V33,T05] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
+;  V34 tmp31        [V34    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 80
 
 G_M9354_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 80
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
        mov      ebx, edx
-						;; size=19 bbWeight=1 PerfScore 5.83
+						;; size=25 bbWeight=1 PerfScore 7.83
 G_M9354_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rcx]
@@ -63,81 +65,90 @@ G_M9354_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byre
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x30]
+       lea      rcx, [rsp+0x40]
        mov      r9d, ebx
        mov      r8, 0xD1FFAB1E
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[rax rdx r8]
        ; gcr arg pop 0
+       mov      rbx, gword ptr [rsp+0x40]
+       ; gcrRegs +[rbx]
+       mov      gword ptr [rsp+0x30], rbx
+       mov      rcx, qword ptr [rsp+0x48]
+       mov      qword ptr [rsp+0x38], rcx
+       cmp      gword ptr [rsp+0x30], 0
+       je       SHORT G_M9354_IG06
+						;; size=65 bbWeight=1 PerfScore 18.25
+G_M9354_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, dword ptr [rsp+0x38]
+       mov      edx, dword ptr [rsp+0x3C]
+       add      rcx, rdx
+       mov      rdx, gword ptr [rsp+0x30]
+       ; gcrRegs +[rdx]
+       mov      edx, dword ptr [rdx+0x08]
+       ; gcrRegs -[rdx]
+       cmp      rcx, rdx
+       ja       SHORT G_M9354_IG07
        mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
-       mov      ebx, dword ptr [rsp+0x38]
-       mov      esi, dword ptr [rsp+0x3C]
-       test     rcx, rcx
-       je       SHORT G_M9354_IG06
-						;; size=55 bbWeight=1 PerfScore 15.50
-G_M9354_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       mov      edx, ebx
-       mov      r8d, esi
-       add      rdx, r8
-       mov      r8d, dword ptr [rcx+0x08]
-       cmp      rdx, r8
-       ja       SHORT G_M9354_IG07
-       mov      edx, ebx
-       lea      rdi, bword ptr [rcx+2*rdx+0x10]
-       ; byrRegs +[rdi]
-						;; size=24 bbWeight=0.50 PerfScore 2.62
-G_M9354_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+       mov      edx, dword ptr [rsp+0x38]
+       lea      rsi, bword ptr [rcx+2*rdx+0x10]
+       ; byrRegs +[rsi]
+       mov      edi, dword ptr [rsp+0x3C]
+						;; size=42 bbWeight=0.50 PerfScore 5.25
+G_M9354_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rcx]
-       mov      bword ptr [rsp+0x20], rdi
-       mov      dword ptr [rsp+0x28], esi
+       mov      bword ptr [rsp+0x20], rsi
+       mov      dword ptr [rsp+0x28], edi
        lea      rcx, [rsp+0x20]
        mov      edx, 1
        xor      r8, r8
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[r8] +[rax]
-       ; byrRegs -[rdi]
+       ; byrRegs -[rsi]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rsp+0x30]
+       mov      rdx, rbx
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
+       ; gcrRegs -[rax rcx rdx rbx]
        ; gcr arg pop 0
-       mov      rax, rbx
+       mov      rax, rsi
        ; gcrRegs +[rax]
-						;; size=61 bbWeight=1 PerfScore 13.00
+						;; size=59 bbWeight=1 PerfScore 12.25
 G_M9354_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 80
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
-G_M9354_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax rbx]
-       or       ebx, esi
+G_M9354_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax rsi] +[rbx]
+       mov      eax, dword ptr [rsp+0x38]
+       or       eax, dword ptr [rsp+0x3C]
        jne      SHORT G_M9354_IG07
-       xor      rdi, rdi
-       ; byrRegs +[rdi]
-       xor      esi, esi
+       xor      rsi, rsi
+       ; byrRegs +[rsi]
+       xor      edi, edi
        jmp      SHORT G_M9354_IG04
-						;; size=10 bbWeight=0 PerfScore 0.00
+						;; size=16 bbWeight=0 PerfScore 0.00
 G_M9354_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       ; gcrRegs -[rbx]
+       ; byrRegs -[rsi]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 184, prolog size 17, PerfScore 39.71, instruction count 53, allocated bytes for code 184 (MethodHash=2c99db75) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (FullOpts)
+; Total bytes of code 222, prolog size 23, PerfScore 46.33, instruction count 59, allocated bytes for code 222 (MethodHash=2c99db75) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -150,7 +161,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
     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)
+38 (+21.59%) : 276209.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:WithAssemblyName(System.Reflection.Metadata.TypeName,System.String):System.Reflection.Metadata.TypeName (FullOpts)
@@ -8,53 +8,55 @@
 ; 1 inlinees with PGO data; 10 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->  rcx         class-hnd single-def <System.Reflection.Metadata.TypeName>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  rbx         class-hnd single-def <System.String>
-;  V02 loc0         [V02    ] (  5,  5   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ushort]>
+;  V00 arg0         [V00,T01] (  3,  3   )     ref  ->  rcx         class-hnd single-def <System.Reflection.Metadata.TypeName>
+;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rbx         class-hnd single-def <System.String>
+;  V02 loc0         [V02,T10] (  3,  3   )  struct (16) [rsp+0x40]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.ArraySegment`1[ushort]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V06 tmp3         [V06,T02] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
+;  V06 tmp3         [V06,T03] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
-;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
+;  V08 tmp5         [V08    ] ( 11, 12   )  struct (16) [rsp+0x30]  do-not-enreg[SF] must-init ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ushort[]>
 ;* V10 tmp7         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V11 tmp8         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V12 tmp9         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;  V15 tmp12        [V15,T05] (  2,  4   )     int  ->  rsi         "Inlining Arg"
-;  V16 tmp13        [V16,T03] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V15 tmp12        [V15,T06] (  2,  4   )     int  ->  rdi         "Inlining Arg"
+;  V16 tmp13        [V16,T04] (  2,  4   )   byref  ->  rsi         single-def "Inlining Arg"
 ;* V17 tmp14        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V20 tmp17        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp20        [V23,T06] (  4,  3   )     ref  ->  rcx         single-def "field V08._array (fldOffset=0x0)" P-INDEP
-;  V24 tmp21        [V24,T07] (  4,  2   )     int  ->  rbx         single-def "field V08._offset (fldOffset=0x8)" P-INDEP
-;  V25 tmp22        [V25,T08] (  4,  2   )     int  ->  rsi         single-def "field V08._count (fldOffset=0xc)" P-INDEP
-;  V26 tmp23        [V26,T11] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp24        [V27,T12] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp20        [V23,T00] (  5,  5   )     ref  ->  [rsp+0x30]  do-not-enreg[] single-def "field V08._array (fldOffset=0x0)" P-DEP
+;  V24 tmp21        [V24,T07] (  4,  3   )     int  ->  [rsp+0x38]  do-not-enreg[] "field V08._offset (fldOffset=0x8)" P-DEP
+;  V25 tmp22        [V25,T08] (  4,  3   )     int  ->  [rsp+0x3C]  do-not-enreg[] "field V08._count (fldOffset=0xc)" P-DEP
+;  V26 tmp23        [V26,T13] (  3,  1.50)   byref  ->  rsi         "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V27 tmp24        [V27,T14] (  3,  1.50)     int  ->  rdi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp25        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "field V13._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp27        [V30,T09] (  2,  2   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp28        [V31,T10] (  2,  2   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp29        [V32,T04] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V33 tmp30        [V33    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V30 tmp27        [V30,T11] (  2,  2   )   byref  ->  rsi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V31 tmp28        [V31,T12] (  2,  2   )     int  ->  rdi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
+;  V32 tmp29        [V32,T09] (  3,  3   )     ref  ->  rbx         single-def "V02.[000..008)"
+;  V33 tmp30        [V33,T05] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
+;  V34 tmp31        [V34    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 80
 
 G_M2877_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 80
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-						;; size=20 bbWeight=1 PerfScore 5.83
+						;; size=26 bbWeight=1 PerfScore 7.83
 G_M2877_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        cmp      dword ptr [rcx], ecx
@@ -63,81 +65,90 @@ G_M2877_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {},
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x30]
+       lea      rcx, [rsp+0x40]
        mov      r8, rbx
        ; gcrRegs +[r8]
        xor      r9d, r9d
        call     [<unknown method>]
        ; gcrRegs -[rax rdx rbx r8]
        ; gcr arg pop 0
+       mov      rbx, gword ptr [rsp+0x40]
+       ; gcrRegs +[rbx]
+       mov      gword ptr [rsp+0x30], rbx
+       mov      rcx, qword ptr [rsp+0x48]
+       mov      qword ptr [rsp+0x38], rcx
+       cmp      gword ptr [rsp+0x30], 0
+       je       SHORT G_M2877_IG06
+						;; size=56 bbWeight=1 PerfScore 17.25
+G_M2877_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, dword ptr [rsp+0x38]
+       mov      edx, dword ptr [rsp+0x3C]
+       add      rcx, rdx
+       mov      rdx, gword ptr [rsp+0x30]
+       ; gcrRegs +[rdx]
+       mov      edx, dword ptr [rdx+0x08]
+       ; gcrRegs -[rdx]
+       cmp      rcx, rdx
+       ja       SHORT G_M2877_IG07
        mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
-       mov      ebx, dword ptr [rsp+0x38]
-       mov      esi, dword ptr [rsp+0x3C]
-       test     rcx, rcx
-       je       SHORT G_M2877_IG06
-						;; size=46 bbWeight=1 PerfScore 14.50
-G_M2877_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       mov      edx, ebx
-       mov      r8d, esi
-       add      rdx, r8
-       mov      r8d, dword ptr [rcx+0x08]
-       cmp      rdx, r8
-       ja       SHORT G_M2877_IG07
-       mov      edx, ebx
-       lea      rdi, bword ptr [rcx+2*rdx+0x10]
-       ; byrRegs +[rdi]
-						;; size=24 bbWeight=0.50 PerfScore 2.62
-G_M2877_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+       mov      edx, dword ptr [rsp+0x38]
+       lea      rsi, bword ptr [rcx+2*rdx+0x10]
+       ; byrRegs +[rsi]
+       mov      edi, dword ptr [rsp+0x3C]
+						;; size=42 bbWeight=0.50 PerfScore 5.25
+G_M2877_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rcx]
-       mov      bword ptr [rsp+0x20], rdi
-       mov      dword ptr [rsp+0x28], esi
+       mov      bword ptr [rsp+0x20], rsi
+       mov      dword ptr [rsp+0x28], edi
        lea      rcx, [rsp+0x20]
        mov      edx, 1
        xor      r8, r8
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[r8] +[rax]
-       ; byrRegs -[rdi]
+       ; byrRegs -[rsi]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rsp+0x30]
+       mov      rdx, rbx
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
+       ; gcrRegs -[rax rcx rdx rbx]
        ; gcr arg pop 0
-       mov      rax, rbx
+       mov      rax, rsi
        ; gcrRegs +[rax]
-						;; size=61 bbWeight=1 PerfScore 13.00
+						;; size=59 bbWeight=1 PerfScore 12.25
 G_M2877_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 80
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
-G_M2877_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax rbx]
-       or       ebx, esi
+G_M2877_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax rsi] +[rbx]
+       mov      eax, dword ptr [rsp+0x38]
+       or       eax, dword ptr [rsp+0x3C]
        jne      SHORT G_M2877_IG07
-       xor      rdi, rdi
-       ; byrRegs +[rdi]
-       xor      esi, esi
+       xor      rsi, rsi
+       ; byrRegs +[rsi]
+       xor      edi, edi
        jmp      SHORT G_M2877_IG04
-						;; size=10 bbWeight=0 PerfScore 0.00
+						;; size=16 bbWeight=0 PerfScore 0.00
 G_M2877_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       ; gcrRegs -[rbx]
+       ; byrRegs -[rsi]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 17, PerfScore 38.71, instruction count 52, allocated bytes for code 176 (MethodHash=1ac7f4c2) for method System.Formats.Nrbf.Utils.TypeNameExtensions:WithAssemblyName(System.Reflection.Metadata.TypeName,System.String):System.Reflection.Metadata.TypeName (FullOpts)
+; Total bytes of code 214, prolog size 23, PerfScore 45.33, instruction count 58, allocated bytes for code 214 (MethodHash=1ac7f4c2) for method System.Formats.Nrbf.Utils.TypeNameExtensions:WithAssemblyName(System.Reflection.Metadata.TypeName,System.String):System.Reflection.Metadata.TypeName (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -150,7 +161,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
     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)
libraries_tests.run.windows.x64.Release.mch
-21 (-24.42%) : 674631.dasm - Microsoft.Cci.MetadataWriter+<>c:b__257_0(Microsoft.Cci.ILocalDefinition):ubyte:this (Tier1)
@@ -9,52 +9,50 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Microsoft.Cci.MetadataWriter+<>c>
 ;  V01 arg1         [V01,T00] (  5,  3.50)     ref  ->  rcx         class-hnd single-def <Microsoft.Cci.ILocalDefinition>
-;  V02 loc0         [V02    ] (  3,  1.50)  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CodeGen.LocalSlotDebugInfo>
+;  V02 loc0         [V02,T02] (  2,  0   )  struct (16) [rsp+0x20]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <Microsoft.CodeAnalysis.CodeGen.LocalSlotDebugInfo>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CodeGen.LocalDefinition>
+;  V05 tmp2         [V05,T01] (  3,  1.50)     int  ->  rbx         "V02.[008..012)"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 48
 
 G_M15405_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 56
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
-       mov      qword ptr [rsp+0x30], rax
+       push     rbx
+       sub      rsp, 48
        mov      rcx, rdx
        ; gcrRegs +[rcx]
-						;; size=19 bbWeight=1 PerfScore 2.75
+						;; size=8 bbWeight=1 PerfScore 1.50
 G_M15405_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CodeGen.LocalDefinition
        cmp      qword ptr [rcx], rax
        jne      SHORT G_M15405_IG06
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M15405_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
-       mov      rax, qword ptr [rcx+0x2C]
-       mov      qword ptr [rsp+0x28], rax
-       mov      eax, dword ptr [rcx+0x34]
-       mov      dword ptr [rsp+0x30], eax
-						;; size=16 bbWeight=0.50 PerfScore 3.00
+       mov      ebx, dword ptr [rcx+0x34]
+						;; size=3 bbWeight=0.50 PerfScore 1.00
 G_M15405_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
-       cmp      dword ptr [rsp+0x30], -1
+       cmp      ebx, -1
        setne    al
        movzx    rax, al
-						;; size=11 bbWeight=1 PerfScore 3.25
+						;; size=9 bbWeight=1 PerfScore 1.50
 G_M15405_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 48
+       pop      rbx
        ret      
-						;; size=5 bbWeight=1 PerfScore 1.25
+						;; size=6 bbWeight=1 PerfScore 1.75
 G_M15405_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rcx]
-       lea      rdx, [rsp+0x28]
+       lea      rdx, [rsp+0x20]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
        call     [r11]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
+       mov      ebx, dword ptr [rsp+0x28]
        jmp      SHORT G_M15405_IG04
-						;; size=20 bbWeight=0 PerfScore 0.00
+						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 86, prolog size 16, PerfScore 14.50, instruction count 21, allocated bytes for code 86 (MethodHash=0343c3d2) for method Microsoft.Cci.MetadataWriter+<>c:<GetLocalSlotDebugInfos>b__257_0(Microsoft.Cci.ILocalDefinition):ubyte:this (Tier1)
+; Total bytes of code 65, prolog size 5, PerfScore 10.00, instruction count 18, allocated bytes for code 65 (MethodHash=0343c3d2) for method Microsoft.Cci.MetadataWriter+<>c:<GetLocalSlotDebugInfos>b__257_0(Microsoft.Cci.ILocalDefinition):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -62,9 +60,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-27 (-20.77%) : 670567.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
@@ -10,28 +10,26 @@
 ;
 ;  V00 this         [V00,T00] (  6,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol>
 ;  V01 RetBuf       [V01,T01] (  4,  4   )   byref  ->  rbp         single-def
-;  V02 loc0         [V02    ] (  2,  0   )  struct (24) [rsp+0x40]  do-not-enreg[XS] must-init addr-exposed <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V02 loc0         [V02    ] (  2,  0   )  struct (24) [rsp+0x20]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  2,  0   )  struct (24) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 88
+; Lcl frame size = 56
 
 G_M32568_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 88
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
+       sub      rsp, 56
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x30], ymm4
-       mov      qword ptr [rsp+0x50], rax
+       vmovdqa  xmmword ptr [rsp+0x20], xmm4
+       xor      eax, eax
+       mov      qword ptr [rsp+0x30], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rbp, rdx
        ; byrRegs +[rbp]
-						;; size=36 bbWeight=1 PerfScore 9.33
+						;; size=31 bbWeight=1 PerfScore 8.33
 G_M32568_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        cmp      gword ptr [rbx+0x28], 0
        je       SHORT G_M32568_IG05
@@ -52,40 +50,32 @@ G_M32568_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp},
        ; byrRegs +[rax]
 						;; size=26 bbWeight=1 PerfScore 5.75
 G_M32568_IG04:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 88
+       add      rsp, 56
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        ret      
 						;; size=9 bbWeight=1 PerfScore 3.25
-G_M32568_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
+G_M32568_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref, isz
        ; gcrRegs +[rbx]
        ; byrRegs -[rax rsi rdi]
-       lea      rdx, [rsp+0x40]
+       lea      rdx, [rsp+0x20]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:GetTypeSymbol():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-						;; size=14 bbWeight=0 PerfScore 0.00
-G_M32568_IG06:        ; bbWeight=0, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rsp+0x40]
-       vmovdqu  xmmword ptr [rsp+0x28], xmm0
-       mov      rdx, qword ptr [rsp+0x50]
-       mov      qword ptr [rsp+0x38], rdx
-						;; size=22 bbWeight=0 PerfScore 0.00
-G_M32568_IG07:        ; bbWeight=0, isz, extend
-       lea      rdx, [rsp+0x28]
+       lea      rdx, [rsp+0x20]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:SetTypeWithAnnotations(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      SHORT G_M32568_IG03
-						;; size=16 bbWeight=0 PerfScore 0.00
+						;; size=30 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 130, prolog size 30, PerfScore 22.33, instruction count 38, allocated bytes for code 130 (MethodHash=d87180c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
+; Total bytes of code 103, prolog size 25, PerfScore 21.33, instruction count 33, allocated bytes for code 103 (MethodHash=d87180c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -98,7 +88,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
     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)
-27 (-20.77%) : 185864.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
@@ -10,28 +10,26 @@
 ;
 ;  V00 this         [V00,T00] (  6,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol>
 ;  V01 RetBuf       [V01,T01] (  4,  4   )   byref  ->  rbp         single-def
-;  V02 loc0         [V02    ] (  2,  0   )  struct (24) [rsp+0x40]  do-not-enreg[XS] must-init addr-exposed <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V02 loc0         [V02    ] (  2,  0   )  struct (24) [rsp+0x20]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  2,  0   )  struct (24) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 88
+; Lcl frame size = 56
 
 G_M32568_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 88
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
+       sub      rsp, 56
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x30], ymm4
-       mov      qword ptr [rsp+0x50], rax
+       vmovdqa  xmmword ptr [rsp+0x20], xmm4
+       xor      eax, eax
+       mov      qword ptr [rsp+0x30], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rbp, rdx
        ; byrRegs +[rbp]
-						;; size=36 bbWeight=1 PerfScore 9.33
+						;; size=31 bbWeight=1 PerfScore 8.33
 G_M32568_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        cmp      gword ptr [rbx+0x28], 0
        je       SHORT G_M32568_IG05
@@ -52,40 +50,32 @@ G_M32568_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp},
        ; byrRegs +[rax]
 						;; size=26 bbWeight=1 PerfScore 5.75
 G_M32568_IG04:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 88
+       add      rsp, 56
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        ret      
 						;; size=9 bbWeight=1 PerfScore 3.25
-G_M32568_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref
+G_M32568_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, gcvars, byref, isz
        ; gcrRegs +[rbx]
        ; byrRegs -[rax rsi rdi]
-       lea      rdx, [rsp+0x40]
+       lea      rdx, [rsp+0x20]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:GetTypeSymbol():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-						;; size=14 bbWeight=0 PerfScore 0.00
-G_M32568_IG06:        ; bbWeight=0, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rsp+0x40]
-       vmovdqu  xmmword ptr [rsp+0x28], xmm0
-       mov      rdx, qword ptr [rsp+0x50]
-       mov      qword ptr [rsp+0x38], rdx
-						;; size=22 bbWeight=0 PerfScore 0.00
-G_M32568_IG07:        ; bbWeight=0, isz, extend
-       lea      rdx, [rsp+0x28]
+       lea      rdx, [rsp+0x20]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:SetTypeWithAnnotations(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      SHORT G_M32568_IG03
-						;; size=16 bbWeight=0 PerfScore 0.00
+						;; size=30 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 130, prolog size 30, PerfScore 22.33, instruction count 38, allocated bytes for code 130 (MethodHash=d87180c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
+; Total bytes of code 103, prolog size 25, PerfScore 21.33, instruction count 33, allocated bytes for code 103 (MethodHash=d87180c7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -98,7 +88,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
     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)
+15 (+12.82%) : 186700.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:Microsoft.Cci.IParameterTypeInformation.get_CustomModifiers():System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]:this (Tier1)
@@ -8,20 +8,20 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  6,  3.54)     ref  ->  rcx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol>
-;  V01 loc0         [V01    ] (  3,  1.50)  struct (24) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V01 loc0         [V01    ] (  6,  2   )  struct (24) [rsp+0x20]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]>
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEParameterSymbol>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    single-def "guarded devirt return temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]>
-;  V07 tmp5         [V07,T01] (  5,  5   )     ref  ->  rcx         single-def "guarded devirt arg temp"
+;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "guarded devirt arg temp"
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType>
 ;* V09 tmp7         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]>
 ;* V10 tmp8         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;* V11 tmp9         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]>
-;  V12 tmp10        [V12    ] (  2,  0.50)     ref  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed "field V01.DefaultType (fldOffset=0x0)" P-DEP
-;  V13 tmp11        [V13    ] (  3,  1.50)     ref  ->  [rsp+0x28]  do-not-enreg[X] addr-exposed "field V01._extensions (fldOffset=0x8)" P-DEP
-;  V14 tmp12        [V14    ] (  2,  0.50)   ubyte  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V01.DefaultNullableAnnotation (fldOffset=0x10)" P-DEP
+;  V12 tmp10        [V12,T03] (  2,  0.50)     ref  ->  [rsp+0x20]  do-not-enreg[H] hidden-struct-arg "field V01.DefaultType (fldOffset=0x0)" P-DEP
+;  V13 tmp11        [V13,T01] (  6,  2   )     ref  ->  [rsp+0x28]  do-not-enreg[H] hidden-struct-arg "field V01._extensions (fldOffset=0x8)" P-DEP
+;  V14 tmp12        [V14,T04] (  2,  0.50)   ubyte  ->  [rsp+0x30]  do-not-enreg[H] hidden-struct-arg "field V01.DefaultNullableAnnotation (fldOffset=0x10)" P-DEP
 ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04.array (fldOffset=0x0)" P-INDEP
 ;  V16 tmp14        [V16,T02] (  3,  1.50)     ref  ->  rax         single-def "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp15        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V09.array (fldOffset=0x0)" P-INDEP
@@ -50,18 +50,19 @@ G_M54628_IG03:        ; bbWeight=0.46, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
 						;; size=20 bbWeight=0.46 PerfScore 3.64
 G_M54628_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
-       mov      rcx, gword ptr [rsp+0x28]
-       ; gcrRegs +[rcx]
-       mov      rax, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType
-       cmp      qword ptr [rcx], rax
+       mov      rax, gword ptr [rsp+0x28]
+       ; gcrRegs +[rax]
+       mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType
+       cmp      qword ptr [rax], rcx
        jne      SHORT G_M54628_IG08
 						;; size=20 bbWeight=1 PerfScore 5.25
-G_M54628_IG05:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
-       mov      rax, gword ptr [rcx+0x08]
+G_M54628_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rax]
+       mov      rax, gword ptr [rsp+0x28]
        ; gcrRegs +[rax]
-						;; size=4 bbWeight=0.50 PerfScore 1.00
+       mov      rax, gword ptr [rax+0x08]
+						;; size=9 bbWeight=0.50 PerfScore 1.50
 G_M54628_IG06:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
-       ; gcrRegs -[rcx]
        add      rsp, 56
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
@@ -75,17 +76,21 @@ G_M54628_IG07:        ; bbWeight=0.04, gcVars=0000000000000000 {}, gcrefRegs=000
        ; gcr arg pop 0
        jmp      SHORT G_M54628_IG04
 						;; size=20 bbWeight=0.04 PerfScore 0.43
-G_M54628_IG08:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M54628_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       mov      rcx, gword ptr [rsp+0x28]
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rcx]
+       mov      rax, gword ptr [rsp+0x28]
+       ; gcrRegs +[rax]
+       mov      rax, qword ptr [rax]
+       ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
        jmp      SHORT G_M54628_IG06
-						;; size=12 bbWeight=0 PerfScore 0.00
+						;; size=22 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 117, prolog size 21, PerfScore 19.65, instruction count 28, allocated bytes for code 117 (MethodHash=6a052a9b) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:Microsoft.Cci.IParameterTypeInformation.get_CustomModifiers():System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]:this (Tier1)
+; Total bytes of code 132, prolog size 21, PerfScore 20.15, instruction count 31, allocated bytes for code 132 (MethodHash=6a052a9b) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:Microsoft.Cci.IParameterTypeInformation.get_CustomModifiers():System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]:this (Tier1)
 ; ============================================================
 
 Unwind Info:
+42 (+17.36%) : 306192.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (Tier1)
@@ -8,17 +8,17 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  6,  3.50)     ref  ->  rcx         class-hnd single-def <System.Type>
-;  V01 arg1         [V01,T01] (  3,  3   )     int  ->  rbx         single-def
-;  V02 loc0         [V02    ] (  5,  5   )  struct (16) [rsp+0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ushort]>
+;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rbx         single-def
+;  V02 loc0         [V02,T07] (  3,  3   )  struct (16) [rsp+0x48]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.ArraySegment`1[ushort]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V06 tmp3         [V06,T02] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
+;  V06 tmp3         [V06,T03] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
 ;* V08 tmp5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling ret_expr" <ushort[]>
-;  V09 tmp6         [V09,T08] (  3,  1.50)     ref  ->  rax         "guarded devirt return temp"
+;  V09 tmp6         [V09,T10] (  3,  1.50)     ref  ->  rax         "guarded devirt return temp"
 ;* V10 tmp7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.RuntimeType>
-;* V11 tmp8         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
+;  V11 tmp8         [V11    ] ( 11, 12   )  struct (16) [rsp+0x38]  do-not-enreg[SF] must-init ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
 ;* V12 tmp9         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ushort[]>
 ;* V13 tmp10        [V13    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
@@ -31,30 +31,31 @@
 ;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;  V24 tmp21        [V24,T03] (  4,  3   )     ref  ->  rcx         single-def "field V11._array (fldOffset=0x0)" P-INDEP
-;  V25 tmp22        [V25,T04] (  4,  2   )     int  ->  rsi         single-def "field V11._offset (fldOffset=0x8)" P-INDEP
-;  V26 tmp23        [V26,T05] (  4,  2   )     int  ->  rdi         single-def "field V11._count (fldOffset=0xc)" P-INDEP
-;  V27 tmp24        [V27,T09] (  3,  1.50)   byref  ->  rbp         "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V28 tmp25        [V28,T10] (  3,  1.50)     int  ->  rdi         "field V14._length (fldOffset=0x8)" P-INDEP
+;  V24 tmp21        [V24,T01] (  5,  5   )     ref  ->  [rsp+0x38]  do-not-enreg[] single-def "field V11._array (fldOffset=0x0)" P-DEP
+;  V25 tmp22        [V25,T04] (  4,  3   )     int  ->  [rsp+0x40]  do-not-enreg[] "field V11._offset (fldOffset=0x8)" P-DEP
+;  V26 tmp23        [V26,T05] (  4,  3   )     int  ->  [rsp+0x44]  do-not-enreg[] "field V11._count (fldOffset=0xc)" P-DEP
+;  V27 tmp24        [V27,T11] (  3,  1.50)   byref  ->  rdi         "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V28 tmp25        [V28,T12] (  3,  1.50)     int  ->  rbp         "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def "field V16._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp28        [V31,T06] (  2,  2   )   byref  ->  rbp         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;  V32 tmp29        [V32,T07] (  2,  2   )     int  ->  rdi         single-def "field V17._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp30        [V33    ] (  3,  6   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V31 tmp28        [V31,T08] (  2,  2   )   byref  ->  rdi         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp29        [V32,T09] (  2,  2   )     int  ->  rbp         single-def "field V17._length (fldOffset=0x8)" P-INDEP
+;  V33 tmp30        [V33,T06] (  3,  3   )     ref  ->  rsi         single-def "V02.[000..008)"
+;  V34 tmp31        [V34    ] (  3,  6   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
 ;
-; Lcl frame size = 72
+; Lcl frame size = 88
 
 G_M9354_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 72
+       sub      rsp, 88
        xor      eax, eax
        mov      qword ptr [rsp+0x28], rax
        vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x30], xmm4
-       mov      qword ptr [rsp+0x40], rax
+       vmovdqu  ymmword ptr [rsp+0x30], ymm4
+       mov      qword ptr [rsp+0x50], rax
        mov      ebx, edx
 						;; size=32 bbWeight=1 PerfScore 9.08
 G_M9354_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
@@ -69,8 +70,8 @@ G_M9354_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, b
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
 						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M9354_IG04:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
-       lea      rcx, [rsp+0x38]
+G_M9354_IG04:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
+       lea      rcx, [rsp+0x48]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        mov      r9d, ebx
@@ -79,55 +80,62 @@ G_M9354_IG04:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byre
        call     [<unknown method>]
        ; gcrRegs -[rax rdx r8]
        ; gcr arg pop 0
+       mov      rsi, gword ptr [rsp+0x48]
+       ; gcrRegs +[rsi]
+       mov      gword ptr [rsp+0x38], rsi
+       mov      rcx, qword ptr [rsp+0x50]
+       mov      qword ptr [rsp+0x40], rcx
+       cmp      gword ptr [rsp+0x38], 0
+       je       G_M9354_IG09
+						;; size=59 bbWeight=1 PerfScore 11.25
+G_M9354_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+       mov      ecx, dword ptr [rsp+0x40]
+       mov      eax, dword ptr [rsp+0x44]
+       add      rcx, rax
+       mov      rax, gword ptr [rsp+0x38]
+       ; gcrRegs +[rax]
+       mov      eax, dword ptr [rax+0x08]
+       ; gcrRegs -[rax]
+       cmp      rcx, rax
+       ja       G_M9354_IG10
        mov      rcx, gword ptr [rsp+0x38]
        ; gcrRegs +[rcx]
-       mov      esi, dword ptr [rsp+0x40]
-       mov      edi, dword ptr [rsp+0x44]
-       test     rcx, rcx
-       je       SHORT G_M9354_IG09
-						;; size=45 bbWeight=1 PerfScore 8.50
-G_M9354_IG05:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       mov      eax, esi
-       mov      edx, edi
-       add      rax, rdx
-       mov      edx, dword ptr [rcx+0x08]
-       cmp      rax, rdx
-       ja       SHORT G_M9354_IG10
-       mov      eax, esi
-       lea      rbp, bword ptr [rcx+2*rax+0x10]
-       ; byrRegs +[rbp]
-						;; size=22 bbWeight=0.50 PerfScore 2.62
-G_M9354_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref
+       mov      eax, dword ptr [rsp+0x40]
+       lea      rdi, bword ptr [rcx+2*rax+0x10]
+       ; byrRegs +[rdi]
+       mov      ebp, dword ptr [rsp+0x44]
+						;; size=46 bbWeight=0.50 PerfScore 5.25
+G_M9354_IG06:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
        ; gcrRegs -[rcx]
        mov      ecx, 1
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      bword ptr [rsp+0x28], rbp
-       mov      dword ptr [rsp+0x30], edi
+       mov      bword ptr [rsp+0x28], rdi
+       mov      dword ptr [rsp+0x30], ebp
        lea      rcx, [rsp+0x28]
        mov      edx, 1
        xor      r8, r8
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[r8] +[rax]
-       ; byrRegs -[rbp]
+       ; byrRegs -[rdi]
        ; gcr arg pop 0
        mov      rbx, rax
        ; gcrRegs +[rbx]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rsp+0x38]
+       mov      rdx, rsi
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
+       ; gcrRegs -[rax rcx rdx rsi]
        ; gcr arg pop 0
        mov      rax, rbx
        ; gcrRegs +[rax]
-						;; size=72 bbWeight=1 PerfScore 16.25
+						;; size=70 bbWeight=1 PerfScore 15.50
 G_M9354_IG07:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 72
+       add      rsp, 88
        pop      rbx
        pop      rbp
        pop      rsi
@@ -143,23 +151,25 @@ G_M9354_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {r
        ; gcr arg pop 0
        jmp      G_M9354_IG04
 						;; size=15 bbWeight=0 PerfScore 0.00
-G_M9354_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       or       esi, edi
+G_M9354_IG09:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rax] +[rsi]
+       mov      eax, dword ptr [rsp+0x40]
+       or       eax, dword ptr [rsp+0x44]
        jne      SHORT G_M9354_IG10
-       xor      rbp, rbp
-       ; byrRegs +[rbp]
-       xor      edi, edi
+       xor      rdi, rdi
+       ; byrRegs +[rdi]
+       xor      ebp, ebp
        jmp      SHORT G_M9354_IG06
-						;; size=10 bbWeight=0 PerfScore 0.00
+						;; size=16 bbWeight=0 PerfScore 0.00
 G_M9354_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rbp]
+       ; gcrRegs -[rsi]
+       ; byrRegs -[rdi]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 242, prolog size 30, PerfScore 45.58, instruction count 66, allocated bytes for code 242 (MethodHash=2c99db75) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (Tier1)
+; Total bytes of code 284, prolog size 30, PerfScore 50.21, instruction count 71, allocated bytes for code 284 (MethodHash=2c99db75) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -172,7 +182,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
     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)
+40 (+19.51%) : 306154.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (Tier1)
@@ -8,16 +8,16 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  4,  4   )     ref  ->  rbx         class-hnd single-def <System.Reflection.Metadata.TypeName>
-;  V01 arg1         [V01,T01] (  3,  3   )     int  ->  rsi         single-def
-;  V02 loc0         [V02    ] (  5,  5   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ushort]>
+;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rsi         single-def
+;  V02 loc0         [V02,T09] (  3,  3   )  struct (16) [rsp+0x40]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.ArraySegment`1[ushort]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V07 tmp4         [V07,T02] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
+;  V07 tmp4         [V07,T03] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
 ;* V08 tmp5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling ret_expr" <ushort[]>
-;* V10 tmp7         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
+;  V10 tmp7         [V10    ] ( 11, 12   )  struct (16) [rsp+0x30]  do-not-enreg[SF] must-init ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
 ;* V11 tmp8         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ushort[]>
 ;* V12 tmp9         [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
@@ -30,32 +30,34 @@
 ;* V20 tmp17        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp20        [V23,T05] (  4,  3   )     ref  ->  rcx         single-def "field V10._array (fldOffset=0x0)" P-INDEP
-;  V24 tmp21        [V24,T06] (  4,  2   )     int  ->  rbx         single-def "field V10._offset (fldOffset=0x8)" P-INDEP
-;  V25 tmp22        [V25,T07] (  4,  2   )     int  ->  rsi         single-def "field V10._count (fldOffset=0xc)" P-INDEP
-;  V26 tmp23        [V26,T10] (  3,  1.50)   byref  ->  rdi         "field V13._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp24        [V27,T11] (  3,  1.50)     int  ->  rsi         "field V13._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp20        [V23,T01] (  5,  5   )     ref  ->  [rsp+0x30]  do-not-enreg[] single-def "field V10._array (fldOffset=0x0)" P-DEP
+;  V24 tmp21        [V24,T06] (  4,  3   )     int  ->  [rsp+0x38]  do-not-enreg[] "field V10._offset (fldOffset=0x8)" P-DEP
+;  V25 tmp22        [V25,T07] (  4,  3   )     int  ->  [rsp+0x3C]  do-not-enreg[] "field V10._count (fldOffset=0xc)" P-DEP
+;  V26 tmp23        [V26,T12] (  3,  1.50)   byref  ->  rsi         "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V27 tmp24        [V27,T13] (  3,  1.50)     int  ->  rdi         "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp25        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "field V15._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp27        [V30,T08] (  2,  2   )   byref  ->  rdi         single-def "field V16._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp28        [V31,T09] (  2,  2   )     int  ->  rsi         single-def "field V16._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp29        [V32,T03] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V33 tmp30        [V33,T04] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V34 tmp31        [V34    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V30 tmp27        [V30,T10] (  2,  2   )   byref  ->  rsi         single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V31 tmp28        [V31,T11] (  2,  2   )     int  ->  rdi         single-def "field V16._length (fldOffset=0x8)" P-INDEP
+;  V32 tmp29        [V32,T08] (  3,  3   )     ref  ->  rbx         single-def "V02.[000..008)"
+;  V33 tmp30        [V33,T04] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
+;  V34 tmp31        [V34,T05] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V35 tmp32        [V35    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 80
 
 G_M6715_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 80
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      esi, edx
-						;; size=22 bbWeight=1 PerfScore 6.08
+						;; size=28 bbWeight=1 PerfScore 8.08
 G_M6715_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -75,82 +77,91 @@ G_M6715_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byre
        ; gcrRegs +[r8]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x30]
+       lea      rcx, [rsp+0x40]
        mov      r9d, esi
        call     [<unknown method>]
        ; gcrRegs -[rax rdx rdi r8]
        ; gcr arg pop 0
+       mov      rbx, gword ptr [rsp+0x40]
+       ; gcrRegs +[rbx]
+       mov      gword ptr [rsp+0x30], rbx
+       mov      rcx, qword ptr [rsp+0x48]
+       mov      qword ptr [rsp+0x38], rcx
+       cmp      gword ptr [rsp+0x30], 0
+       je       SHORT G_M6715_IG06
+						;; size=74 bbWeight=1 PerfScore 25.75
+G_M6715_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, dword ptr [rsp+0x38]
+       mov      eax, dword ptr [rsp+0x3C]
+       add      rcx, rax
+       mov      rax, gword ptr [rsp+0x30]
+       ; gcrRegs +[rax]
+       mov      eax, dword ptr [rax+0x08]
+       ; gcrRegs -[rax]
+       cmp      rcx, rax
+       ja       SHORT G_M6715_IG07
        mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
-       mov      ebx, dword ptr [rsp+0x38]
-       mov      esi, dword ptr [rsp+0x3C]
-       test     rcx, rcx
-       je       SHORT G_M6715_IG06
-						;; size=64 bbWeight=1 PerfScore 23.00
-G_M6715_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       mov      eax, ebx
-       mov      edx, esi
-       add      rax, rdx
-       mov      edx, dword ptr [rcx+0x08]
-       cmp      rax, rdx
-       ja       SHORT G_M6715_IG07
-       mov      eax, ebx
-       lea      rdi, bword ptr [rcx+2*rax+0x10]
-       ; byrRegs +[rdi]
-						;; size=22 bbWeight=0.50 PerfScore 2.62
-G_M6715_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+       mov      eax, dword ptr [rsp+0x38]
+       lea      rsi, bword ptr [rcx+2*rax+0x10]
+       ; byrRegs +[rsi]
+       mov      edi, dword ptr [rsp+0x3C]
+						;; size=42 bbWeight=0.50 PerfScore 5.25
+G_M6715_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rcx]
        mov      ecx, 1
        call     [<unknown method>]
        ; gcr arg pop 0
-       mov      bword ptr [rsp+0x20], rdi
-       mov      dword ptr [rsp+0x28], esi
+       mov      bword ptr [rsp+0x20], rsi
+       mov      dword ptr [rsp+0x28], edi
        lea      rcx, [rsp+0x20]
        mov      edx, 1
        xor      r8, r8
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[r8] +[rax]
-       ; byrRegs -[rdi]
+       ; byrRegs -[rsi]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rsp+0x30]
+       mov      rdx, rbx
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
+       ; gcrRegs -[rax rcx rdx rbx]
        ; gcr arg pop 0
-       mov      rax, rbx
+       mov      rax, rsi
        ; gcrRegs +[rax]
-						;; size=72 bbWeight=1 PerfScore 16.25
+						;; size=70 bbWeight=1 PerfScore 15.50
 G_M6715_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 80
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
-G_M6715_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax rbx]
-       or       ebx, esi
+G_M6715_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax rsi] +[rbx]
+       mov      eax, dword ptr [rsp+0x38]
+       or       eax, dword ptr [rsp+0x3C]
        jne      SHORT G_M6715_IG07
-       xor      rdi, rdi
-       ; byrRegs +[rdi]
-       xor      esi, esi
+       xor      rsi, rsi
+       ; byrRegs +[rsi]
+       xor      edi, edi
        jmp      SHORT G_M6715_IG04
-						;; size=10 bbWeight=0 PerfScore 0.00
+						;; size=16 bbWeight=0 PerfScore 0.00
 G_M6715_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       ; gcrRegs -[rbx]
+       ; byrRegs -[rsi]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 205, prolog size 17, PerfScore 50.71, instruction count 60, allocated bytes for code 205 (MethodHash=48a4e5c4) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (Tier1)
+; Total bytes of code 245, prolog size 23, PerfScore 57.33, instruction count 66, allocated bytes for code 245 (MethodHash=48a4e5c4) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -163,7 +174,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
     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)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch
-28 (-47.46%) : 110931.dasm - System.Diagnostics.Tests.PerformanceCounterTests+<>c__DisplayClass14_0:b__1():long:this (FullOpts)
@@ -9,20 +9,14 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Diagnostics.Tests.PerformanceCounterTests+<>c__DisplayClass14_0>
-;  V01 loc0         [V01    ] (  2,  2   )  struct (64) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Diagnostics.CounterSample>
+;  V01 loc0         [V01,T01] (  2,  2   )  struct (64) [rsp+0x28]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <System.Diagnostics.CounterSample>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 104
 
 G_M34473_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 104
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x30], ymm4
-       vmovdqa  xmmword ptr [rsp+0x50], xmm4
-       mov      qword ptr [rsp+0x60], rax
-						;; size=32 bbWeight=1 PerfScore 6.83
+						;; size=4 bbWeight=1 PerfScore 0.25
 G_M34473_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        mov      rcx, gword ptr [rcx+0x08]
@@ -38,7 +32,7 @@ G_M34473_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 59, prolog size 32, PerfScore 17.58, instruction count 14, allocated bytes for code 59 (MethodHash=a6847956) for method System.Diagnostics.Tests.PerformanceCounterTests+<>c__DisplayClass14_0:<PerformanceCounter_Increment>b__1():long:this (FullOpts)
+; Total bytes of code 31, prolog size 4, PerfScore 11.00, instruction count 8, allocated bytes for code 31 (MethodHash=a6847956) for method System.Diagnostics.Tests.PerformanceCounterTests+<>c__DisplayClass14_0:<PerformanceCounter_Increment>b__1():long:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-28 (-47.46%) : 110970.dasm - System.Diagnostics.Tests.PerformanceCounterTests+<>c__DisplayClass15_0:b__1():long:this (FullOpts)
@@ -9,20 +9,14 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Diagnostics.Tests.PerformanceCounterTests+<>c__DisplayClass15_0>
-;  V01 loc0         [V01    ] (  2,  2   )  struct (64) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Diagnostics.CounterSample>
+;  V01 loc0         [V01,T01] (  2,  2   )  struct (64) [rsp+0x28]  do-not-enreg[HS] hidden-struct-arg ld-addr-op <System.Diagnostics.CounterSample>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 104
 
 G_M10308_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 104
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x30], ymm4
-       vmovdqa  xmmword ptr [rsp+0x50], xmm4
-       mov      qword ptr [rsp+0x60], rax
-						;; size=32 bbWeight=1 PerfScore 6.83
+						;; size=4 bbWeight=1 PerfScore 0.25
 G_M10308_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        mov      rcx, gword ptr [rcx+0x08]
@@ -38,7 +32,7 @@ G_M10308_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 59, prolog size 32, PerfScore 17.58, instruction count 14, allocated bytes for code 59 (MethodHash=b0bed7bb) for method System.Diagnostics.Tests.PerformanceCounterTests+<>c__DisplayClass15_0:<PerformanceCounter_IncrementBy_IncrementBy2>b__1():long:this (FullOpts)
+; Total bytes of code 31, prolog size 4, PerfScore 11.00, instruction count 8, allocated bytes for code 31 (MethodHash=b0bed7bb) for method System.Diagnostics.Tests.PerformanceCounterTests+<>c__DisplayClass15_0:<PerformanceCounter_IncrementBy_IncrementBy2>b__1():long:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-27 (-24.55%) : 13386.dasm - Microsoft.CodeAnalysis.CSharp.Simplification.CSharpEscapingReducer+Rewriter:VisitToken(Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
@@ -10,66 +10,56 @@
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Simplification.CSharpEscapingReducer+Rewriter>
 ;  V01 RetBuf       [V01,T02] (  4,  4   )   byref  ->  rsi         single-def
 ;  V02 arg1         [V02,T00] (  3,  6   )   byref  ->   r8         single-def
-;  V03 loc0         [V03    ] (  2,  2   )  struct (24) [rsp+0x40]  do-not-enreg[XS] must-init addr-exposed <Microsoft.CodeAnalysis.SyntaxToken>
+;  V03 loc0         [V03    ] (  2,  2   )  struct (24) [rsp+0x20]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg <Microsoft.CodeAnalysis.SyntaxToken>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05    ] (  2,  4   )  struct (24) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
 ;
-; Lcl frame size = 88
+; Lcl frame size = 56
 
 G_M61200_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rsi
        push     rbx
-       sub      rsp, 88
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
+       sub      rsp, 56
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x30], ymm4
-       mov      qword ptr [rsp+0x50], rax
+       vmovdqa  xmmword ptr [rsp+0x20], xmm4
+       xor      eax, eax
+       mov      qword ptr [rsp+0x30], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, rdx
        ; byrRegs +[rsi]
-						;; size=34 bbWeight=1 PerfScore 7.33
+						;; size=29 bbWeight=1 PerfScore 6.33
 G_M61200_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0140 {rsi r8}, byref
        ; byrRegs +[r8]
-       lea      rdx, [rsp+0x40]
+       lea      rdx, [rsp+0x20]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; byrRegs -[r8]
        ; gcr arg pop 0
-						;; size=14 bbWeight=1 PerfScore 3.75
-G_M61200_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rsp+0x40]
-       vmovdqu  xmmword ptr [rsp+0x28], xmm0
-       mov      r8, qword ptr [rsp+0x50]
-       mov      qword ptr [rsp+0x38], r8
-						;; size=22 bbWeight=1 PerfScore 6.00
-G_M61200_IG04:        ; bbWeight=1, extend
-       lea      r8, [rsp+0x28]
        mov      r9, 0xD1FFAB1E      ; const ptr
        mov      r9, gword ptr [r9]
        ; gcrRegs +[r9]
-       mov      rdx, rsi
-       ; byrRegs +[rdx]
+       lea      r8, [rsp+0x20]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
+       mov      rdx, rsi
+       ; byrRegs +[rdx]
        call     [Microsoft.CodeAnalysis.CSharp.Simplification.AbstractCSharpReducer+AbstractReductionRewriter:SimplifyToken(Microsoft.CodeAnalysis.SyntaxToken,System.Func`5[Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.CSharp.Simplification.CSharpSimplifierOptions,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SyntaxToken]):Microsoft.CodeAnalysis.SyntaxToken:this]
        ; gcrRegs -[rcx rbx r9]
        ; byrRegs -[rdx]
        ; gcr arg pop 0
        mov      rax, rsi
        ; byrRegs +[rax]
-						;; size=33 bbWeight=1 PerfScore 6.50
-G_M61200_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 88
+						;; size=47 bbWeight=1 PerfScore 10.25
+G_M61200_IG03:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 56
        pop      rbx
        pop      rsi
        ret      
 						;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 110, prolog size 28, PerfScore 25.83, instruction count 28, allocated bytes for code 110 (MethodHash=08db10ef) for method Microsoft.CodeAnalysis.CSharp.Simplification.CSharpEscapingReducer+Rewriter:VisitToken(Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
+; Total bytes of code 83, prolog size 23, PerfScore 18.83, instruction count 23, allocated bytes for code 83 (MethodHash=08db10ef) for method Microsoft.CodeAnalysis.CSharp.Simplification.CSharpEscapingReducer+Rewriter:VisitToken(Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -82,6 +72,6 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
+    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+38 (+19.39%) : 131863.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (FullOpts)
@@ -9,55 +9,57 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  4,  4   )     ref  ->  rbx         class-hnd single-def <System.Reflection.Metadata.TypeName>
-;  V01 arg1         [V01,T01] (  3,  3   )     int  ->  rsi         single-def
-;  V02 loc0         [V02    ] (  5,  5   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ushort]>
+;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rsi         single-def
+;  V02 loc0         [V02,T11] (  3,  3   )  struct (16) [rsp+0x40]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.ArraySegment`1[ushort]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V07 tmp4         [V07,T02] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
+;  V07 tmp4         [V07,T03] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
 ;* V08 tmp5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
-;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
+;  V09 tmp6         [V09    ] ( 11, 12   )  struct (16) [rsp+0x30]  do-not-enreg[SF] must-init ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
 ;* V10 tmp7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ushort[]>
 ;* V11 tmp8         [V11    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V13 tmp10        [V13    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V15 tmp12        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;  V16 tmp13        [V16,T06] (  2,  4   )     int  ->  rsi         "Inlining Arg"
-;  V17 tmp14        [V17,T03] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V16 tmp13        [V16,T07] (  2,  4   )     int  ->  rdi         "Inlining Arg"
+;  V17 tmp14        [V17,T04] (  2,  4   )   byref  ->  rsi         single-def "Inlining Arg"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;  V24 tmp21        [V24,T07] (  4,  3   )     ref  ->  rcx         single-def "field V09._array (fldOffset=0x0)" P-INDEP
-;  V25 tmp22        [V25,T08] (  4,  2   )     int  ->  rbx         single-def "field V09._offset (fldOffset=0x8)" P-INDEP
-;  V26 tmp23        [V26,T09] (  4,  2   )     int  ->  rsi         single-def "field V09._count (fldOffset=0xc)" P-INDEP
-;  V27 tmp24        [V27,T12] (  3,  1.50)   byref  ->  rdi         "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V28 tmp25        [V28,T13] (  3,  1.50)     int  ->  rsi         "field V12._length (fldOffset=0x8)" P-INDEP
+;  V24 tmp21        [V24,T01] (  5,  5   )     ref  ->  [rsp+0x30]  do-not-enreg[] single-def "field V09._array (fldOffset=0x0)" P-DEP
+;  V25 tmp22        [V25,T08] (  4,  3   )     int  ->  [rsp+0x38]  do-not-enreg[] "field V09._offset (fldOffset=0x8)" P-DEP
+;  V26 tmp23        [V26,T09] (  4,  3   )     int  ->  [rsp+0x3C]  do-not-enreg[] "field V09._count (fldOffset=0xc)" P-DEP
+;  V27 tmp24        [V27,T14] (  3,  1.50)   byref  ->  rsi         "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V28 tmp25        [V28,T15] (  3,  1.50)     int  ->  rdi         "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp28        [V31,T10] (  2,  2   )   byref  ->  rdi         single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-;  V32 tmp29        [V32,T11] (  2,  2   )     int  ->  rsi         single-def "field V15._length (fldOffset=0x8)" P-INDEP
-;  V33 tmp30        [V33,T04] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V34 tmp31        [V34,T05] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V35 tmp32        [V35    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V31 tmp28        [V31,T12] (  2,  2   )   byref  ->  rsi         single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp29        [V32,T13] (  2,  2   )     int  ->  rdi         single-def "field V15._length (fldOffset=0x8)" P-INDEP
+;  V33 tmp30        [V33,T10] (  3,  3   )     ref  ->  rbx         single-def "V02.[000..008)"
+;  V34 tmp31        [V34,T05] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
+;  V35 tmp32        [V35,T06] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V36 tmp33        [V36    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 80
 
 G_M6715_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 80
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      esi, edx
-						;; size=22 bbWeight=1 PerfScore 6.08
+						;; size=28 bbWeight=1 PerfScore 8.08
 G_M6715_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -77,79 +79,88 @@ G_M6715_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byre
        ; gcrRegs +[r8]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x30]
+       lea      rcx, [rsp+0x40]
        mov      r9d, esi
        call     [<unknown method>]
        ; gcrRegs -[rax rdx rdi r8]
        ; gcr arg pop 0
+       mov      rbx, gword ptr [rsp+0x40]
+       ; gcrRegs +[rbx]
+       mov      gword ptr [rsp+0x30], rbx
+       mov      rcx, qword ptr [rsp+0x48]
+       mov      qword ptr [rsp+0x38], rcx
+       cmp      gword ptr [rsp+0x30], 0
+       je       SHORT G_M6715_IG06
+						;; size=74 bbWeight=1 PerfScore 25.75
+G_M6715_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, dword ptr [rsp+0x38]
+       mov      edx, dword ptr [rsp+0x3C]
+       add      rcx, rdx
+       mov      rdx, gword ptr [rsp+0x30]
+       ; gcrRegs +[rdx]
+       mov      edx, dword ptr [rdx+0x08]
+       ; gcrRegs -[rdx]
+       cmp      rcx, rdx
+       ja       SHORT G_M6715_IG07
        mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
-       mov      ebx, dword ptr [rsp+0x38]
-       mov      esi, dword ptr [rsp+0x3C]
-       test     rcx, rcx
-       je       SHORT G_M6715_IG06
-						;; size=64 bbWeight=1 PerfScore 23.00
-G_M6715_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       mov      edx, ebx
-       mov      r8d, esi
-       add      rdx, r8
-       mov      r8d, dword ptr [rcx+0x08]
-       cmp      rdx, r8
-       ja       SHORT G_M6715_IG07
-       mov      edx, ebx
-       lea      rdi, bword ptr [rcx+2*rdx+0x10]
-       ; byrRegs +[rdi]
-						;; size=24 bbWeight=0.50 PerfScore 2.62
-G_M6715_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+       mov      edx, dword ptr [rsp+0x38]
+       lea      rsi, bword ptr [rcx+2*rdx+0x10]
+       ; byrRegs +[rsi]
+       mov      edi, dword ptr [rsp+0x3C]
+						;; size=42 bbWeight=0.50 PerfScore 5.25
+G_M6715_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rcx]
-       mov      bword ptr [rsp+0x20], rdi
-       mov      dword ptr [rsp+0x28], esi
+       mov      bword ptr [rsp+0x20], rsi
+       mov      dword ptr [rsp+0x28], edi
        lea      rcx, [rsp+0x20]
        mov      edx, 1
        xor      r8, r8
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[r8] +[rax]
-       ; byrRegs -[rdi]
+       ; byrRegs -[rsi]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rsp+0x30]
+       mov      rdx, rbx
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
+       ; gcrRegs -[rax rcx rdx rbx]
        ; gcr arg pop 0
-       mov      rax, rbx
+       mov      rax, rsi
        ; gcrRegs +[rax]
-						;; size=61 bbWeight=1 PerfScore 13.00
+						;; size=59 bbWeight=1 PerfScore 12.25
 G_M6715_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 80
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
-G_M6715_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax rbx]
-       or       ebx, esi
+G_M6715_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax rsi] +[rbx]
+       mov      eax, dword ptr [rsp+0x38]
+       or       eax, dword ptr [rsp+0x3C]
        jne      SHORT G_M6715_IG07
-       xor      rdi, rdi
-       ; byrRegs +[rdi]
-       xor      esi, esi
+       xor      rsi, rsi
+       ; byrRegs +[rsi]
+       xor      edi, edi
        jmp      SHORT G_M6715_IG04
-						;; size=10 bbWeight=0 PerfScore 0.00
+						;; size=16 bbWeight=0 PerfScore 0.00
 G_M6715_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       ; gcrRegs -[rbx]
+       ; byrRegs -[rsi]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 196, prolog size 17, PerfScore 47.46, instruction count 58, allocated bytes for code 196 (MethodHash=48a4e5c4) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (FullOpts)
+; Total bytes of code 234, prolog size 23, PerfScore 54.08, instruction count 64, allocated bytes for code 234 (MethodHash=48a4e5c4) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -162,7 +173,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
     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)
+38 (+20.65%) : 131917.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (FullOpts)
@@ -9,51 +9,53 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  4,  4   )     ref  ->  rcx         class-hnd single-def <System.Type>
-;  V01 arg1         [V01,T01] (  3,  3   )     int  ->  rbx         single-def
-;  V02 loc0         [V02    ] (  5,  5   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ushort]>
+;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rbx         single-def
+;  V02 loc0         [V02,T10] (  3,  3   )  struct (16) [rsp+0x40]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.ArraySegment`1[ushort]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V06 tmp3         [V06,T02] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
+;  V06 tmp3         [V06,T03] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
-;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
+;  V08 tmp5         [V08    ] ( 11, 12   )  struct (16) [rsp+0x30]  do-not-enreg[SF] must-init ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ushort[]>
 ;* V10 tmp7         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V11 tmp8         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V12 tmp9         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;  V15 tmp12        [V15,T05] (  2,  4   )     int  ->  rsi         "Inlining Arg"
-;  V16 tmp13        [V16,T03] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V15 tmp12        [V15,T06] (  2,  4   )     int  ->  rdi         "Inlining Arg"
+;  V16 tmp13        [V16,T04] (  2,  4   )   byref  ->  rsi         single-def "Inlining Arg"
 ;* V17 tmp14        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V20 tmp17        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp20        [V23,T06] (  4,  3   )     ref  ->  rcx         single-def "field V08._array (fldOffset=0x0)" P-INDEP
-;  V24 tmp21        [V24,T07] (  4,  2   )     int  ->  rbx         single-def "field V08._offset (fldOffset=0x8)" P-INDEP
-;  V25 tmp22        [V25,T08] (  4,  2   )     int  ->  rsi         single-def "field V08._count (fldOffset=0xc)" P-INDEP
-;  V26 tmp23        [V26,T11] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp24        [V27,T12] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp20        [V23,T01] (  5,  5   )     ref  ->  [rsp+0x30]  do-not-enreg[] single-def "field V08._array (fldOffset=0x0)" P-DEP
+;  V24 tmp21        [V24,T07] (  4,  3   )     int  ->  [rsp+0x38]  do-not-enreg[] "field V08._offset (fldOffset=0x8)" P-DEP
+;  V25 tmp22        [V25,T08] (  4,  3   )     int  ->  [rsp+0x3C]  do-not-enreg[] "field V08._count (fldOffset=0xc)" P-DEP
+;  V26 tmp23        [V26,T13] (  3,  1.50)   byref  ->  rsi         "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V27 tmp24        [V27,T14] (  3,  1.50)     int  ->  rdi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp25        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "field V13._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp27        [V30,T09] (  2,  2   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp28        [V31,T10] (  2,  2   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp29        [V32,T04] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V33 tmp30        [V33    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V30 tmp27        [V30,T11] (  2,  2   )   byref  ->  rsi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V31 tmp28        [V31,T12] (  2,  2   )     int  ->  rdi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
+;  V32 tmp29        [V32,T09] (  3,  3   )     ref  ->  rbx         single-def "V02.[000..008)"
+;  V33 tmp30        [V33,T05] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
+;  V34 tmp31        [V34    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 80
 
 G_M9354_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 80
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
        mov      ebx, edx
-						;; size=19 bbWeight=1 PerfScore 5.83
+						;; size=25 bbWeight=1 PerfScore 7.83
 G_M9354_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rcx]
@@ -63,81 +65,90 @@ G_M9354_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byre
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x30]
+       lea      rcx, [rsp+0x40]
        mov      r9d, ebx
        mov      r8, 0xD1FFAB1E
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[rax rdx r8]
        ; gcr arg pop 0
+       mov      rbx, gword ptr [rsp+0x40]
+       ; gcrRegs +[rbx]
+       mov      gword ptr [rsp+0x30], rbx
+       mov      rcx, qword ptr [rsp+0x48]
+       mov      qword ptr [rsp+0x38], rcx
+       cmp      gword ptr [rsp+0x30], 0
+       je       SHORT G_M9354_IG06
+						;; size=65 bbWeight=1 PerfScore 18.25
+G_M9354_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, dword ptr [rsp+0x38]
+       mov      edx, dword ptr [rsp+0x3C]
+       add      rcx, rdx
+       mov      rdx, gword ptr [rsp+0x30]
+       ; gcrRegs +[rdx]
+       mov      edx, dword ptr [rdx+0x08]
+       ; gcrRegs -[rdx]
+       cmp      rcx, rdx
+       ja       SHORT G_M9354_IG07
        mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
-       mov      ebx, dword ptr [rsp+0x38]
-       mov      esi, dword ptr [rsp+0x3C]
-       test     rcx, rcx
-       je       SHORT G_M9354_IG06
-						;; size=55 bbWeight=1 PerfScore 15.50
-G_M9354_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       mov      edx, ebx
-       mov      r8d, esi
-       add      rdx, r8
-       mov      r8d, dword ptr [rcx+0x08]
-       cmp      rdx, r8
-       ja       SHORT G_M9354_IG07
-       mov      edx, ebx
-       lea      rdi, bword ptr [rcx+2*rdx+0x10]
-       ; byrRegs +[rdi]
-						;; size=24 bbWeight=0.50 PerfScore 2.62
-G_M9354_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+       mov      edx, dword ptr [rsp+0x38]
+       lea      rsi, bword ptr [rcx+2*rdx+0x10]
+       ; byrRegs +[rsi]
+       mov      edi, dword ptr [rsp+0x3C]
+						;; size=42 bbWeight=0.50 PerfScore 5.25
+G_M9354_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rcx]
-       mov      bword ptr [rsp+0x20], rdi
-       mov      dword ptr [rsp+0x28], esi
+       mov      bword ptr [rsp+0x20], rsi
+       mov      dword ptr [rsp+0x28], edi
        lea      rcx, [rsp+0x20]
        mov      edx, 1
        xor      r8, r8
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[r8] +[rax]
-       ; byrRegs -[rdi]
+       ; byrRegs -[rsi]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rsp+0x30]
+       mov      rdx, rbx
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
+       ; gcrRegs -[rax rcx rdx rbx]
        ; gcr arg pop 0
-       mov      rax, rbx
+       mov      rax, rsi
        ; gcrRegs +[rax]
-						;; size=61 bbWeight=1 PerfScore 13.00
+						;; size=59 bbWeight=1 PerfScore 12.25
 G_M9354_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 80
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
-G_M9354_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax rbx]
-       or       ebx, esi
+G_M9354_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax rsi] +[rbx]
+       mov      eax, dword ptr [rsp+0x38]
+       or       eax, dword ptr [rsp+0x3C]
        jne      SHORT G_M9354_IG07
-       xor      rdi, rdi
-       ; byrRegs +[rdi]
-       xor      esi, esi
+       xor      rsi, rsi
+       ; byrRegs +[rsi]
+       xor      edi, edi
        jmp      SHORT G_M9354_IG04
-						;; size=10 bbWeight=0 PerfScore 0.00
+						;; size=16 bbWeight=0 PerfScore 0.00
 G_M9354_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       ; gcrRegs -[rbx]
+       ; byrRegs -[rsi]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 184, prolog size 17, PerfScore 39.71, instruction count 53, allocated bytes for code 184 (MethodHash=2c99db75) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (FullOpts)
+; Total bytes of code 222, prolog size 23, PerfScore 46.33, instruction count 59, allocated bytes for code 222 (MethodHash=2c99db75) for method System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -150,7 +161,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
     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)
+38 (+21.59%) : 132070.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:WithAssemblyName(System.Reflection.Metadata.TypeName,System.String):System.Reflection.Metadata.TypeName (FullOpts)
@@ -8,53 +8,55 @@
 ; 1 inlinees with PGO data; 10 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->  rcx         class-hnd single-def <System.Reflection.Metadata.TypeName>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  rbx         class-hnd single-def <System.String>
-;  V02 loc0         [V02    ] (  5,  5   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ushort]>
+;  V00 arg0         [V00,T01] (  3,  3   )     ref  ->  rcx         class-hnd single-def <System.Reflection.Metadata.TypeName>
+;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rbx         class-hnd single-def <System.String>
+;  V02 loc0         [V02,T10] (  3,  3   )  struct (16) [rsp+0x40]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.ArraySegment`1[ushort]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V06 tmp3         [V06,T02] (  2,  4   )     ref  ->  rbx         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
+;  V06 tmp3         [V06,T03] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.Reflection.Metadata.TypeName>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
-;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
+;  V08 tmp5         [V08    ] ( 11, 12   )  struct (16) [rsp+0x30]  do-not-enreg[SF] must-init ld-addr-op "Inlining Arg" <System.ArraySegment`1[ushort]>
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ushort[]>
 ;* V10 tmp7         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V11 tmp8         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V12 tmp9         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;  V15 tmp12        [V15,T05] (  2,  4   )     int  ->  rsi         "Inlining Arg"
-;  V16 tmp13        [V16,T03] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;  V15 tmp12        [V15,T06] (  2,  4   )     int  ->  rdi         "Inlining Arg"
+;  V16 tmp13        [V16,T04] (  2,  4   )   byref  ->  rsi         single-def "Inlining Arg"
 ;* V17 tmp14        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V20 tmp17        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp20        [V23,T06] (  4,  3   )     ref  ->  rcx         single-def "field V08._array (fldOffset=0x0)" P-INDEP
-;  V24 tmp21        [V24,T07] (  4,  2   )     int  ->  rbx         single-def "field V08._offset (fldOffset=0x8)" P-INDEP
-;  V25 tmp22        [V25,T08] (  4,  2   )     int  ->  rsi         single-def "field V08._count (fldOffset=0xc)" P-INDEP
-;  V26 tmp23        [V26,T11] (  3,  1.50)   byref  ->  rdi         "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp24        [V27,T12] (  3,  1.50)     int  ->  rsi         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp20        [V23,T00] (  5,  5   )     ref  ->  [rsp+0x30]  do-not-enreg[] single-def "field V08._array (fldOffset=0x0)" P-DEP
+;  V24 tmp21        [V24,T07] (  4,  3   )     int  ->  [rsp+0x38]  do-not-enreg[] "field V08._offset (fldOffset=0x8)" P-DEP
+;  V25 tmp22        [V25,T08] (  4,  3   )     int  ->  [rsp+0x3C]  do-not-enreg[] "field V08._count (fldOffset=0xc)" P-DEP
+;  V26 tmp23        [V26,T13] (  3,  1.50)   byref  ->  rsi         "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V27 tmp24        [V27,T14] (  3,  1.50)     int  ->  rdi         "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp25        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "field V13._length (fldOffset=0x8)" P-INDEP
-;  V30 tmp27        [V30,T09] (  2,  2   )   byref  ->  rdi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V31 tmp28        [V31,T10] (  2,  2   )     int  ->  rsi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp29        [V32,T04] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V33 tmp30        [V33    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V30 tmp27        [V30,T11] (  2,  2   )   byref  ->  rsi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V31 tmp28        [V31,T12] (  2,  2   )     int  ->  rdi         single-def "field V14._length (fldOffset=0x8)" P-INDEP
+;  V32 tmp29        [V32,T09] (  3,  3   )     ref  ->  rbx         single-def "V02.[000..008)"
+;  V33 tmp30        [V33,T05] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
+;  V34 tmp31        [V34    ] (  3,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 80
 
 G_M2877_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 80
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-						;; size=20 bbWeight=1 PerfScore 5.83
+						;; size=26 bbWeight=1 PerfScore 7.83
 G_M2877_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        cmp      dword ptr [rcx], ecx
@@ -63,81 +65,90 @@ G_M2877_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {},
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       lea      rcx, [rsp+0x30]
+       lea      rcx, [rsp+0x40]
        mov      r8, rbx
        ; gcrRegs +[r8]
        xor      r9d, r9d
        call     [<unknown method>]
        ; gcrRegs -[rax rdx rbx r8]
        ; gcr arg pop 0
+       mov      rbx, gword ptr [rsp+0x40]
+       ; gcrRegs +[rbx]
+       mov      gword ptr [rsp+0x30], rbx
+       mov      rcx, qword ptr [rsp+0x48]
+       mov      qword ptr [rsp+0x38], rcx
+       cmp      gword ptr [rsp+0x30], 0
+       je       SHORT G_M2877_IG06
+						;; size=56 bbWeight=1 PerfScore 17.25
+G_M2877_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+       mov      ecx, dword ptr [rsp+0x38]
+       mov      edx, dword ptr [rsp+0x3C]
+       add      rcx, rdx
+       mov      rdx, gword ptr [rsp+0x30]
+       ; gcrRegs +[rdx]
+       mov      edx, dword ptr [rdx+0x08]
+       ; gcrRegs -[rdx]
+       cmp      rcx, rdx
+       ja       SHORT G_M2877_IG07
        mov      rcx, gword ptr [rsp+0x30]
        ; gcrRegs +[rcx]
-       mov      ebx, dword ptr [rsp+0x38]
-       mov      esi, dword ptr [rsp+0x3C]
-       test     rcx, rcx
-       je       SHORT G_M2877_IG06
-						;; size=46 bbWeight=1 PerfScore 14.50
-G_M2877_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
-       mov      edx, ebx
-       mov      r8d, esi
-       add      rdx, r8
-       mov      r8d, dword ptr [rcx+0x08]
-       cmp      rdx, r8
-       ja       SHORT G_M2877_IG07
-       mov      edx, ebx
-       lea      rdi, bword ptr [rcx+2*rdx+0x10]
-       ; byrRegs +[rdi]
-						;; size=24 bbWeight=0.50 PerfScore 2.62
-G_M2877_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+       mov      edx, dword ptr [rsp+0x38]
+       lea      rsi, bword ptr [rcx+2*rdx+0x10]
+       ; byrRegs +[rsi]
+       mov      edi, dword ptr [rsp+0x3C]
+						;; size=42 bbWeight=0.50 PerfScore 5.25
+G_M2877_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        ; gcrRegs -[rcx]
-       mov      bword ptr [rsp+0x20], rdi
-       mov      dword ptr [rsp+0x28], esi
+       mov      bword ptr [rsp+0x20], rsi
+       mov      dword ptr [rsp+0x28], edi
        lea      rcx, [rsp+0x20]
        mov      edx, 1
        xor      r8, r8
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[r8] +[rax]
-       ; byrRegs -[rdi]
+       ; byrRegs -[rsi]
        ; gcr arg pop 0
-       mov      rbx, rax
-       ; gcrRegs +[rbx]
+       mov      rsi, rax
+       ; gcrRegs +[rsi]
        mov      rcx, 0xD1FFAB1E      ; const ptr
        mov      rcx, gword ptr [rcx]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rsp+0x30]
+       mov      rdx, rbx
        ; gcrRegs +[rdx]
        xor      r8d, r8d
        call     [<unknown method>]
-       ; gcrRegs -[rax rcx rdx]
+       ; gcrRegs -[rax rcx rdx rbx]
        ; gcr arg pop 0
-       mov      rax, rbx
+       mov      rax, rsi
        ; gcrRegs +[rax]
-						;; size=61 bbWeight=1 PerfScore 13.00
+						;; size=59 bbWeight=1 PerfScore 12.25
 G_M2877_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 80
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
-G_M2877_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rax rbx]
-       or       ebx, esi
+G_M2877_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax rsi] +[rbx]
+       mov      eax, dword ptr [rsp+0x38]
+       or       eax, dword ptr [rsp+0x3C]
        jne      SHORT G_M2877_IG07
-       xor      rdi, rdi
-       ; byrRegs +[rdi]
-       xor      esi, esi
+       xor      rsi, rsi
+       ; byrRegs +[rsi]
+       xor      edi, edi
        jmp      SHORT G_M2877_IG04
-						;; size=10 bbWeight=0 PerfScore 0.00
+						;; size=16 bbWeight=0 PerfScore 0.00
 G_M2877_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rdi]
+       ; gcrRegs -[rbx]
+       ; byrRegs -[rsi]
        call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
        ; gcr arg pop 0
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 17, PerfScore 38.71, instruction count 52, allocated bytes for code 176 (MethodHash=1ac7f4c2) for method System.Formats.Nrbf.Utils.TypeNameExtensions:WithAssemblyName(System.Reflection.Metadata.TypeName,System.String):System.Reflection.Metadata.TypeName (FullOpts)
+; Total bytes of code 214, prolog size 23, PerfScore 45.33, instruction count 58, allocated bytes for code 214 (MethodHash=1ac7f4c2) for method System.Formats.Nrbf.Utils.TypeNameExtensions:WithAssemblyName(System.Reflection.Metadata.TypeName,System.String):System.Reflection.Metadata.TypeName (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -150,7 +161,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
     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)
realworld.run.windows.x64.checked.mch
-22 (-15.94%) : 20007.dasm - Microsoft.CodeAnalysis.CSharp.ControlFlowPass:VisitTryBlock(Microsoft.CodeAnalysis.CSharp.BoundStatement,Microsoft.CodeAnalysis.CSharp.BoundTryStatement,byref):this (FullOpts)
@@ -12,28 +12,25 @@
 ;  V01 arg1         [V01,T01] (  4,  3   )     ref  ->  rsi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundStatement>
 ;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->   r8         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundTryStatement>
 ;* V03 arg3         [V03    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V04 loc0         [V04    ] (  2,  1   )  struct (16) [rsp+0x38]  do-not-enreg[XS] must-init addr-exposed <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+SavedPending[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalFunctionState]>
+;  V04 loc0         [V04    ] (  2,  1   )  struct (16) [rsp+0x28]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+SavedPending[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalFunctionState]>
 ;* V05 loc1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundCatchBlock]>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T03] (  2,  2   )     ref  ->  rcx         single-def "field V05.array (fldOffset=0x0)" P-INDEP
-;  V08 tmp2         [V08    ] (  2,  2   )  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+SavedPending[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalFunctionState]>
 ;
-; Lcl frame size = 72
+; Lcl frame size = 56
 
 G_M53845_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
        push     rsi
        push     rbx
-       sub      rsp, 72
+       sub      rsp, 56
        xor      eax, eax
        mov      qword ptr [rsp+0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x30], xmm4
-       mov      qword ptr [rsp+0x40], rax
+       mov      qword ptr [rsp+0x30], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
-						;; size=34 bbWeight=1 PerfScore 7.33
+						;; size=24 bbWeight=1 PerfScore 5.00
 G_M53845_IG02:        ; bbWeight=1, gcrefRegs=0148 {rbx rsi r8}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r8]
        mov      rcx, gword ptr [r8+0x30]
@@ -55,14 +52,14 @@ G_M53845_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        nop      
 						;; size=20 bbWeight=0.50 PerfScore 3.88
 G_M53845_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 72
+       add      rsp, 56
        pop      rbx
        pop      rsi
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
 G_M53845_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rbx rsi]
-       lea      rdx, [rsp+0x38]
+       lea      rdx, [rsp+0x28]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:SavePending():Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+SavedPending[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:this]
@@ -77,12 +74,6 @@ G_M53845_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=004
        call     [rax+0x18]<unknown method>
        ; gcrRegs -[rcx rdx rsi]
        ; gcr arg pop 0
-						;; size=33 bbWeight=0.50 PerfScore 5.62
-G_M53845_IG06:        ; bbWeight=0.50, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rsp+0x38]
-       vmovdqu  xmmword ptr [rsp+0x28], xmm0
-						;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M53845_IG07:        ; bbWeight=0.50, extend
        lea      rdx, [rsp+0x28]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -90,15 +81,15 @@ G_M53845_IG07:        ; bbWeight=0.50, extend
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        nop      
-						;; size=15 bbWeight=0.50 PerfScore 2.00
-G_M53845_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 72
+						;; size=48 bbWeight=0.50 PerfScore 7.62
+G_M53845_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 56
        pop      rbx
        pop      rsi
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 138, prolog size 28, PerfScore 29.08, instruction count 41, allocated bytes for code 138 (MethodHash=8afb2daa) for method Microsoft.CodeAnalysis.CSharp.ControlFlowPass:VisitTryBlock(Microsoft.CodeAnalysis.CSharp.BoundStatement,Microsoft.CodeAnalysis.CSharp.BoundTryStatement,byref):this (FullOpts)
+; Total bytes of code 116, prolog size 18, PerfScore 24.75, instruction count 37, allocated bytes for code 116 (MethodHash=8afb2daa) for method Microsoft.CodeAnalysis.CSharp.ControlFlowPass:VisitTryBlock(Microsoft.CodeAnalysis.CSharp.BoundStatement,Microsoft.CodeAnalysis.CSharp.BoundTryStatement,byref):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -111,6 +102,6 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-12 (-15.19%) : 7646.dasm - SixLabors.ImageSharp.Processing.DefaultImageProcessorContext`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:GetCurrentSize():SixLabors.ImageSharp.Size:this (FullOpts)
@@ -11,7 +11,7 @@
 ;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rcx         this class-hnd single-def <SixLabors.ImageSharp.Processing.DefaultImageProcessorContext`1[SixLabors.ImageSharp.PixelFormats.Rgba32]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <SixLabors.ImageSharp.Rectangle>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03    ] (  4,  3   )  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "Inline return value spill temp" <SixLabors.ImageSharp.Rectangle>
+;  V03 tmp1         [V03,T02] (  4,  3   )  struct (16) [rsp+0x28]  do-not-enreg[HS] hidden-struct-arg "Inline return value spill temp" <SixLabors.ImageSharp.Rectangle>
 ;  V04 tmp2         [V04,T01] (  3,  5   )     ref  ->  rdx         class-hnd exact single-def "dup spill" <SixLabors.ImageSharp.Image`1[SixLabors.ImageSharp.PixelFormats.Rgba32]>
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V06 tmp4         [V06    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
@@ -19,19 +19,16 @@
 ;* V08 tmp6         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V01.<X>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V01.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V11 tmp9         [V11,T04] (  2,  2   )     int  ->  rax         single-def "field V01.<Width>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V12 tmp10        [V12,T05] (  2,  2   )     int  ->  rcx         single-def "field V01.<Height>k__BackingField (fldOffset=0xc)" P-INDEP
-;  V13 tmp11        [V13,T02] (  2,  3   )     int  ->  [rsp+0x20]  do-not-enreg[] "field V07.<Width>k__BackingField (fldOffset=0x0)" P-DEP
-;  V14 tmp12        [V14,T03] (  2,  3   )     int  ->  [rsp+0x24]  do-not-enreg[] "field V07.<Height>k__BackingField (fldOffset=0x4)" P-DEP
+;  V11 tmp9         [V11,T05] (  2,  2   )     int  ->  rax         single-def "field V01.<Width>k__BackingField (fldOffset=0x8)" P-INDEP
+;  V12 tmp10        [V12,T06] (  2,  2   )     int  ->  rcx         single-def "field V01.<Height>k__BackingField (fldOffset=0xc)" P-INDEP
+;  V13 tmp11        [V13,T03] (  2,  3   )     int  ->  [rsp+0x20]  do-not-enreg[] "field V07.<Width>k__BackingField (fldOffset=0x0)" P-DEP
+;  V14 tmp12        [V14,T04] (  2,  3   )     int  ->  [rsp+0x24]  do-not-enreg[] "field V07.<Height>k__BackingField (fldOffset=0x4)" P-DEP
 ;
 ; Lcl frame size = 56
 
 G_M14834_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 56
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
-       mov      qword ptr [rsp+0x30], rax
-						;; size=16 bbWeight=1 PerfScore 2.50
+						;; size=4 bbWeight=1 PerfScore 0.25
 G_M14834_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        mov      rdx, gword ptr [rcx+0x10]
@@ -69,7 +66,7 @@ G_M14834_IG06:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 79, prolog size 16, PerfScore 17.50, instruction count 20, allocated bytes for code 79 (MethodHash=e8efc60d) for method SixLabors.ImageSharp.Processing.DefaultImageProcessorContext`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:GetCurrentSize():SixLabors.ImageSharp.Size:this (FullOpts)
+; Total bytes of code 67, prolog size 4, PerfScore 15.25, instruction count 17, allocated bytes for code 67 (MethodHash=e8efc60d) for method SixLabors.ImageSharp.Processing.DefaultImageProcessorContext`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:GetCurrentSize():SixLabors.ImageSharp.Size:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-38 (-14.07%) : 19901.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:EffectiveInterfacesWithDefinitionUseSiteDiagnostics(byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
@@ -17,7 +17,7 @@
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]>
 ;* V07 tmp3         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon[]>
 ;  V08 tmp4         [V08,T00] (  4, 24   )     ref  ->  rax         class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
-;  V09 tmp5         [V09    ] (  4, 10   )  struct (24) [rsp+0x38]  do-not-enreg[XS] must-init addr-exposed "Inline stloc first use temp" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
+;  V09 tmp5         [V09    ] (  3,  6   )  struct (24) [rsp+0x38]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg "Inline stloc first use temp" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
 ;  V10 tmp6         [V10,T03] (  4, 13   )     int  ->  rbp         "Inline stloc first use temp"
 ;  V11 tmp7         [V11,T05] (  4,  7   )     ref  ->  rsi         "field V02.array (fldOffset=0x0)" P-INDEP
 ;* V12 tmp8         [V12,T10] (  0,  0   )     ref  ->  zero-ref    single-def "field V03._array (fldOffset=0x0)" P-INDEP
@@ -26,7 +26,7 @@
 ;* V15 tmp11        [V15,T11] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16,T12] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
 ;  V17 tmp13        [V17,T01] (  3, 24   )     ref  ->  rcx         "argument with side effect"
-;  V18 tmp14        [V18    ] (  4, 16   )  struct (24) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
+;  V18 tmp14        [V18    ] (  2,  8   )  struct (24) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.UseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]>
 ;  V19 cse0         [V19,T09] (  3,  3   )    long  ->  rdi         "CSE #02: aggressive"
 ;  V20 cse1         [V20,T07] (  3,  6   )     int  ->  rdi         "CSE #03: aggressive"
 ;  V21 cse2         [V21,T08] (  3,  6   )    long  ->  rbp         "CSE #04: aggressive"
@@ -70,7 +70,7 @@ G_M46519_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx},
        xor      ebp, ebp
        xor      r14d, r14d
        test     edi, edi
-       jle      G_M46519_IG10
+       jle      G_M46519_IG08
 						;; size=53 bbWeight=1 PerfScore 16.75
 G_M46519_IG03:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
        ; gcrRegs -[rax]
@@ -82,15 +82,12 @@ G_M46519_IG03:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx},
        call     [rax]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       vxorps   xmm0, xmm0, xmm0
-       vmovdqu  xmmword ptr [rsp+0x38], xmm0
-       vmovdqu  xmmword ptr [rsp+0x40], xmm0
        test     rax, rax
-       je       SHORT G_M46519_IG09
-						;; size=40 bbWeight=4 PerfScore 51.33
+       je       SHORT G_M46519_IG07
+						;; size=24 bbWeight=4 PerfScore 42.00
 G_M46519_IG04:        ; bbWeight=2, gcrefRegs=0041 {rax rsi}, byrefRegs=0008 {rbx}, byref, isz
        cmp      byte  ptr [rbx+0x19], 2
-       je       SHORT G_M46519_IG09
+       je       SHORT G_M46519_IG07
        lea      rdx, [rsp+0x38]
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -116,34 +113,26 @@ G_M46519_IG06:        ; bbWeight=2, extend
        call     [<unknown method>]
        ; byrRegs -[rcx]
        ; gcr arg pop 0
-						;; size=27 bbWeight=2 PerfScore 8.50
-G_M46519_IG07:        ; bbWeight=2, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rsp+0x38]
-       vmovdqu  xmmword ptr [rsp+0x20], xmm0
-       mov      r8, qword ptr [rsp+0x48]
-       mov      qword ptr [rsp+0x30], r8
-						;; size=22 bbWeight=2 PerfScore 12.00
-G_M46519_IG08:        ; bbWeight=2, extend
-       lea      r8, [rsp+0x20]
+       lea      r8, [rsp+0x38]
        mov      rcx, rbx
        ; byrRegs +[rcx]
        mov      rdx, rbp
        call     [<unknown method>]
        ; byrRegs -[rcx]
        ; gcr arg pop 0
-						;; size=17 bbWeight=2 PerfScore 8.00
-G_M46519_IG09:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
+						;; size=44 bbWeight=2 PerfScore 16.50
+G_M46519_IG07:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
        lea      ebp, [r14+0x01]
        mov      r14d, ebp
        cmp      edi, r14d
        jg       G_M46519_IG03
 						;; size=16 bbWeight=4 PerfScore 8.00
-G_M46519_IG10:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
+G_M46519_IG08:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
        mov      rax, rsi
        ; gcrRegs +[rax]
 						;; size=3 bbWeight=1 PerfScore 0.25
-G_M46519_IG11:        ; bbWeight=1, epilog, nogc, extend
+G_M46519_IG09:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 80
        pop      rbx
        pop      rbp
@@ -153,7 +142,7 @@ G_M46519_IG11:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=11 bbWeight=1 PerfScore 3.75
 
-; Total bytes of code 270, prolog size 26, PerfScore 154.17, instruction count 71, allocated bytes for code 270 (MethodHash=f5564a48) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:EffectiveInterfacesWithDefinitionUseSiteDiagnostics(byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
+; Total bytes of code 232, prolog size 26, PerfScore 132.83, instruction count 64, allocated bytes for code 232 (MethodHash=f5564a48) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:EffectiveInterfacesWithDefinitionUseSiteDiagnostics(byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
+11 (+6.29%) : 16160.dasm - Microsoft.CodeAnalysis.MetadataTypeName:FromNamespaceAndTypeName(System.String,System.String,ubyte,int):Microsoft.CodeAnalysis.MetadataTypeName (FullOpts)
@@ -7,20 +7,29 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rbx         single-def
-;  V01 arg0         [V01,T01] (  4,  4   )     ref  ->  rdx         class-hnd single-def <System.String>
-;  V02 arg1         [V02,T02] (  4,  4   )     ref  ->  rsi         class-hnd single-def <System.String>
-;  V03 arg2         [V03,T04] (  3,  3   )   ubyte  ->  rdi         single-def
-;  V04 arg3         [V04,T05] (  1,  1   )     int  ->  [rsp+0xD0]  single-def
-;  V05 loc0         [V05    ] ( 12, 12   )  struct (104) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.MetadataTypeName>
+;  V00 RetBuf       [V00,T00] (  7,  7   )   byref  ->  rbx         single-def
+;  V01 arg0         [V01,T02] (  4,  4   )     ref  ->  rsi         class-hnd single-def <System.String>
+;  V02 arg1         [V02,T03] (  4,  4   )     ref  ->  rdi         class-hnd single-def <System.String>
+;  V03 arg2         [V03,T05] (  3,  3   )   ubyte  ->  rbp         single-def
+;  V04 arg3         [V04,T08] (  1,  1   )     int  ->  [rsp+0xE0]  single-def
+;  V05 loc0         [V05,T01] (  8,  8   )  struct (104) [rsp+0x28]  do-not-enreg[HSF] must-init hidden-struct-arg ld-addr-op <Microsoft.CodeAnalysis.MetadataTypeName>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 rat0         [V07,T03] (  3,  6   )   byref  ->  rcx         "ReplaceWithLclVar is creating a new local variable"
+;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def "V05.[000..008)"
+;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "V05.[008..016)"
+;* V09 tmp3         [V09    ] (  0,  0   )     ref  ->  zero-ref    single-def "V05.[016..024)"
+;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref    single-def "V05.[024..032)"
+;* V11 tmp5         [V11    ] (  0,  0   )   short  ->  zero-ref    single-def "V05.[032..034)"
+;  V12 tmp6         [V12,T06] (  2,  2   )   short  ->  r14         single-def "V05.[034..036)"
+;  V13 tmp7         [V13,T07] (  2,  2   )   ubyte  ->  rbp         single-def "V05.[036..037)"
+;  V14 rat0         [V14,T04] (  3,  6   )   byref  ->  rcx         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 144
 
 G_M8058_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r14
        push     rdi
        push     rsi
+       push     rbp
        push     rbx
        sub      rsp, 144
        xor      eax, eax
@@ -31,60 +40,62 @@ G_M8058_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        vmovdqu  ymmword ptr [rsp+0x70], ymm4
        mov      rbx, rcx
        ; byrRegs +[rbx]
-       mov      rsi, r8
+       mov      rsi, rdx
        ; gcrRegs +[rsi]
-       mov      edi, r9d
-						;; size=48 bbWeight=1 PerfScore 11.58
-G_M8058_IG02:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs +[rdx]
-       mov      gword ptr [rsp+0x30], rdx
+       mov      rdi, r8
+       ; gcrRegs +[rdi]
+       mov      ebp, r9d
+						;; size=54 bbWeight=1 PerfScore 13.83
+G_M8058_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
        lea      rcx, [rsp+0x50]
-       call     [System.MemoryExtensions:AsMemory(System.String):System.ReadOnlyMemory`1[ushort]]
-       ; gcrRegs -[rdx]
-       ; gcr arg pop 0
-       mov      gword ptr [rsp+0x38], rsi
-       lea      rcx, [rsp+0x60]
        mov      rdx, rsi
        ; gcrRegs +[rdx]
        call     [System.MemoryExtensions:AsMemory(System.String):System.ReadOnlyMemory`1[ushort]]
-       ; gcrRegs -[rdx rsi]
+       ; gcrRegs -[rdx]
+       ; gcr arg pop 0
+       lea      rcx, [rsp+0x60]
+       mov      rdx, rdi
+       ; gcrRegs +[rdx]
+       call     [System.MemoryExtensions:AsMemory(System.String):System.ReadOnlyMemory`1[ushort]]
+       ; gcrRegs -[rdx]
        ; gcr arg pop 0
-       xor      rcx, rcx
-       ; gcrRegs +[rcx]
-       mov      gword ptr [rsp+0x40], rcx
        vxorps   xmm0, xmm0, xmm0
        vmovdqu  xmmword ptr [rsp+0x70], xmm0
-       mov      word  ptr [rsp+0x48], -1
-       mov      byte  ptr [rsp+0x4C], dil
-       mov      esi, dword ptr [rsp+0xD0]
-       mov      word  ptr [rsp+0x4A], si
-						;; size=76 bbWeight=1 PerfScore 15.83
-G_M8058_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       ; gcrRegs -[rcx]
+       movzx    rbp, bpl
+       movsx    r14, word  ptr [rsp+0xE0]
+       xor      ecx, ecx
        mov      qword ptr [rsp+0x80], rcx
-						;; size=8 bbWeight=1 PerfScore 1.00
-G_M8058_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+						;; size=61 bbWeight=1 PerfScore 13.33
+G_M8058_IG03:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref
        mov      qword ptr [rsp+0x88], rcx
+       mov      gword ptr [rsp+0x30], rsi
+       mov      gword ptr [rsp+0x38], rdi
        mov      rcx, rbx
        ; byrRegs +[rcx]
        cmp      byte  ptr [rcx], cl
        lea      rdx, [rsp+0x28]
        mov      r8d, 104
        call     CORINFO_HELP_BULK_WRITEBARRIER
+       ; gcrRegs -[rsi rdi]
        ; byrRegs -[rcx]
        ; gcr arg pop 0
+       mov      word  ptr [rbx+0x20], -1
+       mov      word  ptr [rbx+0x22], r14w
+       mov      byte  ptr [rbx+0x24], bpl
        mov      rax, rbx
        ; byrRegs +[rax]
-						;; size=32 bbWeight=1 PerfScore 6.25
-G_M8058_IG05:        ; bbWeight=1, epilog, nogc, extend
+						;; size=57 bbWeight=1 PerfScore 11.25
+G_M8058_IG04:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 144
        pop      rbx
+       pop      rbp
        pop      rsi
        pop      rdi
+       pop      r14
        ret      
-						;; size=11 bbWeight=1 PerfScore 2.75
+						;; size=14 bbWeight=1 PerfScore 3.75
 
-; Total bytes of code 175, prolog size 39, PerfScore 37.42, instruction count 41, allocated bytes for code 175 (MethodHash=5aabe085) for method Microsoft.CodeAnalysis.MetadataTypeName:FromNamespaceAndTypeName(System.String,System.String,ubyte,int):Microsoft.CodeAnalysis.MetadataTypeName (FullOpts)
+; Total bytes of code 186, prolog size 42, PerfScore 42.17, instruction count 47, allocated bytes for code 186 (MethodHash=5aabe085) for method Microsoft.CodeAnalysis.MetadataTypeName:FromNamespaceAndTypeName(System.String,System.String,ubyte,int):Microsoft.CodeAnalysis.MetadataTypeName (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -92,13 +103,15 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0A
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x0D
+  CountOfUnwindCodes: 7
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
+    CodeOffset: 0x0D UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
       Size: 18 * 8 = 144 = 0x00090
-    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)
+    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)
+20 (+6.92%) : 20766.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol+<>c:<.cctor>b__146_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
@@ -9,10 +9,10 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol+<>c>
-;  V01 RetBuf       [V01,T01] (  4,  4   )   byref  ->  rbx         single-def
-;  V02 arg1         [V02,T00] ( 10, 14   )   byref  ->  rsi         ld-addr-op single-def
+;  V01 RetBuf       [V01,T01] (  6,  6   )   byref  ->  rsi         single-def
+;  V02 arg1         [V02,T00] ( 12, 16   )   byref  ->  rbx         ld-addr-op single-def
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  6,  3.50)  struct (24) [rsp+0x48]  do-not-enreg[XS] must-init addr-exposed "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V04 tmp1         [V04,T12] (  4,  2   )  struct (24) [rsp+0x40]  do-not-enreg[HS] must-init hidden-struct-arg "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V06 tmp3         [V06,T07] (  4,  2.50)     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct ( 8) zero-ref    single-def "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]>
@@ -21,41 +21,47 @@
 ;  V10 tmp7         [V10,T02] (  4,  6   )     ref  ->  rcx         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
 ;* V11 tmp8         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V12 tmp9         [V12    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V13 tmp10        [V13,T09] (  2,  2   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
+;  V13 tmp10        [V13,T13] (  2,  2   )     ref  ->  rbp         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
 ;* V14 tmp11        [V14    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[] "field V02.DefaultType (fldOffset=0x0)" P-DEP
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    do-not-enreg[] "field V02._extensions (fldOffset=0x8)" P-DEP
 ;* V16 tmp13        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[] "field V02.DefaultNullableAnnotation (fldOffset=0x10)" P-DEP
-;  V17 tmp14        [V17,T10] (  2,  1   )     ref  ->  rax         "field V07.array (fldOffset=0x0)" P-INDEP
-;  V18 tmp15        [V18,T11] (  2,  1   )     ref  ->  rcx         "field V08.array (fldOffset=0x0)" P-INDEP
-;  V19 tmp16        [V19,T12] (  2,  1   )     ref  ->  r14         single-def "field V12.DefaultType (fldOffset=0x0)" P-INDEP
-;  V20 tmp17        [V20,T13] (  2,  1   )     ref  ->  rax         single-def "field V12._extensions (fldOffset=0x8)" P-INDEP
-;* V21 tmp18        [V21,T14] (  0,  0   )   ubyte  ->  zero-ref    "field V12.DefaultNullableAnnotation (fldOffset=0x10)" P-INDEP
-;* V22 tmp19        [V22    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] "Promoted implicit byref" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V23 tmp20        [V23,T04] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
-;  V24 tmp21        [V24    ] (  2,  2   )  struct (24) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V25 tmp22        [V25,T05] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
-;  V26 tmp23        [V26,T06] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
-;  V27 cse0         [V27,T08] (  3,  2.50)    long  ->  rbp         "CSE #01: aggressive"
+;  V17 tmp14        [V17,T14] (  2,  1   )     ref  ->  rax         "field V07.array (fldOffset=0x0)" P-INDEP
+;  V18 tmp15        [V18,T15] (  2,  1   )     ref  ->  rcx         "field V08.array (fldOffset=0x0)" P-INDEP
+;* V19 tmp16        [V19    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12.DefaultType (fldOffset=0x0)" P-INDEP
+;* V20 tmp17        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._extensions (fldOffset=0x8)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "field V12.DefaultNullableAnnotation (fldOffset=0x10)" P-INDEP
+;  V22 tmp19        [V22,T08] (  4,  2.50)     ref  ->  rdx         "V04.[000..008)"
+;  V23 tmp20        [V23,T09] (  4,  2.50)     ref  ->  rbp         "V04.[008..016)"
+;  V24 tmp21        [V24,T10] (  4,  2.50)   ubyte  ->  r15         "V04.[016..017)"
+;* V25 tmp22        [V25    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] "Promoted implicit byref" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V26 tmp23        [V26,T04] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
+;  V27 tmp24        [V27    ] (  2,  2   )  struct (24) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V28 tmp25        [V28,T05] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
+;  V29 tmp26        [V29,T06] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
+;  V30 cse0         [V30,T11] (  3,  2.50)    long  ->  rbp         "CSE #01: aggressive"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 88
 
 G_M51917_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, 96
+       sub      rsp, 88
+       xor      eax, eax
+       mov      qword ptr [rsp+0x28], rax
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [rsp+0x30], ymm4
-       vmovdqa  xmmword ptr [rsp+0x50], xmm4
-       mov      rbx, rdx
-       ; byrRegs +[rbx]
-       mov      rsi, r8
+       mov      qword ptr [rsp+0x50], rax
+       mov      rsi, rdx
        ; byrRegs +[rsi]
-						;; size=32 bbWeight=1 PerfScore 10.08
+       mov      rbx, r8
+       ; byrRegs +[rbx]
+						;; size=40 bbWeight=1 PerfScore 11.33
 G_M51917_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, isz
-       mov      rcx, gword ptr [rsi+0x08]
+       mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
        test     rcx, rcx
        jne      SHORT G_M51917_IG04
@@ -68,7 +74,7 @@ G_M51917_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rs
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M51917_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0048 {rbx rsi}, byref
        ; gcrRegs -[rdi] +[rcx]
-       mov      rdx, gword ptr [rsi]
+       mov      rdx, gword ptr [rbx]
        ; gcrRegs +[rdx]
        mov      rax, qword ptr [rcx]
        mov      rax, qword ptr [rax+0x48]
@@ -92,7 +98,7 @@ G_M51917_IG05:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0048 {rbx rs
        ; gcr arg pop 0
        mov      r14, rax
        ; gcrRegs +[r14]
-       mov      rcx, rsi
+       mov      rcx, rbx
        ; byrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rax]
@@ -110,50 +116,52 @@ G_M51917_IG06:        ; bbWeight=0.50, gcrefRegs=4080 {rdi r14}, byrefRegs=0048
        ; gcr arg pop 0
        test     eax, eax
        jne      SHORT G_M51917_IG07
-       mov      rcx, gword ptr [rsi+0x08]
+       mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rcx]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx rdi] +[rax]
-       ; byrRegs -[rsi]
+       ; byrRegs -[rbx]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions:Create(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      gword ptr [rsp+0x48], r14
-       mov      gword ptr [rsp+0x50], rax
-       mov      byte  ptr [rsp+0x58], 1
+       mov      rbp, rax
+       ; gcrRegs +[rbp]
+       mov      rdx, r14
+       ; gcrRegs +[rdx]
+       mov      r15d, 1
        jmp      SHORT G_M51917_IG11
-						;; size=57 bbWeight=0.50 PerfScore 11.88
+						;; size=54 bbWeight=0.50 PerfScore 10.75
 G_M51917_IG07:        ; bbWeight=0.50, gcrefRegs=4080 {rdi r14}, byrefRegs=0048 {rbx rsi}, byref, isz
-       ; gcrRegs -[rax] +[rdi]
-       ; byrRegs +[rsi]
+       ; gcrRegs -[rax rdx rbp] +[rdi]
+       ; byrRegs +[rbx]
        cmp      r14, rdi
        je       SHORT G_M51917_IG10
-       mov      rcx, gword ptr [rsi+0x08]
+       mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rcx]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rcx rdi] +[rax]
        ; gcr arg pop 0
-       mov      rcx, gword ptr [rsi+0x08]
+       mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
 						;; size=23 bbWeight=0.50 PerfScore 6.12
 G_M51917_IG08:        ; bbWeight=0.50, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rsi]
-       vmovdqu  xmmword ptr [rsp+0x30], xmm0
-       mov      r8, qword ptr [rsi+0x10]
-       mov      qword ptr [rsp+0x40], r8
+       vmovdqu  xmm0, xmmword ptr [rbx]
+       vmovdqu  xmmword ptr [rsp+0x28], xmm0
+       mov      r8, qword ptr [rbx+0x10]
+       mov      qword ptr [rsp+0x38], r8
 						;; size=19 bbWeight=0.50 PerfScore 4.00
 G_M51917_IG09:        ; bbWeight=0.50, isz, extend
        mov      gword ptr [rsp+0x20], rax
        ; gcr arg write
-       lea      r8, [rsp+0x30]
-       lea      rdx, [rsp+0x48]
+       lea      r8, [rsp+0x28]
+       lea      rdx, [rsp+0x40]
        mov      r9, r14
        ; gcrRegs +[r9]
        mov      rax, qword ptr [rcx]
@@ -161,40 +169,54 @@ G_M51917_IG09:        ; bbWeight=0.50, isz, extend
        mov      rax, qword ptr [rax+0x58]
        call     [rax+0x18]<unknown method>
        ; gcrRegs -[rcx r9 r14]
-       ; byrRegs -[rsi]
+       ; byrRegs -[rbx]
        ; gcr arg pop 0
+       mov      rdx, gword ptr [rsp+0x40]
+       ; gcrRegs +[rdx]
+       mov      rbp, gword ptr [rsp+0x48]
+       ; gcrRegs +[rbp]
+       movzx    r15, byte  ptr [rsp+0x50]
        jmp      SHORT G_M51917_IG11
-						;; size=30 bbWeight=0.50 PerfScore 5.62
-G_M51917_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref, nogc
-       ; byrRegs +[rsi]
-       vmovdqu  xmm0, xmmword ptr [rsi]
-       vmovdqu  xmmword ptr [rsp+0x48], xmm0
-       mov      rax, qword ptr [rsi+0x10]
-       mov      qword ptr [rsp+0x58], rax
-						;; size=19 bbWeight=0.50 PerfScore 4.00
-G_M51917_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
-       ; byrRegs -[rsi]
-       mov      rdi, rbx
-       ; byrRegs +[rdi]
-       lea      rsi, bword ptr [rsp+0x48]
-       ; byrRegs +[rsi]
-       call     CORINFO_HELP_ASSIGN_BYREF
-       call     CORINFO_HELP_ASSIGN_BYREF
-       movsq    
-       mov      rax, rbx
+						;; size=46 bbWeight=0.50 PerfScore 7.12
+G_M51917_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
+       ; gcrRegs -[rdx rbp]
+       ; byrRegs +[rbx]
+       mov      rdx, gword ptr [rbx]
+       ; gcrRegs +[rdx]
+       mov      rbp, gword ptr [rbx+0x08]
+       ; gcrRegs +[rbp]
+       movzx    r15, byte  ptr [rbx+0x10]
+						;; size=12 bbWeight=0.50 PerfScore 3.00
+G_M51917_IG11:        ; bbWeight=1, gcrefRegs=0024 {rdx rbp}, byrefRegs=0040 {rsi}, byref
+       ; byrRegs -[rbx]
+       mov      rcx, rsi
+       ; byrRegs +[rcx]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+       ; gcrRegs -[rdx]
+       ; byrRegs -[rcx]
+       lea      rcx, bword ptr [rsi+0x08]
+       ; byrRegs +[rcx]
+       mov      rdx, rbp
+       ; gcrRegs +[rdx]
+       call     CORINFO_HELP_CHECKED_ASSIGN_REF
+       ; gcrRegs -[rdx rbp]
+       ; byrRegs -[rcx]
+       mov      byte  ptr [rsi+0x10], r15b
+       mov      rax, rsi
        ; byrRegs +[rax]
-						;; size=23 bbWeight=1 PerfScore 4.00
+						;; size=27 bbWeight=1 PerfScore 4.25
 G_M51917_IG12:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 96
+       add      rsp, 88
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
+       pop      r15
        ret      
-						;; size=11 bbWeight=1 PerfScore 3.75
+						;; size=13 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 289, prolog size 26, PerfScore 72.71, instruction count 83, allocated bytes for code 289 (MethodHash=b9803532) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol+<>c:<.cctor>b__146_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
+; Total bytes of code 309, prolog size 34, PerfScore 74.08, instruction count 90, allocated bytes for code 309 (MethodHash=b9803532) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol+<>c:<.cctor>b__146_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -202,14 +224,15 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
...
+44 (+7.24%) : 23644.dasm - Microsoft.CodeAnalysis.CSharp.SyntheticBoundNodeFactory:StoreToTemp(Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,ubyte,int,ubyte,Microsoft.CodeAnalysis.SyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocal:this (FullOpts)
@@ -8,28 +8,28 @@
 ; 0 inlinees with PGO data; 20 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  4,  3.50)     ref  ->  rcx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.SyntheticBoundNodeFactory>
-;  V01 arg1         [V01,T04] (  7,  6   )     ref  ->  rbp         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-;  V02 arg2         [V02,T07] (  3,  3   )   byref  ->  r14         single-def
+;  V00 this         [V00,T07] (  4,  3.50)     ref  ->  rcx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.SyntheticBoundNodeFactory>
+;  V01 arg1         [V01,T04] (  7,  6   )     ref  ->  rsi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V02 arg2         [V02,T08] (  3,  3   )   byref  ->  rdi         single-def
 ;  V03 arg3         [V03,T03] (  9,  6.50)   ubyte  ->  rbx        
-;  V04 arg4         [V04,T20] (  2,  1.50)     int  ->  r15         single-def
-;  V05 arg5         [V05,T30] (  1,  1   )   ubyte  ->  [rsp+0xC8]  single-def
-;  V06 arg6         [V06,T27] (  1,  1   )     ref  ->  [rsp+0xD0]  class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
-;  V07 loc0         [V07,T12] (  3,  2.50)     ref  ->  rsi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
-;  V08 loc1         [V08,T09] (  5,  4   )     ref  ->  r13         class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
-;  V09 loc2         [V09,T08] (  5,  4.50)     ref  ->  r12         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V10 loc3         [V10,T10] (  4,  4   )     ref  ->  rdi         class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundLocal>
+;  V04 arg4         [V04,T25] (  2,  1.50)     int  ->  rbp         single-def
+;  V05 arg5         [V05,T32] (  1,  1   )   ubyte  ->  [rsp+0xD8]  single-def
+;  V06 arg6         [V06,T29] (  1,  1   )     ref  ->  [rsp+0xE0]  class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
+;  V07 loc0         [V07,T17] (  3,  2.50)     ref  ->  r14         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
+;  V08 loc1         [V08,T10] (  5,  4   )     ref  ->  r15         class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
+;  V09 loc2         [V09,T09] (  5,  4.50)     ref  ->  r13         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V10 loc3         [V10,T11] (  4,  4   )     ref  ->  rbp         class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.BoundLocal>
 ;* V11 loc4         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]>
 ;  V12 OutArgs      [V12    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V13 tmp1         [V13,T32] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+;  V13 tmp1         [V13,T34] (  3,  0   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;* V14 tmp2         [V14    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V15 tmp3         [V15    ] (  0,  0   )     ref  ->  zero-ref   
-;  V16 tmp4         [V16    ] (  8,  5   )  struct (24) [rsp+0x40]  do-not-enreg[XS] must-init addr-exposed <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V16 tmp4         [V16,T12] (  4,  4   )  struct (24) [rsp+0x50]  do-not-enreg[HS] must-init hidden-struct-arg <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;* V17 tmp5         [V17    ] (  0,  0   )     int  ->  zero-ref   
-;  V18 tmp6         [V18,T11] (  4,  3.50)     ref  ->  [rsp+0x38] 
-;  V19 tmp7         [V19,T01] (  9, 18   )     ref  ->  [rsp+0x30]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedLocal>
-;  V20 tmp8         [V20,T02] (  9, 18   )     ref  ->  rdi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundLocal>
-;  V21 tmp9         [V21,T00] (  9, 17   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator>
+;  V18 tmp6         [V18,T13] (  4,  3.50)     ref  ->  r12        
+;  V19 tmp7         [V19,T01] (  9, 18   )     ref  ->  [rsp+0x40]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedLocal>
+;  V20 tmp8         [V20,T02] (  9, 18   )     ref  ->  rbp         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundLocal>
+;  V21 tmp9         [V21,T00] (  9, 17   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator>
 ;* V22 tmp10        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V23 tmp11        [V23    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V24 tmp12        [V24    ] (  0,  0   )  struct (24) zero-ref    <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
@@ -39,31 +39,35 @@
 ;* V28 tmp16        [V28    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V29 tmp17        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V30 tmp18        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;* V31 tmp19        [V31,T28] (  0,  0   )     ref  ->  zero-ref    single-def
-;* V32 tmp20        [V32,T31] (  0,  0   )     int  ->  zero-ref    single-def
-;  V33 tmp21        [V33,T18] (  2,  1.50)     ref  ->  rdx         single-def
-;  V34 tmp22        [V34,T19] (  2,  1.50)     ref  ->  r15         single-def
-;* V35 tmp23        [V35,T21] (  0,  0   )     ref  ->  zero-ref   
-;* V36 tmp24        [V36,T24] (  0,  0   )     int  ->  zero-ref   
-;  V37 tmp25        [V37,T13] (  3,  2   )     ref  ->  rdx        
-;  V38 tmp26        [V38,T14] (  3,  2   )     ref  ->  r15        
-;  V39 tmp27        [V39,T15] (  3,  2   )     int  ->  r12        
+;* V31 tmp19        [V31,T30] (  0,  0   )     ref  ->  zero-ref    single-def
+;* V32 tmp20        [V32,T33] (  0,  0   )     int  ->  zero-ref    single-def
+;  V33 tmp21        [V33,T23] (  2,  1.50)     ref  ->  rdx         single-def
+;  V34 tmp22        [V34,T24] (  2,  1.50)     ref  ->  r12         single-def
+;* V35 tmp23        [V35,T26] (  0,  0   )     ref  ->  zero-ref   
+;* V36 tmp24        [V36,T27] (  0,  0   )     int  ->  zero-ref   
+;  V37 tmp25        [V37,T18] (  3,  2   )     ref  ->  rdx        
+;  V38 tmp26        [V38,T19] (  3,  2   )     ref  ->  r12        
+;  V39 tmp27        [V39,T20] (  3,  2   )     int  ->  r13        
 ;* V40 tmp28        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V41 tmp29        [V41,T16] (  2,  2   )   ubyte  ->  rcx         "Inline return value spill temp"
-;  V42 tmp30        [V42,T25] (  2,  1   )   ubyte  ->  r12         single-def "Inline return value spill temp"
+;  V41 tmp29        [V41,T21] (  2,  2   )   ubyte  ->  rcx         "Inline return value spill temp"
+;  V42 tmp30        [V42,T28] (  2,  1   )   ubyte  ->  r13         single-def "Inline return value spill temp"
 ;* V43 tmp31        [V43    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp32        [V44    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V45 tmp33        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp34        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp35        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V48 tmp36        [V48,T29] (  0,  0   )     ref  ->  zero-ref    single-def "field V11.array (fldOffset=0x0)" P-INDEP
-;  V49 tmp37        [V49,T22] (  2,  1   )     ref  ->  rcx         single-def "field V24.DefaultType (fldOffset=0x0)" P-INDEP
-;  V50 tmp38        [V50,T23] (  2,  1   )     ref  ->  rax         single-def "field V24._extensions (fldOffset=0x8)" P-INDEP
-;  V51 tmp39        [V51,T26] (  2,  1   )   ubyte  ->  rdx         single-def "field V24.DefaultNullableAnnotation (fldOffset=0x10)" P-INDEP
-;  V52 tmp40        [V52,T17] (  2,  2   )     int  ->   r9         "argument with side effect"
-;  V53 rat0         [V53,T05] (  3,  5.71)     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
+;* V48 tmp36        [V48,T31] (  0,  0   )     ref  ->  zero-ref    single-def "field V11.array (fldOffset=0x0)" P-INDEP
+;* V49 tmp37        [V49    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V24.DefaultType (fldOffset=0x0)" P-INDEP
+;* V50 tmp38        [V50    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V24._extensions (fldOffset=0x8)" P-INDEP
+;* V51 tmp39        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V24.DefaultNullableAnnotation (fldOffset=0x10)" P-INDEP
+;  V52 tmp40        [V52,T14] (  4,  3   )     ref  ->  [rsp+0x38]  "V16.[000..008)"
+;  V53 tmp41        [V53,T15] (  4,  3   )     ref  ->  [rsp+0x30]  "V16.[008..016)"
+;  V54 tmp42        [V54,T16] (  4,  3   )   ubyte  ->  [rsp+0x4C]  "V16.[016..017)"
+;  V55 tmp43        [V55,T05] (  4,  8   )   byref  ->  [rsp+0x28]  spill-single-def "Spilling address for field-by-field copy"
+;  V56 tmp44        [V56,T22] (  2,  2   )     int  ->   r9         "argument with side effect"
+;  V57 rat0         [V57,T06] (  3,  5.71)     int  ->  rax         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 104
 
 G_M9852_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -74,27 +78,27 @@ G_M9852_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 88
+       sub      rsp, 104
        vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x40], xmm4
+       vmovdqa  xmmword ptr [rsp+0x50], xmm4
        xor      eax, eax
-       mov      qword ptr [rsp+0x50], rax
-       mov      rbp, rdx
-       ; gcrRegs +[rbp]
-       mov      r14, r8
-       ; byrRegs +[r14]
-       mov      ebx, r9d
-       mov      r15d, dword ptr [rsp+0xC0]
-						;; size=50 bbWeight=1 PerfScore 13.58
-G_M9852_IG02:        ; bbWeight=1, gcrefRegs=0022 {rcx rbp}, byrefRegs=4000 {r14}, byref
-       ; gcrRegs +[rcx]
-       mov      rsi, gword ptr [rcx+0x30]
+       mov      qword ptr [rsp+0x60], rax
+       mov      rsi, rdx
        ; gcrRegs +[rsi]
+       mov      rdi, r8
+       ; byrRegs +[rdi]
+       mov      ebx, r9d
+       mov      ebp, dword ptr [rsp+0xD0]
+						;; size=49 bbWeight=1 PerfScore 13.58
+G_M9852_IG02:        ; bbWeight=1, gcrefRegs=0042 {rcx rsi}, byrefRegs=0080 {rdi}, byref
+       ; gcrRegs +[rcx]
+       mov      r14, gword ptr [rcx+0x30]
+       ; gcrRegs +[r14]
        movzx    rax, bl
        cmp      eax, 5
-       ja       G_M9852_IG16
+       ja       G_M9852_IG17
 						;; size=16 bbWeight=1 PerfScore 3.50
-G_M9852_IG03:        ; bbWeight=0.86, gcrefRegs=0062 {rcx rbp rsi}, byrefRegs=4000 {r14}, byref
+G_M9852_IG03:        ; bbWeight=0.86, gcrefRegs=4042 {rcx rsi r14}, byrefRegs=0080 {rdi}, byref
        mov      eax, eax
        lea      rdx, [reloc @RWD00]
        mov      edx, dword ptr [rdx+4*rax]
@@ -102,7 +106,7 @@ G_M9852_IG03:        ; bbWeight=0.86, gcrefRegs=0062 {rcx rbp rsi}, byrefRegs=40
        add      rdx, r8
        jmp      rdx
 						;; size=24 bbWeight=0.86 PerfScore 5.14
-G_M9852_IG04:        ; bbWeight=0.50, gcrefRegs=0062 {rcx rbp rsi}, byrefRegs=4000 {r14}, byref, isz
+G_M9852_IG04:        ; bbWeight=0.50, gcrefRegs=4042 {rcx rsi r14}, byrefRegs=0080 {rdi}, byref, isz
        mov      rcx, gword ptr [rcx+0x20]
        mov      rcx, gword ptr [rcx+0x30]
        cmp      dword ptr [rcx], ecx
@@ -114,8 +118,8 @@ G_M9852_IG04:        ; bbWeight=0.50, gcrefRegs=0062 {rcx rbp rsi}, byrefRegs=40
        ; gcrRegs +[rcx]
        mov      gword ptr [rsp+0x20], rcx
        ; gcr arg write
-       mov      rcx, rbp
-       mov      r8, rsi
+       mov      rcx, rsi
+       mov      r8, r14
        ; gcrRegs +[r8]
        mov      edx, 2
        call     [<unknown method>]
@@ -126,16 +130,16 @@ G_M9852_IG04:        ; bbWeight=0.50, gcrefRegs=0062 {rcx rbp rsi}, byrefRegs=40
        cmove    ebx, ecx
        jmp      SHORT G_M9852_IG06
 						;; size=52 bbWeight=0.50 PerfScore 9.00
-G_M9852_IG05:        ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=4000 {r14}, byref
+G_M9852_IG05:        ; bbWeight=0.50, gcrefRegs=4040 {rsi r14}, byrefRegs=0080 {rdi}, byref
        mov      ebx, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M9852_IG06:        ; bbWeight=1, gcrefRegs=0060 {rbp rsi}, byrefRegs=4000 {r14}, byref, isz
-       mov      r13, gword ptr [rbp+0x08]
+G_M9852_IG06:        ; bbWeight=1, gcrefRegs=4040 {rsi r14}, byrefRegs=0080 {rdi}, byref
+       mov      r15, gword ptr [rsi+0x08]
+       ; gcrRegs +[r15]
+       mov      r13, gword ptr [rsi+0x18]
        ; gcrRegs +[r13]
-       mov      r12, gword ptr [rbp+0x18]
-       ; gcrRegs +[r12]
-       lea      rcx, [rsp+0x40]
-       mov      rdx, r12
+       lea      rcx, [rsp+0x50]
+       mov      rdx, r13
        ; gcrRegs +[rdx]
        xor      r9, r9
        ; gcrRegs +[r9]
@@ -143,189 +147,211 @@ G_M9852_IG06:        ; bbWeight=1, gcrefRegs=0060 {rbp rsi}, byrefRegs=4000 {r14
        call     [<unknown method>]
        ; gcrRegs -[rdx r9]
        ; gcr arg pop 0
-       mov      rdi, gword ptr [rsp+0xD0]
-       ; gcrRegs +[rdi]
-       test     rdi, rdi
-       mov      gword ptr [rsp+0x38], rdi
-       ; GC ptr vars +{V18}
-       jne      SHORT G_M9852_IG08
-						;; size=49 bbWeight=1 PerfScore 11.50
-G_M9852_IG07:        ; bbWeight=0.50, gcrefRegs=3060 {rbp rsi r12 r13}, byrefRegs=4000 {r14}, byref
-       ; gcrRegs -[rdi]
-       ; GC ptr vars -{V18}
-       mov      rcx, gword ptr [rsp+0x40]
-       ; gcrRegs +[rcx]
-       mov      rax, gword ptr [rsp+0x48]
+       mov      r12, gword ptr [rsp+0xE0]
+       ; gcrRegs +[r12]
+       mov      rax, gword ptr [rsp+0x50]
        ; gcrRegs +[rax]
-       movzx    rdx, byte  ptr [rsp+0x50]
-       mov      gword ptr [rsp+0x40], rcx
-       mov      gword ptr [rsp+0x48], rax
-       mov      byte  ptr [rsp+0x50], dl
+       mov      rdx, gword ptr [rsp+0x58]
+       ; gcrRegs +[rdx]
+       movzx    r8, byte  ptr [rsp+0x60]
+       test     r12, r12
+       jne      G_M9852_IG11
+						;; size=64 bbWeight=1 PerfScore 13.50
+G_M9852_IG07:        ; bbWeight=0.50, gcrefRegs=E045 {rax rdx rsi r13 r14 r15}, byrefRegs=0080 {rdi}, byref
+       ; gcrRegs -[r12]
+       mov      gword ptr [rsp+0x38], rax
+       ; GC ptr vars +{V52}
+       mov      gword ptr [rsp+0x30], rdx
+       ; GC ptr vars +{V53}
+       mov      dword ptr [rsp+0x4C], r8d
        xor      rcx, rcx
-       test     r15d, r15d
-       mov      rdi, rcx
-       ; gcrRegs +[rdi]
-       cmovge   rdi, r13
-       mov      gword ptr [rsp+0x38], rdi
-       ; GC ptr vars +{V18}
-						;; size=46 bbWeight=0.50 PerfScore 4.00
-G_M9852_IG08:        ; bbWeight=1, gcVars=0000000000000800 {V18}, gcrefRegs=3060 {rbp rsi r12 r13}, byrefRegs=4000 {r14}, gcvars, byref
-       ; gcrRegs -[rax rcx rdi]
+       ; gcrRegs +[rcx]
+       test     ebp, ebp
+       mov      r12, rcx
+       ; gcrRegs +[r12]
+       cmovge   r12, r15
+						;; size=26 bbWeight=0.50 PerfScore 2.00
+G_M9852_IG08:        ; bbWeight=1, gcVars=000000000000C000 {V52 V53}, gcrefRegs=F040 {rsi r12 r13 r14 r15}, byrefRegs=0080 {rdi}, gcvars, byref
+       ; gcrRegs -[rax rcx rdx]
        mov      rcx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedLocal
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      gword ptr [rsp+0x30], rax
+       mov      gword ptr [rsp+0x40], rax
        ; GC ptr vars +{V19}
        lea      rcx, bword ptr [rax+0x10]
...
smoke_tests.nativeaot.windows.x64.checked.mch
-11 (-13.75%) : 10330.dasm - System.Reflection.Runtime.FieldInfos.NativeFormat.NativeFormatRuntimeFieldInfo:get_FieldRuntimeType():System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
@@ -8,29 +8,27 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  rbx         this class-hnd exact single-def <System.Reflection.Runtime.FieldInfos.NativeFormat.NativeFormatRuntimeFieldInfo>
-;  V01 loc0         [V01    ] (  2,  2   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed <System.Reflection.Runtime.General.TypeContext>
+;  V01 loc0         [V01    ] (  2,  2   )  struct (16) [rsp+0x20]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg <System.Reflection.Runtime.General.TypeContext>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <Internal.Metadata.NativeFormat.Handle>
-;  V04 tmp2         [V04,T03] (  2,  2   )     int  ->  rcx         "field V03._value (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )     int  ->  rcx         "field V03._value (fldOffset=0x0)" P-INDEP
 ;  V05 tmp3         [V05,T01] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
-;  V06 tmp4         [V06    ] (  2,  4   )  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Reflection.Runtime.General.TypeContext>
-;  V07 tmp5         [V07,T02] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M48038_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 64
-       xorps    xmm4, xmm4
-       movaps   xmmword ptr [rsp+0x20], xmm4
-       movaps   xmmword ptr [rsp+0x30], xmm4
+       sub      rsp, 48
+       xor      eax, eax
+       mov      qword ptr [rsp+0x20], rax
+       mov      qword ptr [rsp+0x28], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-						;; size=21 bbWeight=1 PerfScore 5.83
+						;; size=20 bbWeight=1 PerfScore 3.75
 G_M48038_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
-       lea      rdx, [rsp+0x30]
+       lea      rdx, [rsp+0x20]
        mov      rax, qword ptr [rcx]
        call     [rax+0x170]<unknown method>
        ; gcrRegs -[rcx]
@@ -43,25 +41,19 @@ G_M48038_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      ecx, eax
        mov      rdx, gword ptr [rbx+0x38]
        ; gcrRegs +[rdx]
-						;; size=32 bbWeight=1 PerfScore 11.00
-G_M48038_IG03:        ; bbWeight=1, nogc, extend
-       movups   xmm0, xmmword ptr [rsp+0x30]
-       movups   xmmword ptr [rsp+0x20], xmm0
-						;; size=10 bbWeight=1 PerfScore 4.00
-G_M48038_IG04:        ; bbWeight=1, extend
        lea      r8, [rsp+0x20]
        call     System.Reflection.Runtime.General.TypeResolver:Resolve(Internal.Metadata.NativeFormat.Handle,Internal.Metadata.NativeFormat.MetadataReader,System.Reflection.Runtime.General.TypeContext):System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo
        ; gcrRegs -[rdx rbx] +[rax]
        ; gcr arg pop 0
        nop      
-						;; size=11 bbWeight=1 PerfScore 1.75
-G_M48038_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+						;; size=43 bbWeight=1 PerfScore 12.75
+G_M48038_IG03:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 48
        pop      rbx
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 80, prolog size 18, PerfScore 24.33, instruction count 22, allocated bytes for code 80 (MethodHash=38db4459) for method System.Reflection.Runtime.FieldInfos.NativeFormat.NativeFormatRuntimeFieldInfo:get_FieldRuntimeType():System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
+; Total bytes of code 69, prolog size 17, PerfScore 18.25, instruction count 20, allocated bytes for code 69 (MethodHash=38db4459) for method System.Reflection.Runtime.FieldInfos.NativeFormat.NativeFormatRuntimeFieldInfo:get_FieldRuntimeType():System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -74,5 +66,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-32 (-13.62%) : 7696.dasm - System.TimeZoneInfo:GetUtcOffset(System.DateTime,System.TimeZoneInfo):System.TimeSpan (FullOpts)
@@ -8,13 +8,13 @@
 ; control-flow guard enabled
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  6,  5   )  struct ( 8) [rsp+0x90]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
+;  V00 arg0         [V00    ] (  6,  5   )  struct ( 8) [rsp+0x70]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
 ;  V01 arg1         [V01,T01] (  5,  4.50)     ref  ->  rbx         class-hnd exact single-def <System.TimeZoneInfo>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    <System.TimeSpan>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.TimeZoneInfo+AdjustmentRule>
-;  V04 loc2         [V04    ] (  3,  2   )  struct ( 8) [rsp+0x68]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Nullable`1[int]>
-;  V05 loc3         [V05    ] (  2,  1   )  struct (24) [rsp+0x50]  do-not-enreg[XS] addr-exposed <System.Globalization.DaylightTimeStruct>
-;  V06 loc4         [V06,T09] (  2,  1   )   ubyte  ->  rax        
+;  V04 loc2         [V04    ] (  3,  2   )  struct ( 8) [rsp+0x48]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Nullable`1[int]>
+;  V05 loc3         [V05    ] (  2,  1   )  struct (24) [rsp+0x30]  do-not-enreg[XHS] addr-exposed hidden-struct-arg <System.Globalization.DaylightTimeStruct>
+;  V06 loc4         [V06,T08] (  2,  1   )   ubyte  ->  rax        
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V08 tmp1         [V08    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.TimeSpan>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct ( 8) zero-ref    <System.TimeSpan>
@@ -25,39 +25,37 @@
 ;  V14 tmp7         [V14,T00] (  7,  9   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo+AdjustmentRule>
 ;* V15 tmp8         [V15    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V17 tmp10        [V17,T07] (  2,  1   )     int  ->  rcx        
+;  V17 tmp10        [V17,T06] (  2,  1   )     int  ->  rcx        
 ;* V18 tmp11        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp12        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V20 tmp13        [V20    ] (  6,  5   )    long  ->  [rsp+0x90]  do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP
+;  V20 tmp13        [V20    ] (  6,  5   )    long  ->  [rsp+0x70]  do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP
 ;  V21 tmp14        [V21,T02] (  6,  4   )    long  ->  rsi         "field V02._ticks (fldOffset=0x0)" P-INDEP
-;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  ->  [rsp+0x68]  do-not-enreg[X] addr-exposed "field V04.hasValue (fldOffset=0x0)" P-DEP
-;  V23 tmp16        [V23    ] (  2,  1.50)     int  ->  [rsp+0x6C]  do-not-enreg[X] addr-exposed "field V04.value (fldOffset=0x4)" P-DEP
+;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed "field V04.hasValue (fldOffset=0x0)" P-DEP
+;  V23 tmp16        [V23    ] (  2,  1.50)     int  ->  [rsp+0x4C]  do-not-enreg[X] addr-exposed "field V04.value (fldOffset=0x4)" P-DEP
 ;* V24 tmp17        [V24    ] (  0,  0   )    long  ->  zero-ref    "field V08._ticks (fldOffset=0x0)" P-INDEP
 ;* V25 tmp18        [V25    ] (  0,  0   )    long  ->  zero-ref    "field V09._ticks (fldOffset=0x0)" P-INDEP
 ;* V26 tmp19        [V26    ] (  0,  0   )    long  ->  zero-ref    "field V10._ticks (fldOffset=0x0)" P-INDEP
-;  V27 tmp20        [V27,T08] (  3,  1.50)    long  ->  rdx         "field V11._ticks (fldOffset=0x0)" P-INDEP
-;* V28 tmp21        [V28,T10] (  0,  0   )    long  ->  zero-ref    "field V12._ticks (fldOffset=0x0)" P-INDEP
+;  V27 tmp20        [V27,T07] (  3,  1.50)    long  ->  rdx         "field V11._ticks (fldOffset=0x0)" P-INDEP
+;* V28 tmp21        [V28,T09] (  0,  0   )    long  ->  zero-ref    "field V12._ticks (fldOffset=0x0)" P-INDEP
 ;  V29 tmp22        [V29,T03] (  2,  2   )    long  ->  rdx         "field V13._dateData (fldOffset=0x0)" P-INDEP
-;  V30 tmp23        [V30,T04] (  2,  2   )  struct ( 8) [rsp+0x48]  do-not-enreg[S] "by-value struct argument" <System.Nullable`1[int]>
+;  V30 tmp23        [V30,T04] (  2,  2   )  struct ( 8) [rsp+0x28]  do-not-enreg[S] "by-value struct argument" <System.Nullable`1[int]>
 ;  V31 tmp24        [V31,T05] (  2,  2   )     int  ->   r8         "argument with side effect"
-;  V32 tmp25        [V32    ] (  2,  2   )  struct (24) [rsp+0x30]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Globalization.DaylightTimeStruct>
-;  V33 tmp26        [V33,T06] (  2,  2   )    long  ->  rcx         "argument with side effect"
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M64406_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 112
-       mov      qword ptr [rsp+0x90], rcx
+       sub      rsp, 80
+       mov      qword ptr [rsp+0x70], rcx
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-						;; size=18 bbWeight=1 PerfScore 4.50
+						;; size=15 bbWeight=1 PerfScore 4.50
 G_M64406_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rsi, qword ptr [rbx+0x40]
-       mov      rdx, qword ptr [rsp+0x90]
-       lea      r9, [rsp+0x68]
+       mov      rdx, qword ptr [rsp+0x70]
+       lea      r9, [rsp+0x48]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        xor      r8d, r8d
@@ -68,10 +66,10 @@ G_M64406_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rdi]
        test     rdi, rdi
        je       G_M64406_IG07
-						;; size=40 bbWeight=1 PerfScore 6.50
+						;; size=37 bbWeight=1 PerfScore 6.50
 G_M64406_IG03:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       movzx    rcx, byte  ptr [rsp+0x68]
+       movzx    rcx, byte  ptr [rsp+0x48]
        test     cl, cl
        jne      SHORT G_M64406_IG04
        lea      rcx, gword ptr [(reloc)]
@@ -95,14 +93,14 @@ G_M64406_IG04:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M64406_IG07
-       lea      rcx, [rsp+0x90]
+       lea      rcx, [rsp+0x70]
        call     System.DateTime:get_Year():int:this
        ; gcr arg pop 0
        mov      r8d, eax
-       mov      rdx, qword ptr [rsp+0x68]
-       mov      qword ptr [rsp+0x48], rdx
+       mov      rdx, qword ptr [rsp+0x48]
+       mov      qword ptr [rsp+0x28], rdx
        mov      qword ptr [rsp+0x20], rdx
-       lea      rdx, [rsp+0x50]
+       lea      rdx, [rsp+0x30]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      r9, rdi
@@ -110,12 +108,8 @@ G_M64406_IG04:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        call     <unknown method>
        ; gcrRegs -[rcx rbx r9]
        ; gcr arg pop 0
-       mov      rcx, qword ptr [rsp+0x90]
-       movups   xmm0, xmmword ptr [rsp+0x50]
-       movups   xmmword ptr [rsp+0x30], xmm0
-       mov      r8, qword ptr [rsp+0x60]
-       mov      qword ptr [rsp+0x40], r8
        lea      r8, [rsp+0x30]
+       mov      rcx, qword ptr [rsp+0x70]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        call     <unknown method>
@@ -125,7 +119,7 @@ G_M64406_IG04:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        jne      SHORT G_M64406_IG05
        xor      edx, edx
        jmp      SHORT G_M64406_IG06
-						;; size=123 bbWeight=0.50 PerfScore 12.50
+						;; size=97 bbWeight=0.50 PerfScore 9.50
 G_M64406_IG05:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        mov      rdx, qword ptr [rdi+0x20]
 						;; size=4 bbWeight=0.50 PerfScore 1.00
@@ -140,14 +134,14 @@ G_M64406_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rax, rsi
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M64406_IG08:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 112
+       add      rsp, 80
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 235, prolog size 7, PerfScore 30.38, instruction count 61, allocated bytes for code 235 (MethodHash=9cf60469) for method System.TimeZoneInfo:GetUtcOffset(System.DateTime,System.TimeZoneInfo):System.TimeSpan (FullOpts)
+; Total bytes of code 203, prolog size 7, PerfScore 27.38, instruction count 57, allocated bytes for code 203 (MethodHash=9cf60469) for method System.TimeZoneInfo:GetUtcOffset(System.DateTime,System.TimeZoneInfo):System.TimeSpan (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -160,7 +154,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 13 * 8 + 8 = 112 = 0x70
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
     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)
-32 (-13.62%) : 12695.dasm - System.TimeZoneInfo:GetUtcOffset(System.DateTime,System.TimeZoneInfo):System.TimeSpan (FullOpts)
@@ -7,13 +7,13 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  6,  5   )  struct ( 8) [rsp+0x90]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
+;  V00 arg0         [V00    ] (  6,  5   )  struct ( 8) [rsp+0x70]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.DateTime>
 ;  V01 arg1         [V01,T01] (  5,  4.50)     ref  ->  rbx         class-hnd exact single-def <System.TimeZoneInfo>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    <System.TimeSpan>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.TimeZoneInfo+AdjustmentRule>
-;  V04 loc2         [V04    ] (  3,  2   )  struct ( 8) [rsp+0x68]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Nullable`1[int]>
-;  V05 loc3         [V05    ] (  2,  1   )  struct (24) [rsp+0x50]  do-not-enreg[XS] addr-exposed <System.Globalization.DaylightTimeStruct>
-;  V06 loc4         [V06,T09] (  2,  1   )   ubyte  ->  rax        
+;  V04 loc2         [V04    ] (  3,  2   )  struct ( 8) [rsp+0x48]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Nullable`1[int]>
+;  V05 loc3         [V05    ] (  2,  1   )  struct (24) [rsp+0x30]  do-not-enreg[XHS] addr-exposed hidden-struct-arg <System.Globalization.DaylightTimeStruct>
+;  V06 loc4         [V06,T08] (  2,  1   )   ubyte  ->  rax        
 ;  V07 OutArgs      [V07    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V08 tmp1         [V08    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.TimeSpan>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct ( 8) zero-ref    <System.TimeSpan>
@@ -24,39 +24,37 @@
 ;  V14 tmp7         [V14,T00] (  7,  9   )     ref  ->  rdi         class-hnd exact single-def "dup spill" <System.TimeZoneInfo+AdjustmentRule>
 ;* V15 tmp8         [V15    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V17 tmp10        [V17,T07] (  2,  1   )     int  ->  rcx        
+;  V17 tmp10        [V17,T06] (  2,  1   )     int  ->  rcx        
 ;* V18 tmp11        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp12        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V20 tmp13        [V20    ] (  6,  5   )    long  ->  [rsp+0x90]  do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP
+;  V20 tmp13        [V20    ] (  6,  5   )    long  ->  [rsp+0x70]  do-not-enreg[X] addr-exposed single-def "field V00._dateData (fldOffset=0x0)" P-DEP
 ;  V21 tmp14        [V21,T02] (  6,  4   )    long  ->  rsi         "field V02._ticks (fldOffset=0x0)" P-INDEP
-;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  ->  [rsp+0x68]  do-not-enreg[X] addr-exposed "field V04.hasValue (fldOffset=0x0)" P-DEP
-;  V23 tmp16        [V23    ] (  2,  1.50)     int  ->  [rsp+0x6C]  do-not-enreg[X] addr-exposed "field V04.value (fldOffset=0x4)" P-DEP
+;  V22 tmp15        [V22    ] (  3,  2   )   ubyte  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed "field V04.hasValue (fldOffset=0x0)" P-DEP
+;  V23 tmp16        [V23    ] (  2,  1.50)     int  ->  [rsp+0x4C]  do-not-enreg[X] addr-exposed "field V04.value (fldOffset=0x4)" P-DEP
 ;* V24 tmp17        [V24    ] (  0,  0   )    long  ->  zero-ref    "field V08._ticks (fldOffset=0x0)" P-INDEP
 ;* V25 tmp18        [V25    ] (  0,  0   )    long  ->  zero-ref    "field V09._ticks (fldOffset=0x0)" P-INDEP
 ;* V26 tmp19        [V26    ] (  0,  0   )    long  ->  zero-ref    "field V10._ticks (fldOffset=0x0)" P-INDEP
-;  V27 tmp20        [V27,T08] (  3,  1.50)    long  ->  rdx         "field V11._ticks (fldOffset=0x0)" P-INDEP
-;* V28 tmp21        [V28,T10] (  0,  0   )    long  ->  zero-ref    "field V12._ticks (fldOffset=0x0)" P-INDEP
+;  V27 tmp20        [V27,T07] (  3,  1.50)    long  ->  rdx         "field V11._ticks (fldOffset=0x0)" P-INDEP
+;* V28 tmp21        [V28,T09] (  0,  0   )    long  ->  zero-ref    "field V12._ticks (fldOffset=0x0)" P-INDEP
 ;  V29 tmp22        [V29,T03] (  2,  2   )    long  ->  rdx         "field V13._dateData (fldOffset=0x0)" P-INDEP
-;  V30 tmp23        [V30,T04] (  2,  2   )  struct ( 8) [rsp+0x48]  do-not-enreg[S] "by-value struct argument" <System.Nullable`1[int]>
+;  V30 tmp23        [V30,T04] (  2,  2   )  struct ( 8) [rsp+0x28]  do-not-enreg[S] "by-value struct argument" <System.Nullable`1[int]>
 ;  V31 tmp24        [V31,T05] (  2,  2   )     int  ->   r8         "argument with side effect"
-;  V32 tmp25        [V32    ] (  2,  2   )  struct (24) [rsp+0x30]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Globalization.DaylightTimeStruct>
-;  V33 tmp26        [V33,T06] (  2,  2   )    long  ->  rcx         "argument with side effect"
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M64406_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 112
-       mov      qword ptr [rsp+0x90], rcx
+       sub      rsp, 80
+       mov      qword ptr [rsp+0x70], rcx
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-						;; size=18 bbWeight=1 PerfScore 4.50
+						;; size=15 bbWeight=1 PerfScore 4.50
 G_M64406_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rsi, qword ptr [rbx+0x40]
-       mov      rdx, qword ptr [rsp+0x90]
-       lea      r9, [rsp+0x68]
+       mov      rdx, qword ptr [rsp+0x70]
+       lea      r9, [rsp+0x48]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        xor      r8d, r8d
@@ -67,10 +65,10 @@ G_M64406_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rdi]
        test     rdi, rdi
        je       G_M64406_IG07
-						;; size=40 bbWeight=1 PerfScore 6.50
+						;; size=37 bbWeight=1 PerfScore 6.50
 G_M64406_IG03:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       movzx    rcx, byte  ptr [rsp+0x68]
+       movzx    rcx, byte  ptr [rsp+0x48]
        test     cl, cl
        jne      SHORT G_M64406_IG04
        lea      rcx, gword ptr [(reloc)]
@@ -94,14 +92,14 @@ G_M64406_IG04:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M64406_IG07
-       lea      rcx, [rsp+0x90]
+       lea      rcx, [rsp+0x70]
        call     System.DateTime:get_Year():int:this
        ; gcr arg pop 0
        mov      r8d, eax
-       mov      rdx, qword ptr [rsp+0x68]
-       mov      qword ptr [rsp+0x48], rdx
+       mov      rdx, qword ptr [rsp+0x48]
+       mov      qword ptr [rsp+0x28], rdx
        mov      qword ptr [rsp+0x20], rdx
-       lea      rdx, [rsp+0x50]
+       lea      rdx, [rsp+0x30]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      r9, rdi
@@ -109,12 +107,8 @@ G_M64406_IG04:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        call     <unknown method>
        ; gcrRegs -[rcx rbx r9]
        ; gcr arg pop 0
-       mov      rcx, qword ptr [rsp+0x90]
-       movups   xmm0, xmmword ptr [rsp+0x50]
-       movups   xmmword ptr [rsp+0x30], xmm0
-       mov      r8, qword ptr [rsp+0x60]
-       mov      qword ptr [rsp+0x40], r8
        lea      r8, [rsp+0x30]
+       mov      rcx, qword ptr [rsp+0x70]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        call     <unknown method>
@@ -124,7 +118,7 @@ G_M64406_IG04:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        jne      SHORT G_M64406_IG05
        xor      edx, edx
        jmp      SHORT G_M64406_IG06
-						;; size=123 bbWeight=0.50 PerfScore 12.50
+						;; size=97 bbWeight=0.50 PerfScore 9.50
 G_M64406_IG05:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        mov      rdx, qword ptr [rdi+0x20]
 						;; size=4 bbWeight=0.50 PerfScore 1.00
@@ -139,14 +133,14 @@ G_M64406_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rax, rsi
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M64406_IG08:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 112
+       add      rsp, 80
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 235, prolog size 7, PerfScore 30.38, instruction count 61, allocated bytes for code 235 (MethodHash=9cf60469) for method System.TimeZoneInfo:GetUtcOffset(System.DateTime,System.TimeZoneInfo):System.TimeSpan (FullOpts)
+; Total bytes of code 203, prolog size 7, PerfScore 27.38, instruction count 57, allocated bytes for code 203 (MethodHash=9cf60469) for method System.TimeZoneInfo:GetUtcOffset(System.DateTime,System.TimeZoneInfo):System.TimeSpan (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -159,7 +153,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 13 * 8 + 8 = 112 = 0x70
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
     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)
+49 (+9.44%) : 13753.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts)
@@ -16,7 +16,7 @@
 ;  V06 tmp1         [V06,T01] (  5,  6.75)     ref  ->  rdi         class-hnd exact "spilling qmarkNull" <System.String>
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V09 tmp4         [V09,T37] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.InvalidFilterCriteriaException>
+;  V09 tmp4         [V09,T40] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.InvalidFilterCriteriaException>
 ;* V10 tmp5         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V12 tmp7         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
@@ -25,14 +25,14 @@
 ;  V15 tmp10        [V15,T09] (  2,  4   )   byref  ->  rbp         single-def "Inlining Arg"
 ;* V16 tmp11        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp12        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V18 tmp13        [V18    ] (  5,  3.50)  struct (16) [rsp+0x48]  do-not-enreg[XS] must-init addr-exposed "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;  V18 tmp13        [V18,T29] (  3,  1.50)  struct (16) [rsp+0x58]  do-not-enreg[HS] must-init hidden-struct-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V19 tmp14        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V20 tmp15        [V20,T23] (  2,  2   )     int  ->  rcx         "Span.get_Item index"
-;  V21 tmp16        [V21,T27] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;  V20 tmp15        [V20,T25] (  2,  2   )     int  ->  rcx         "Span.get_Item index"
+;  V21 tmp16        [V21,T30] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;  V22 tmp17        [V22,T05] (  4,  4   )  ushort  ->  rcx         "Inlining Arg"
 ;* V23 tmp18        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V24 tmp19        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V25 tmp20        [V25,T28] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;  V25 tmp20        [V25,T31] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;  V26 tmp21        [V26,T06] (  4,  4   )  ushort  ->  rcx         "Inlining Arg"
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V28 tmp23        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -40,8 +40,8 @@
 ;  V30 tmp25        [V30,T02] (  4,  6   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V31 tmp26        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp27        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V33 tmp28        [V33,T24] (  2,  2   )     int  ->  r15         "Inlining Arg"
-;  V34 tmp29        [V34,T20] (  2,  2   )   byref  ->  r14         single-def "Inlining Arg"
+;  V33 tmp28        [V33,T26] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V34 tmp29        [V34,T22] (  2,  2   )   byref  ->  r13         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   )     int  ->  zero-ref    "Inline return value spill temp"
@@ -52,30 +52,30 @@
 ;* V42 tmp37        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V43 tmp38        [V43,T07] (  4,  4   )     int  ->  rax         "Inlining Arg"
 ;* V44 tmp39        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;  V45 tmp40        [V45,T16] (  3,  3   )     int  ->  r15         "Inlining Arg"
-;  V46 tmp41        [V46,T21] (  2,  2   )   byref  ->  r13         single-def "Inlining Arg"
+;  V45 tmp40        [V45,T16] (  3,  3   )     int  ->  r12         "Inlining Arg"
+;  V46 tmp41        [V46,T23] (  2,  2   )   byref  ->  rbx         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,T36] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V49 tmp44        [V49,T39] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V50 tmp45        [V50    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V51 tmp46        [V51,T25] (  2,  2   )     int  ->  rcx         "Span.get_Item index"
+;  V51 tmp46        [V51,T27] (  2,  2   )     int  ->  rcx         "Span.get_Item index"
 ;* V52 tmp47        [V52    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
 ;* V53 tmp48        [V53    ] (  0,  0   )   byref  ->  zero-ref   
-;  V54 tmp49        [V54,T08] (  4,  4   )     int  ->  rbx         "Inlining Arg"
+;  V54 tmp49        [V54,T08] (  4,  4   )     int  ->  r12         "Inlining Arg"
 ;* V55 tmp50        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V56 tmp51        [V56    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V57 tmp52        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V58 tmp53        [V58    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V59 tmp54        [V59,T17] (  4,  2.50)   byref  ->  rdi         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-;  V60 tmp55        [V60,T12] (  5,  3.50)     int  ->  rbp         "field V03._length (fldOffset=0x8)" P-INDEP
-;  V61 tmp56        [V61,T18] (  4,  2.50)   byref  ->  r13         "field V04._reference (fldOffset=0x0)" P-INDEP
-;  V62 tmp57        [V62,T19] (  4,  2.50)     int  ->  r12         "field V04._length (fldOffset=0x8)" P-INDEP
+;  V59 tmp54        [V59,T21] (  3,  2   )   byref  ->  rdi         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+;  V60 tmp55        [V60,T15] (  4,  3   )     int  ->  r15         "field V03._length (fldOffset=0x8)" P-INDEP
+;  V61 tmp56        [V61,T17] (  4,  2.50)   byref  ->  [rsp+0x28]  "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V62 tmp57        [V62,T19] (  4,  2.50)     int  ->  [rsp+0x54]  "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V63 tmp58        [V63    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V64 tmp59        [V64    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
-;  V65 tmp60        [V65,T14] (  5,  3   )   byref  ->  rbp         "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V66 tmp61        [V66,T13] (  5,  3.50)     int  ->  r14         "field V11._length (fldOffset=0x8)" P-INDEP
-;  V67 tmp62        [V67,T22] (  2,  2   )   byref  ->  rbp         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V68 tmp63        [V68,T26] (  2,  2   )     int  ->  r14         "field V12._length (fldOffset=0x8)" P-INDEP
+;  V65 tmp60        [V65,T13] (  5,  3   )   byref  ->  rbp         "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V66 tmp61        [V66,T12] (  5,  3.50)     int  ->  r14         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V67 tmp62        [V67,T24] (  2,  2   )   byref  ->  rbp         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V68 tmp63        [V68,T28] (  2,  2   )     int  ->  r14         "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V69 tmp64        [V69    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V70 tmp65        [V70    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V71 tmp66        [V71    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V19._reference (fldOffset=0x0)" P-INDEP
@@ -88,10 +88,10 @@
 ;* V78 tmp73        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V27._length (fldOffset=0x8)" P-INDEP
 ;* V79 tmp74        [V79    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V80 tmp75        [V80    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V81 tmp76        [V81,T15] (  5,  3   )   byref  ->  r14         "field V29._reference (fldOffset=0x0)" P-INDEP
-;  V82 tmp77        [V82,T11] (  6,  3.50)     int  ->  r15         "field V29._length (fldOffset=0x8)" P-INDEP
-;  V83 tmp78        [V83,T30] (  2,  1   )   byref  ->  r14         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
-;  V84 tmp79        [V84,T33] (  2,  1   )     int  ->  r15         "field V31._length (fldOffset=0x8)" P-INDEP
+;  V81 tmp76        [V81,T14] (  5,  3   )   byref  ->  r13         "field V29._reference (fldOffset=0x0)" P-INDEP
+;  V82 tmp77        [V82,T11] (  6,  3.50)     int  ->  r12         "field V29._length (fldOffset=0x8)" P-INDEP
+;  V83 tmp78        [V83,T33] (  2,  1   )   byref  ->  r13         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+;  V84 tmp79        [V84,T36] (  2,  1   )     int  ->  r12         "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V85 tmp80        [V85    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V86 tmp81        [V86    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V87 tmp82        [V87    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V38._reference (fldOffset=0x0)" P-INDEP
@@ -100,18 +100,20 @@
 ;* V90 tmp85        [V90    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V91 tmp86        [V91    ] (  0,  0   )   byref  ->  zero-ref    "field V42._reference (fldOffset=0x0)" P-INDEP
 ;* V92 tmp87        [V92    ] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
-;  V93 tmp88        [V93,T31] (  2,  1   )   byref  ->  r13         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-;  V94 tmp89        [V94,T34] (  2,  1   )     int  ->  r12         "field V44._length (fldOffset=0x8)" P-INDEP
+;  V93 tmp88        [V93,T34] (  2,  1   )   byref  ->  rax         single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;  V94 tmp89        [V94,T37] (  2,  1   )     int  ->  rdx         "field V44._length (fldOffset=0x8)" P-INDEP
 ;* V95 tmp90        [V95    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V50._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp91        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V50._length (fldOffset=0x8)" P-INDEP
-;  V97 tmp92        [V97,T32] (  2,  1   )   byref  ->  rdi         single-def "field V55._reference (fldOffset=0x0)" P-INDEP
-;  V98 tmp93        [V98,T35] (  2,  1   )     int  ->  rbx         "field V55._length (fldOffset=0x8)" P-INDEP
-;  V99 tmp94        [V99    ] (  9,  9   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V100 tmp95       [V100    ] (  6,  6   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V101 tmp96       [V101,T38] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V102 cse0        [V102,T29] (  3,  1.50)     int  ->  rbx         "CSE #02: moderate"
+;  V97 tmp92        [V97,T35] (  2,  1   )   byref  ->  rbp         single-def "field V55._reference (fldOffset=0x0)" P-INDEP
+;  V98 tmp93        [V98,T38] (  2,  1   )     int  ->  r12         "field V55._length (fldOffset=0x8)" P-INDEP
+;  V99 tmp94        [V99,T18] (  4,  2.50)   byref  ->  rbp         "V18.[000..008)"
+;  V100 tmp95       [V100,T20] (  4,  2.50)     int  ->  r14         "V18.[008..012)"
+;  V101 tmp96       [V101    ] (  9,  9   )  struct (16) [rsp+0x40]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V102 tmp97       [V102    ] (  6,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V103 tmp98       [V103,T41] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V104 cse0        [V104,T32] (  3,  1.50)     int  ->  r12         "CSE #02: moderate"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 104
 
 G_M29177_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -122,17 +124,17 @@ G_M29177_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 88
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
+       sub      rsp, 104
        xorps    xmm4, xmm4
        movaps   xmmword ptr [rsp+0x30], xmm4
        movaps   xmmword ptr [rsp+0x40], xmm4
-       mov      qword ptr [rsp+0x50], rax
+       movaps   xmmword ptr [rsp+0x50], xmm4
+       xor      eax, eax
+       mov      qword ptr [rsp+0x60], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      esi, r8d
-						;; size=47 bbWeight=1 PerfScore 15.33
+						;; size=47 bbWeight=1 PerfScore 16.33
 G_M29177_IG02:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdx]
        test     rdx, rdx
@@ -199,23 +201,24 @@ G_M29177_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        jne      SHORT G_M29177_IG13
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M29177_IG12:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
-       mov      bword ptr [rsp+0x48], rbp
-       mov      dword ptr [rsp+0x50], r14d
        jmp      SHORT G_M29177_IG14
-						;; size=12 bbWeight=0.50 PerfScore 2.00
+						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M29177_IG13:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref
-       mov      bword ptr [rsp+0x38], rbp
-       mov      dword ptr [rsp+0x40], r14d
-       lea      rdx, [rsp+0x38]
-       lea      rcx, [rsp+0x48]
+       mov      bword ptr [rsp+0x40], rbp
+       mov      dword ptr [rsp+0x48], r14d
+       lea      rdx, [rsp+0x40]
+       lea      rcx, [rsp+0x58]
        call     <unknown method>
        ; byrRegs -[rbp]
        ; gcr arg pop 0
-						;; size=25 bbWeight=0.50 PerfScore 2.00
-G_M29177_IG14:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, bword ptr [rsp+0x48]
+       mov      rbp, bword ptr [rsp+0x58]
+       ; byrRegs +[rbp]
+       mov      r14d, dword ptr [rsp+0x60]
+						;; size=35 bbWeight=0.50 PerfScore 3.00
+G_M29177_IG14:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
+       mov      rdi, rbp
        ; byrRegs +[rdi]
-       mov      ebp, dword ptr [rsp+0x50]
+       mov      r15d, r14d
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rbx]
@@ -224,51 +227,51 @@ G_M29177_IG14:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        test     rax, rax
        jne      SHORT G_M29177_IG16
-						;; size=23 bbWeight=1 PerfScore 8.50
-G_M29177_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz
+						;; size=20 bbWeight=1 PerfScore 7.00
+G_M29177_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=00A0 {rbp rdi}, byref, isz
        ; gcrRegs -[rax]
-       xor      r14, r14
-       ; byrRegs +[r14]
-       xor      r15d, r15d
+       xor      r13, r13
+       ; byrRegs +[r13]
+       xor      r12d, r12d
        jmp      SHORT G_M29177_IG17
 						;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M29177_IG16:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0080 {rdi}, byref
+G_M29177_IG16:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=00A0 {rbp rdi}, byref
        ; gcrRegs +[rax]
-       ; byrRegs -[r14]
-       lea      r14, bword ptr [rax+0x0C]
-       ; byrRegs +[r14]
-       mov      r15d, dword ptr [rax+0x08]
-						;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M29177_IG17:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=4080 {rdi r14}, byref, isz
-       ; gcrRegs -[rax]
-       mov      r13, r14
+       ; byrRegs -[r13]
+       lea      r13, bword ptr [rax+0x0C]
        ; byrRegs +[r13]
-       mov      r12d, r15d
+       mov      r12d, dword ptr [rax+0x08]
+						;; size=8 bbWeight=0.50 PerfScore 1.25
+G_M29177_IG17:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=20A0 {rbp rdi r13}, byref, isz
+       ; gcrRegs -[rax]
+       mov      bword ptr [rsp+0x28], r13
+       ; GC ptr vars +{V61}
+       mov      dword ptr [rsp+0x54], r12d
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rbx]
-       call     [rax+0x30]<unknown method>
+       mov      r8, qword ptr [rbx]
+       call     [r8+0x30]<unknown method>
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        cmp      eax, 128
        jne      SHORT G_M29177_IG20
-						;; size=22 bbWeight=1 PerfScore 7.00
-G_M29177_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4080 {rdi r14}, byref, isz
-       ; byrRegs -[r13]
-       mov      rcx, r14
+						;; size=27 bbWeight=1 PerfScore 8.50
+G_M29177_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=20A0 {rbp rdi r13}, gcvars, byref, isz
+       ; GC ptr vars -{V61}
+       mov      rcx, r13
        ; byrRegs +[rcx]
-       mov      r8d, r15d
+       mov      r8d, r12d
        mov      edx, 43
        call     <unknown method>
        ; byrRegs -[rcx]
...
+49 (+9.46%) : 9562.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts)
@@ -16,7 +16,7 @@
 ;  V06 tmp1         [V06,T01] (  5,  6.75)     ref  ->  rdi         class-hnd exact "spilling qmarkNull" <System.String>
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V09 tmp4         [V09,T37] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.InvalidFilterCriteriaException>
+;  V09 tmp4         [V09,T40] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.InvalidFilterCriteriaException>
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V12 tmp7         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
@@ -24,14 +24,14 @@
 ;  V14 tmp9         [V14,T09] (  2,  4   )   byref  ->  rbp         single-def "Inlining Arg"
 ;* V15 tmp10        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp11        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V17 tmp12        [V17    ] (  5,  3.50)  struct (16) [rsp+0x48]  do-not-enreg[XS] must-init addr-exposed "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;  V17 tmp12        [V17,T29] (  3,  1.50)  struct (16) [rsp+0x58]  do-not-enreg[HS] must-init hidden-struct-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V19 tmp14        [V19,T23] (  2,  2   )     int  ->  rcx         "Span.get_Item index"
-;  V20 tmp15        [V20,T27] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;  V19 tmp14        [V19,T25] (  2,  2   )     int  ->  rcx         "Span.get_Item index"
+;  V20 tmp15        [V20,T30] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;  V21 tmp16        [V21,T05] (  4,  4   )  ushort  ->  rcx         "Inlining Arg"
 ;* V22 tmp17        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V23 tmp18        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V24 tmp19        [V24,T28] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;  V24 tmp19        [V24,T31] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;  V25 tmp20        [V25,T06] (  4,  4   )  ushort  ->  rcx         "Inlining Arg"
 ;* V26 tmp21        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
@@ -39,8 +39,8 @@
 ;  V29 tmp24        [V29,T02] (  4,  6   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V30 tmp25        [V30    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V31 tmp26        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V32 tmp27        [V32,T24] (  2,  2   )     int  ->  r15         "Inlining Arg"
-;  V33 tmp28        [V33,T20] (  2,  2   )   byref  ->  r14         single-def "Inlining Arg"
+;  V32 tmp27        [V32,T26] (  2,  2   )     int  ->  r12         "Inlining Arg"
+;  V33 tmp28        [V33,T22] (  2,  2   )   byref  ->  r13         single-def "Inlining Arg"
 ;* V34 tmp29        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp30        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp31        [V36    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
@@ -51,30 +51,30 @@
 ;* V41 tmp36        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V42 tmp37        [V42,T07] (  4,  4   )     int  ->  rax         "Inlining Arg"
 ;* V43 tmp38        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;  V44 tmp39        [V44,T16] (  3,  3   )     int  ->  r15         "Inlining Arg"
-;  V45 tmp40        [V45,T21] (  2,  2   )   byref  ->  r13         single-def "Inlining Arg"
+;  V44 tmp39        [V44,T16] (  3,  3   )     int  ->  r12         "Inlining Arg"
+;  V45 tmp40        [V45,T23] (  2,  2   )   byref  ->  rbx         single-def "Inlining Arg"
 ;* V46 tmp41        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp42        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V48 tmp43        [V48,T36] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V48 tmp43        [V48,T39] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V49 tmp44        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V50 tmp45        [V50,T25] (  2,  2   )     int  ->  rcx         "Span.get_Item index"
+;  V50 tmp45        [V50,T27] (  2,  2   )     int  ->  rcx         "Span.get_Item index"
 ;* V51 tmp46        [V51    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op "Inline stloc first use temp"
 ;* V52 tmp47        [V52    ] (  0,  0   )   byref  ->  zero-ref   
-;  V53 tmp48        [V53,T08] (  4,  4   )     int  ->  rbx         "Inlining Arg"
+;  V53 tmp48        [V53,T08] (  4,  4   )     int  ->  r12         "Inlining Arg"
 ;* V54 tmp49        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V55 tmp50        [V55    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V56 tmp51        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp52        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V58 tmp53        [V58,T17] (  4,  2.50)   byref  ->  rdi         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-;  V59 tmp54        [V59,T12] (  5,  3.50)     int  ->  rbp         "field V03._length (fldOffset=0x8)" P-INDEP
-;  V60 tmp55        [V60,T18] (  4,  2.50)   byref  ->  r13         "field V04._reference (fldOffset=0x0)" P-INDEP
-;  V61 tmp56        [V61,T19] (  4,  2.50)     int  ->  r12         "field V04._length (fldOffset=0x8)" P-INDEP
+;  V58 tmp53        [V58,T21] (  3,  2   )   byref  ->  rdi         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+;  V59 tmp54        [V59,T15] (  4,  3   )     int  ->  r15         "field V03._length (fldOffset=0x8)" P-INDEP
+;  V60 tmp55        [V60,T17] (  4,  2.50)   byref  ->  [rsp+0x28]  "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V61 tmp56        [V61,T19] (  4,  2.50)     int  ->  [rsp+0x54]  "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V62 tmp57        [V62    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V63 tmp58        [V63    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
-;  V64 tmp59        [V64,T14] (  5,  3   )   byref  ->  rbp         "field V10._reference (fldOffset=0x0)" P-INDEP
-;  V65 tmp60        [V65,T13] (  5,  3.50)     int  ->  r14         "field V10._length (fldOffset=0x8)" P-INDEP
-;  V66 tmp61        [V66,T22] (  2,  2   )   byref  ->  rbp         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V67 tmp62        [V67,T26] (  2,  2   )     int  ->  r14         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V64 tmp59        [V64,T13] (  5,  3   )   byref  ->  rbp         "field V10._reference (fldOffset=0x0)" P-INDEP
+;  V65 tmp60        [V65,T12] (  5,  3.50)     int  ->  r14         "field V10._length (fldOffset=0x8)" P-INDEP
+;  V66 tmp61        [V66,T24] (  2,  2   )   byref  ->  rbp         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V67 tmp62        [V67,T28] (  2,  2   )     int  ->  r14         "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V68 tmp63        [V68    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V12._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp64        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V70 tmp65        [V70    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
@@ -87,10 +87,10 @@
 ;* V77 tmp72        [V77    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-INDEP
 ;* V78 tmp73        [V78    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V27._reference (fldOffset=0x0)" P-INDEP
 ;* V79 tmp74        [V79    ] (  0,  0   )     int  ->  zero-ref    "field V27._length (fldOffset=0x8)" P-INDEP
-;  V80 tmp75        [V80,T15] (  5,  3   )   byref  ->  r14         "field V28._reference (fldOffset=0x0)" P-INDEP
-;  V81 tmp76        [V81,T11] (  6,  3.50)     int  ->  r15         "field V28._length (fldOffset=0x8)" P-INDEP
-;  V82 tmp77        [V82,T30] (  2,  1   )   byref  ->  r14         single-def "field V30._reference (fldOffset=0x0)" P-INDEP
-;  V83 tmp78        [V83,T33] (  2,  1   )     int  ->  r15         "field V30._length (fldOffset=0x8)" P-INDEP
+;  V80 tmp75        [V80,T14] (  5,  3   )   byref  ->  r13         "field V28._reference (fldOffset=0x0)" P-INDEP
+;  V81 tmp76        [V81,T11] (  6,  3.50)     int  ->  r12         "field V28._length (fldOffset=0x8)" P-INDEP
+;  V82 tmp77        [V82,T33] (  2,  1   )   byref  ->  r13         single-def "field V30._reference (fldOffset=0x0)" P-INDEP
+;  V83 tmp78        [V83,T36] (  2,  1   )     int  ->  r12         "field V30._length (fldOffset=0x8)" P-INDEP
 ;* V84 tmp79        [V84    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V85 tmp80        [V85    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V86 tmp81        [V86    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V37._reference (fldOffset=0x0)" P-INDEP
@@ -99,17 +99,19 @@
 ;* V89 tmp84        [V89    ] (  0,  0   )     int  ->  zero-ref    "field V38._length (fldOffset=0x8)" P-INDEP
 ;* V90 tmp85        [V90    ] (  0,  0   )   byref  ->  zero-ref    "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V91 tmp86        [V91    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
-;  V92 tmp87        [V92,T31] (  2,  1   )   byref  ->  r13         single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-;  V93 tmp88        [V93,T34] (  2,  1   )     int  ->  r12         "field V43._length (fldOffset=0x8)" P-INDEP
+;  V92 tmp87        [V92,T34] (  2,  1   )   byref  ->  rax         single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+;  V93 tmp88        [V93,T37] (  2,  1   )     int  ->  rdx         "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V94 tmp89        [V94    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V95 tmp90        [V95    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
-;  V96 tmp91        [V96,T32] (  2,  1   )   byref  ->  rdi         single-def "field V54._reference (fldOffset=0x0)" P-INDEP
-;  V97 tmp92        [V97,T35] (  2,  1   )     int  ->  rbx         "field V54._length (fldOffset=0x8)" P-INDEP
-;  V98 tmp93        [V98    ] (  9,  9   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V99 tmp94        [V99    ] (  6,  6   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V100 cse0        [V100,T29] (  3,  1.50)     int  ->  rbx         "CSE #02: moderate"
+;  V96 tmp91        [V96,T35] (  2,  1   )   byref  ->  rbp         single-def "field V54._reference (fldOffset=0x0)" P-INDEP
+;  V97 tmp92        [V97,T38] (  2,  1   )     int  ->  r12         "field V54._length (fldOffset=0x8)" P-INDEP
+;  V98 tmp93        [V98,T18] (  4,  2.50)   byref  ->  rbp         "V17.[000..008)"
+;  V99 tmp94        [V99,T20] (  4,  2.50)     int  ->  r14         "V17.[008..012)"
+;  V100 tmp95       [V100    ] (  9,  9   )  struct (16) [rsp+0x40]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V101 tmp96       [V101    ] (  6,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V102 cse0        [V102,T32] (  3,  1.50)     int  ->  r12         "CSE #02: moderate"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 104
 
 G_M29177_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -120,17 +122,17 @@ G_M29177_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 88
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
+       sub      rsp, 104
        xorps    xmm4, xmm4
        movaps   xmmword ptr [rsp+0x30], xmm4
        movaps   xmmword ptr [rsp+0x40], xmm4
-       mov      qword ptr [rsp+0x50], rax
+       movaps   xmmword ptr [rsp+0x50], xmm4
+       xor      eax, eax
+       mov      qword ptr [rsp+0x60], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      esi, r8d
-						;; size=47 bbWeight=1 PerfScore 15.33
+						;; size=47 bbWeight=1 PerfScore 16.33
 G_M29177_IG02:        ; bbWeight=1, gcrefRegs=000C {rdx rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdx]
        test     rdx, rdx
@@ -197,23 +199,24 @@ G_M29177_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        jne      SHORT G_M29177_IG13
 						;; size=4 bbWeight=0.50 PerfScore 0.62
 G_M29177_IG12:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
-       mov      bword ptr [rsp+0x48], rbp
-       mov      dword ptr [rsp+0x50], r14d
        jmp      SHORT G_M29177_IG14
-						;; size=12 bbWeight=0.50 PerfScore 2.00
+						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M29177_IG13:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref
-       mov      bword ptr [rsp+0x38], rbp
-       mov      dword ptr [rsp+0x40], r14d
-       lea      rdx, [rsp+0x38]
-       lea      rcx, [rsp+0x48]
+       mov      bword ptr [rsp+0x40], rbp
+       mov      dword ptr [rsp+0x48], r14d
+       lea      rdx, [rsp+0x40]
+       lea      rcx, [rsp+0x58]
        call     <unknown method>
        ; byrRegs -[rbp]
        ; gcr arg pop 0
-						;; size=25 bbWeight=0.50 PerfScore 2.00
-G_M29177_IG14:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, bword ptr [rsp+0x48]
+       mov      rbp, bword ptr [rsp+0x58]
+       ; byrRegs +[rbp]
+       mov      r14d, dword ptr [rsp+0x60]
+						;; size=35 bbWeight=0.50 PerfScore 3.00
+G_M29177_IG14:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
+       mov      rdi, rbp
        ; byrRegs +[rdi]
-       mov      ebp, dword ptr [rsp+0x50]
+       mov      r15d, r14d
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rax, qword ptr [rbx]
@@ -222,51 +225,51 @@ G_M29177_IG14:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        test     rax, rax
        jne      SHORT G_M29177_IG16
-						;; size=23 bbWeight=1 PerfScore 8.50
-G_M29177_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0080 {rdi}, byref, isz
+						;; size=20 bbWeight=1 PerfScore 7.00
+G_M29177_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=00A0 {rbp rdi}, byref, isz
        ; gcrRegs -[rax]
-       xor      r14, r14
-       ; byrRegs +[r14]
-       xor      r15d, r15d
+       xor      r13, r13
+       ; byrRegs +[r13]
+       xor      r12d, r12d
        jmp      SHORT G_M29177_IG17
 						;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M29177_IG16:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0080 {rdi}, byref
+G_M29177_IG16:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=00A0 {rbp rdi}, byref
        ; gcrRegs +[rax]
-       ; byrRegs -[r14]
-       lea      r14, bword ptr [rax+0x0C]
-       ; byrRegs +[r14]
-       mov      r15d, dword ptr [rax+0x08]
-						;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M29177_IG17:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=4080 {rdi r14}, byref, isz
-       ; gcrRegs -[rax]
-       mov      r13, r14
+       ; byrRegs -[r13]
+       lea      r13, bword ptr [rax+0x0C]
        ; byrRegs +[r13]
-       mov      r12d, r15d
+       mov      r12d, dword ptr [rax+0x08]
+						;; size=8 bbWeight=0.50 PerfScore 1.25
+G_M29177_IG17:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=20A0 {rbp rdi r13}, byref, isz
+       ; gcrRegs -[rax]
+       mov      bword ptr [rsp+0x28], r13
+       ; GC ptr vars +{V60}
+       mov      dword ptr [rsp+0x54], r12d
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rbx]
-       call     [rax+0x30]<unknown method>
+       mov      r8, qword ptr [rbx]
+       call     [r8+0x30]<unknown method>
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        cmp      eax, 128
        jne      SHORT G_M29177_IG20
-						;; size=22 bbWeight=1 PerfScore 7.00
-G_M29177_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=4080 {rdi r14}, byref, isz
-       ; byrRegs -[r13]
-       mov      rcx, r14
+						;; size=27 bbWeight=1 PerfScore 8.50
+G_M29177_IG18:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=20A0 {rbp rdi r13}, gcvars, byref, isz
+       ; GC ptr vars -{V60}
+       mov      rcx, r13
        ; byrRegs +[rcx]
-       mov      r8d, r15d
+       mov      r8d, r12d
        mov      edx, 43
        call     <unknown method>
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        inc      eax
...
+20 (+10.70%) : 5894.dasm - System.DefaultBinder:CompareMethodSig(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
@@ -8,40 +8,47 @@
 ; control-flow guard enabled
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T07] (  3,  3   )     ref  ->  rcx         class-hnd single-def <System.Reflection.MethodBase>
-;  V01 arg1         [V01,T08] (  3,  3   )     ref  ->  rbx         class-hnd single-def <System.Reflection.MethodBase>
-;  V02 loc0         [V02    ] (  4, 10   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-;  V03 loc1         [V03    ] (  4, 10   )  struct (16) [rsp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-;  V04 loc2         [V04,T09] (  3,  5   )     int  ->  rbx        
-;* V05 loc3         [V05,T11] (  0,  0   )     int  ->  zero-ref   
+;  V00 arg0         [V00,T11] (  3,  3   )     ref  ->  rcx         class-hnd single-def <System.Reflection.MethodBase>
+;  V01 arg1         [V01,T12] (  3,  3   )     ref  ->  rbx         class-hnd single-def <System.Reflection.MethodBase>
+;  V02 loc0         [V02,T14] (  3,  2.25)  struct (16) [rsp+0x38]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
+;  V03 loc1         [V03,T09] (  3,  6   )  struct (16) [rsp+0x28]  do-not-enreg[HS] must-init hidden-struct-arg ld-addr-op <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
+;* V04 loc2         [V04,T15] (  0,  0   )     int  ->  zero-ref   
+;  V05 loc3         [V05,T02] (  6, 20.50)     int  ->  rdi        
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "non-inline candidate call" <System.Type>
 ;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
-;  V09 tmp3         [V09,T05] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
-;  V10 tmp4         [V10,T06] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
-;  V11 tmp5         [V11,T01] (  3, 24   )     ref  ->  rcx         "argument with side effect"
-;  V12 tmp6         [V12,T02] (  3, 24   )     ref  ->  rcx         "argument with side effect"
-;  V13 tmp7         [V13,T03] (  2, 16   )     ref  ->  rdi         "argument with side effect"
-;  V14 tmp8         [V14,T04] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V15 cse0         [V15,T10] (  3,  2.50)     int  ->  rbx         "CSE #01: aggressive"
-;  V16 rat0         [V16,T00] (  8, 28.50)    long  ->  rsi         "Widened IV V05"
+;  V09 tmp3         [V09,T10] (  3,  6   )     int  ->  rbx         "V02.[008..012)"
+;  V10 tmp4         [V10,T06] (  4,  6.50)     int  ->  rsi         "V03.[008..012)"
+;  V11 tmp5         [V11,T07] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
+;  V12 tmp6         [V12,T08] (  3,  6   )     ref  ->  rcx         single-def "argument with side effect"
+;  V13 tmp7         [V13,T00] (  3, 24   )     ref  ->  rcx         "argument with side effect"
+;  V14 tmp8         [V14,T01] (  3, 24   )     ref  ->  rcx         "argument with side effect"
+;  V15 tmp9         [V15,T03] (  2, 16   )     ref  ->  r15         "argument with side effect"
+;  V16 tmp10        [V16,T04] (  2, 16   )     ref  ->  rdx         "argument with side effect"
+;  V17 cse0         [V17,T13] (  2,  4.25)   byref  ->  rbp         hoist "CSE #01: aggressive"
+;  V18 cse1         [V18,T05] (  3, 12   )    long  ->  r14         "CSE #02: aggressive"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 72
 
 G_M3867_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, 64
+       sub      rsp, 72
+       xor      eax, eax
+       mov      qword ptr [rsp+0x28], rax
        xorps    xmm4, xmm4
-       movaps   xmmword ptr [rsp+0x20], xmm4
        movaps   xmmword ptr [rsp+0x30], xmm4
+       mov      qword ptr [rsp+0x40], rax
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-						;; size=23 bbWeight=1 PerfScore 7.83
+						;; size=35 bbWeight=1 PerfScore 11.08
 G_M3867_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
-       lea      rdx, [rsp+0x30]
+       lea      rdx, [rsp+0x38]
        mov      rax, qword ptr [rcx]
        mov      rax, qword ptr [rax+0x60]
        call     [CORINFO_HELP_DISPATCH_INDIRECT_CALL]
@@ -49,51 +56,55 @@ G_M3867_IG02:        ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {},
        ; gcr arg pop 0
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       lea      rdx, [rsp+0x20]
+       lea      rdx, [rsp+0x28]
        mov      rax, qword ptr [rcx]
        mov      rax, qword ptr [rax+0x60]
        call     [CORINFO_HELP_DISPATCH_INDIRECT_CALL]
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
-       mov      ebx, dword ptr [rsp+0x38]
-       cmp      ebx, dword ptr [rsp+0x28]
+       mov      ebx, dword ptr [rsp+0x40]
+       mov      esi, dword ptr [rsp+0x30]
+       cmp      ebx, esi
        je       SHORT G_M3867_IG05
-						;; size=49 bbWeight=1 PerfScore 19.25
+						;; size=51 bbWeight=1 PerfScore 18.50
 G_M3867_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M3867_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 72
        pop      rbx
+       pop      rbp
        pop      rsi
        pop      rdi
+       pop      r14
+       pop      r15
        ret      
-						;; size=8 bbWeight=0.50 PerfScore 1.38
+						;; size=13 bbWeight=0.50 PerfScore 2.12
 G_M3867_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-       xor      esi, esi
-       test     ebx, ebx
-       jle      SHORT G_M3867_IG07
+       xor      edi, edi
+       test     esi, esi
+       jle      SHORT G_M3867_IG08
 						;; size=6 bbWeight=0.50 PerfScore 0.75
-G_M3867_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       cmp      esi, dword ptr [rsp+0x38]
-       jae      SHORT G_M3867_IG09
-       mov      rcx, bword ptr [rsp+0x30]
-       ; byrRegs +[rcx]
-       mov      rcx, gword ptr [rcx+8*rsi]
+G_M3867_IG06:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      rbp, bword ptr [rsp+0x38]
+       ; byrRegs +[rbp]
+						;; size=5 bbWeight=0.25 PerfScore 0.25
+G_M3867_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref, isz
+       cmp      edi, ebx
+       jae      SHORT G_M3867_IG10
+       mov      r14d, edi
+       mov      rcx, gword ptr [rbp+8*r14]
        ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
        mov      rax, qword ptr [rcx]
        mov      rax, qword ptr [rax+0x48]
        call     [CORINFO_HELP_DISPATCH_INDIRECT_CALL]
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-       cmp      esi, dword ptr [rsp+0x28]
-       jae      SHORT G_M3867_IG09
-       mov      rcx, bword ptr [rsp+0x20]
+       mov      r15, rax
+       ; gcrRegs +[r15]
+       mov      rcx, bword ptr [rsp+0x28]
        ; byrRegs +[rcx]
-       mov      rcx, gword ptr [rcx+8*rsi]
+       mov      rcx, gword ptr [rcx+8*r14]
        ; gcrRegs +[rcx]
        ; byrRegs -[rcx]
        mov      rax, qword ptr [rcx]
@@ -104,34 +115,38 @@ G_M3867_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcr arg pop 0
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       mov      rcx, rdi
+       mov      rcx, r15
        ; gcrRegs +[rcx]
        call     System.Type:op_Equality(System.Type,System.Type):ubyte
-       ; gcrRegs -[rax rcx rdx rdi]
+       ; gcrRegs -[rax rcx rdx r15]
        ; gcr arg pop 0
        test     eax, eax
        je       SHORT G_M3867_IG03
-       inc      esi
-       cmp      esi, ebx
-       jl       SHORT G_M3867_IG06
-						;; size=80 bbWeight=4 PerfScore 122.00
-G_M3867_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       inc      edi
+       cmp      edi, esi
+       jl       SHORT G_M3867_IG07
+						;; size=71 bbWeight=4 PerfScore 100.00
+G_M3867_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       ; byrRegs -[rbp]
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M3867_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 64
+G_M3867_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 72
        pop      rbx
+       pop      rbp
        pop      rsi
        pop      rdi
+       pop      r14
+       pop      r15
        ret      
-						;; size=8 bbWeight=0.50 PerfScore 1.38
-G_M3867_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+						;; size=13 bbWeight=0.50 PerfScore 2.12
+G_M3867_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 187, prolog size 20, PerfScore 152.83, instruction count 60, allocated bytes for code 187 (MethodHash=6262f0e4) for method System.DefaultBinder:CompareMethodSig(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
+; Total bytes of code 207, prolog size 32, PerfScore 135.08, instruction count 71, allocated bytes for code 207 (MethodHash=6262f0e4) for method System.DefaultBinder:CompareMethodSig(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -139,12 +154,15 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x0C
+  CountOfUnwindCodes: 7
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
-    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)
+    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+    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)
Details

Size improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.x64.checked.mch 792 358 120 314 -13,259 +4,300
benchmarks.run_pgo.windows.x64.checked.mch 2,637 2,186 359 92 -33,958 +5,308
benchmarks.run_tiered.windows.x64.checked.mch 176 89 28 59 -2,583 +784
coreclr_tests.run.windows.x64.checked.mch 8,661 5,951 1,326 1,384 -110,586 +35,619
libraries.crossgen2.windows.x64.checked.mch 3,474 2,210 415 849 -67,229 +9,423
libraries.pmi.windows.x64.checked.mch 5,350 2,739 820 1,791 -69,874 +19,048
libraries_tests.run.windows.x64.Release.mch 8,152 5,847 1,424 881 -179,746 +53,706
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 6,856 3,922 782 2,152 -127,598 +26,224
realworld.run.windows.x64.checked.mch 1,221 761 196 264 -25,098 +6,128
smoke_tests.nativeaot.windows.x64.checked.mch 195 90 52 53 -1,433 +879
37,514 24,153 5,522 7,839 -631,364 +161,419

PerfScore improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same PerfScore Improvements (PerfScore) Regressions (PerfScore) PerfScore Overall in FullOpts
benchmarks.run.windows.x64.checked.mch 792 374 97 321 -5.06% +1.62% -0.0499%
benchmarks.run_pgo.windows.x64.checked.mch 2,637 1,173 359 1,105 -1.71% +0.90% -0.0307%
benchmarks.run_tiered.windows.x64.checked.mch 176 93 21 62 -4.46% +1.81% -0.0208%
coreclr_tests.run.windows.x64.checked.mch 8,661 6,077 2,153 431 -4.03% +4.17% -0.0642%
libraries.crossgen2.windows.x64.checked.mch 3,474 2,233 359 882 -6.60% +2.15% -0.0524%
libraries.pmi.windows.x64.checked.mch 5,350 2,850 709 1,791 -4.73% +2.21% -0.0388%
libraries_tests.run.windows.x64.Release.mch 8,152 5,312 1,291 1,549 -2.83% +3.31% -0.0478%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 6,856 4,051 622 2,183 -3.85% +2.42% -0.0455%
realworld.run.windows.x64.checked.mch 1,221 824 128 269 -3.68% +1.62% -0.0945%
smoke_tests.nativeaot.windows.x64.checked.mch 195 104 41 50 -5.58% +3.65% -0.0144%

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x64.checked.mch 35,790 6 35,784 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch 125,646 71,606 54,040 0 (0.00%) 9 (0.01%)
benchmarks.run_tiered.windows.x64.checked.mch 55,409 37,976 17,433 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.x64.checked.mch 598,571 357,227 241,344 0 (0.00%) 0 (0.00%)
libraries.crossgen2.windows.x64.checked.mch 276,227 15 276,212 655 (0.24%) 646 (0.23%)
libraries.pmi.windows.x64.checked.mch 316,003 6 315,997 3 (0.00%) 16 (0.01%)
libraries_tests.run.windows.x64.Release.mch 739,772 512,110 227,662 2 (0.00%) 27 (0.00%)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 338,429 21,992 316,437 1 (0.00%) 10 (0.00%)
realworld.run.windows.x64.checked.mch 30,489 4 30,485 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch 31,159 10 31,149 47 (0.15%) 47 (0.15%)
2,547,495 1,000,952 1,546,543 708 (0.03%) 755 (0.03%)

jit-analyze output

benchmarks.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: 11237019 (overridden on cmd)
Total bytes of diff: 11228060 (overridden on cmd)
Total bytes of delta: -8959 (-0.08 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         387 : 10324.dasm (15.06% of base)
         296 : 11439.dasm (6.61% of base)
         176 : 7913.dasm (25.84% of base)
         160 : 18955.dasm (23.92% of base)
         150 : 2517.dasm (7.89% of base)
         150 : 22892.dasm (7.89% of base)
         130 : 2511.dasm (7.78% of base)
         130 : 22885.dasm (7.78% of base)
         105 : 2320.dasm (7.43% of base)
         105 : 22184.dasm (7.27% of base)
         101 : 30758.dasm (4.95% of base)
          97 : 5489.dasm (2.68% of base)
          97 : 21270.dasm (2.68% of base)
          92 : 27124.dasm (4.70% of base)
          81 : 22645.dasm (12.13% of base)
          78 : 2473.dasm (1.69% of base)
          76 : 5205.dasm (11.33% of base)
          71 : 28405.dasm (5.55% of base)
          69 : 22849.dasm (1.50% of base)
          68 : 26979.dasm (5.79% of base)

Top file improvements (bytes):
       -1277 : 23457.dasm (-23.80% of base)
        -968 : 20134.dasm (-15.63% of base)
        -943 : 13407.dasm (-16.57% of base)
        -925 : 14819.dasm (-12.51% of base)
        -512 : 13624.dasm (-13.51% of base)
        -262 : 7153.dasm (-24.19% of base)
        -197 : 16240.dasm (-19.39% of base)
        -197 : 312.dasm (-19.39% of base)
        -189 : 14133.dasm (-6.65% of base)
        -170 : 16372.dasm (-17.19% of base)
        -170 : 444.dasm (-17.19% of base)
        -155 : 16018.dasm (-17.22% of base)
        -155 : 90.dasm (-17.22% of base)
        -131 : 13284.dasm (-7.57% of base)
        -120 : 7691.dasm (-14.48% of base)
        -119 : 26411.dasm (-3.85% of base)
        -116 : 12833.dasm (-4.49% of base)
        -115 : 26037.dasm (-8.94% of base)
        -112 : 25846.dasm (-4.44% of base)
        -101 : 25821.dasm (-1.34% of base)

62 total files with Code Size differences (36 improved, 26 regressed), 20 unchanged.

Top method regressions (bytes):
         387 (15.06% of base) : 10324.dasm - System.RuntimeType:GetMember(System.String,int,int):System.Reflection.MemberInfo[]:this (FullOpts)
         296 ( 6.61% of base) : 11439.dasm - Utf8Json.Formatters.ISO8601DateTimeFormatter:Deserialize(byref,Utf8Json.IJsonFormatterResolver):System.DateTime:this (FullOpts)
         176 (25.84% of base) : 7913.dasm - System.RuntimeType:GetMembers(int):System.Reflection.MemberInfo[]:this (FullOpts)
         160 (23.92% of base) : 18955.dasm - System.RuntimeType:GetMembers(int):System.Reflection.MemberInfo[]:this (FullOpts)
         150 ( 7.89% of base) : 2517.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|157_5(byref):this (FullOpts)
         150 ( 7.89% of base) : 22892.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|157_5(byref):this (FullOpts)
         130 ( 7.78% of base) : 2511.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|24(System.Text.RegularExpressions.RegexNode,ubyte):this (FullOpts)
         130 ( 7.78% of base) : 22885.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|24(System.Text.RegularExpressions.RegexNode,ubyte):this (FullOpts)
         105 ( 7.43% of base) : 2320.dasm - System.RuntimeType:CreateInstanceImpl(int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
         105 ( 7.27% of base) : 22184.dasm - System.RuntimeType:CreateInstanceImpl(int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
         101 ( 4.95% of base) : 30758.dasm - System.Threading.Tests.Perf_CancellationToken:CreateManyRegisterMultipleDispose():this (FullOpts)
          97 ( 2.68% of base) : 5489.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
          97 ( 2.68% of base) : 21270.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
          92 ( 4.70% of base) : 27124.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:AddSynthesizedReturnTypeAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (FullOpts)
          81 (12.13% of base) : 22645.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          78 ( 1.69% of base) : 2473.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts)
          76 (11.33% of base) : 5205.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          71 ( 5.55% of base) : 28405.dasm - Microsoft.CodeAnalysis.CSharp.Binder:LookupSymbolInAliases(System.Collections.Immutable.ImmutableDictionary`2[System.String,Microsoft.CodeAnalysis.CSharp.AliasAndUsingDirective],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.AliasAndExternAliasDirective],Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],int,ubyte,byref):this (FullOpts)
          69 ( 1.50% of base) : 22849.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (FullOpts)
          68 ( 5.79% of base) : 26979.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)

Top method improvements (bytes):
       -1277 (-23.80% of base) : 23457.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[ushort]:FirstSpan(System.Buffers.ReadOnlySequence`1[ushort]):int:this (FullOpts)
        -968 (-15.63% of base) : 20134.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[ushort]:First(System.Buffers.ReadOnlySequence`1[ushort]):int:this (FullOpts)
        -943 (-16.57% of base) : 13407.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[ubyte]:First(System.Buffers.ReadOnlySequence`1[ubyte]):int:this (FullOpts)
        -925 (-12.51% of base) : 14819.dasm - System.Text.Json.Document.Tests.Perf_DocumentParse:ReadJson400KB(System.Text.Json.JsonElement) (FullOpts)
        -512 (-13.51% of base) : 13624.dasm - System.Text.Json.Document.Tests.Perf_DocumentParse:ReadJson400B(System.Text.Json.JsonElement) (FullOpts)
        -262 (-24.19% of base) : 7153.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[ushort]:IterateForEach(System.Buffers.ReadOnlySequence`1[ushort]):int:this (FullOpts)
        -197 (-19.39% of base) : 16240.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts)
        -197 (-19.39% of base) : 312.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts)
        -189 (-6.65% of base) : 14133.dasm - System.Text.Tests.Perf_StringBuilder:Append_Memory():System.Text.StringBuilder:this (FullOpts)
        -170 (-17.19% of base) : 16372.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
        -170 (-17.19% of base) : 444.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
        -155 (-17.22% of base) : 16018.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -155 (-17.22% of base) : 90.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -131 (-7.57% of base) : 13284.dasm - System.Text.Json.Document.Tests.Perf_DocumentParse:ReadJsonBasic(System.Text.Json.JsonElement) (FullOpts)
        -120 (-14.48% of base) : 7691.dasm - System.Net.Security.SslStream:WriteSingleChunk[System.Net.Security.AsyncReadWriteAdapter](System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
        -119 (-3.85% of base) : 26411.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValue(Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
        -116 (-4.49% of base) : 12833.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:CollectionsOfPrimitivesSerializeHandler(System.Text.Json.Utf8JsonWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives):this (FullOpts)
        -115 (-8.94% of base) : 26037.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrAlias(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (FullOpts)
        -112 (-4.44% of base) : 25846.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeAcyclicInterfaces(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
        -101 (-1.34% of base) : 25821.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)

Top method regressions (percentages):
         176 (25.84% of base) : 7913.dasm - System.RuntimeType:GetMembers(int):System.Reflection.MemberInfo[]:this (FullOpts)
         160 (23.92% of base) : 18955.dasm - System.RuntimeType:GetMembers(int):System.Reflection.MemberInfo[]:this (FullOpts)
         387 (15.06% of base) : 10324.dasm - System.RuntimeType:GetMember(System.String,int,int):System.Reflection.MemberInfo[]:this (FullOpts)
          81 (12.13% of base) : 22645.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          76 (11.33% of base) : 5205.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         150 ( 7.89% of base) : 2517.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|157_5(byref):this (FullOpts)
         150 ( 7.89% of base) : 22892.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|157_5(byref):this (FullOpts)
         130 ( 7.78% of base) : 2511.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|24(System.Text.RegularExpressions.RegexNode,ubyte):this (FullOpts)
         130 ( 7.78% of base) : 22885.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|24(System.Text.RegularExpressions.RegexNode,ubyte):this (FullOpts)
         105 ( 7.43% of base) : 2320.dasm - System.RuntimeType:CreateInstanceImpl(int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
         105 ( 7.27% of base) : 22184.dasm - System.RuntimeType:CreateInstanceImpl(int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
          35 ( 6.84% of base) : 24520.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[int]:ReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
         296 ( 6.61% of base) : 11439.dasm - Utf8Json.Formatters.ISO8601DateTimeFormatter:Deserialize(byref,Utf8Json.IJsonFormatterResolver):System.DateTime:this (FullOpts)
          68 ( 5.79% of base) : 26979.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          71 ( 5.55% of base) : 28405.dasm - Microsoft.CodeAnalysis.CSharp.Binder:LookupSymbolInAliases(System.Collections.Immutable.ImmutableDictionary`2[System.String,Microsoft.CodeAnalysis.CSharp.AliasAndUsingDirective],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.AliasAndExternAliasDirective],Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],int,ubyte,byref):this (FullOpts)
          12 ( 4.96% of base) : 2451.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitUncaptureUntilPopped|31():this (FullOpts)
          12 ( 4.96% of base) : 22831.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitUncaptureUntilPopped|31():this (FullOpts)
         101 ( 4.95% of base) : 30758.dasm - System.Threading.Tests.Perf_CancellationToken:CreateManyRegisterMultipleDispose():this (FullOpts)
          92 ( 4.70% of base) : 27124.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:AddSynthesizedReturnTypeAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (FullOpts)
          44 ( 4.57% of base) : 28392.dasm - Microsoft.CodeAnalysis.CSharp.Binder:LookupMembersInNamespace(Microsoft.CodeAnalysis.CSharp.LookupResult,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.String,int,int,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,byref) (FullOpts)

Top method improvements (percentages):
         -45 (-36.89% of base) : 32037.dasm - System.Collections.IterateForEach`1[int]:FrozenSet():int:this (FullOpts)
         -41 (-29.71% of base) : 31689.dasm - System.Collections.IterateForEach`1[int]:FrozenDictionary():int:this (FullOpts)
        -262 (-24.19% of base) : 7153.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[ushort]:IterateForEach(System.Buffers.ReadOnlySequence`1[ushort]):int:this (FullOpts)
       -1277 (-23.80% of base) : 23457.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[ushort]:FirstSpan(System.Buffers.ReadOnlySequence`1[ushort]):int:this (FullOpts)
        -197 (-19.39% of base) : 16240.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts)
        -197 (-19.39% of base) : 312.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts)
        -155 (-17.22% of base) : 16018.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -155 (-17.22% of base) : 90.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -170 (-17.19% of base) : 16372.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
        -170 (-17.19% of base) : 444.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
        -943 (-16.57% of base) : 13407.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[ubyte]:First(System.Buffers.ReadOnlySequence`1[ubyte]):int:this (FullOpts)
        -968 (-15.63% of base) : 20134.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[ushort]:First(System.Buffers.ReadOnlySequence`1[ushort]):int:this (FullOpts)
        -120 (-14.48% of base) : 7691.dasm - System.Net.Security.SslStream:WriteSingleChunk[System.Net.Security.AsyncReadWriteAdapter](System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
         -16 (-14.41% of base) : 34483.dasm - HardwareIntrinsics.RayTracer.Packet256Tracer:TestRay(HardwareIntrinsics.RayTracer.RayPacket256,HardwareIntrinsics.RayTracer.Scene):System.Runtime.Intrinsics.Vector256`1[float]:this (FullOpts)
        -512 (-13.51% of base) : 13624.dasm - System.Text.Json.Document.Tests.Perf_DocumentParse:ReadJson400B(System.Text.Json.JsonElement) (FullOpts)
         -12 (-13.19% of base) : 5331.dasm - System.Tests.Perf_Int128:.ctor():this (FullOpts)
         -12 (-12.63% of base) : 9852.dasm - Microsoft.Extensions.Caching.Memory.MemoryCache:get_UtcNow():System.DateTime:this (FullOpts)
        -925 (-12.51% of base) : 14819.dasm - System.Text.Json.Document.Tests.Perf_DocumentParse:ReadJson400KB(System.Text.Json.JsonElement) (FullOpts)
         -54 (-11.97% of base) : 8281.dasm - System.Buffers.Tests.ReadOnlySequenceTests`1[ushort]:IterateGetPosition(System.Buffers.ReadOnlySequence`1[ushort]):int:this (FullOpts)
         -23 (-11.86% of base) : 25894.dasm - Microsoft.CodeAnalysis.SyntaxNode:FindTokenInternal(int):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)


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: 41427466 (overridden on cmd)
Total bytes of diff: 41398816 (overridden on cmd)
Total bytes of delta: -28650 (-0.07 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         174 : 90212.dasm (3.88% of base)
         111 : 6801.dasm (2.35% of base)
         110 : 90213.dasm (4.67% of base)
          95 : 39186.dasm (2.02% of base)
          94 : 114874.dasm (6.93% of base)
          87 : 124234.dasm (6.39% of base)
          83 : 30389.dasm (1.35% of base)
          83 : 121295.dasm (1.35% of base)
          83 : 57216.dasm (1.36% of base)
          79 : 122967.dasm (5.78% of base)
          79 : 122657.dasm (6.23% of base)
          75 : 118864.dasm (5.47% of base)
          55 : 64471.dasm (0.90% of base)
          53 : 102093.dasm (0.86% of base)
          53 : 114248.dasm (0.86% of base)
          53 : 73972.dasm (0.86% of base)
          53 : 30117.dasm (0.86% of base)
          50 : 6805.dasm (0.62% of base)
          50 : 39206.dasm (0.62% of base)
          49 : 90208.dasm (0.86% of base)

Top file improvements (bytes):
        -179 : 90738.dasm (-5.05% of base)
         -94 : 76031.dasm (-6.43% of base)
         -94 : 7989.dasm (-6.43% of base)
         -94 : 22426.dasm (-6.43% of base)
         -94 : 107727.dasm (-6.43% of base)
         -74 : 106686.dasm (-6.46% of base)
         -69 : 61459.dasm (-4.64% of base)
         -63 : 123376.dasm (-20.19% of base)
         -63 : 111198.dasm (-20.19% of base)
         -62 : 70096.dasm (-4.07% of base)
         -57 : 95794.dasm (-3.93% of base)
         -54 : 19837.dasm (-14.32% of base)
         -50 : 104841.dasm (-4.41% of base)
         -50 : 107179.dasm (-4.41% of base)
         -50 : 109094.dasm (-4.41% of base)
         -50 : 101513.dasm (-4.41% of base)
         -50 : 115207.dasm (-4.41% of base)
         -50 : 74439.dasm (-4.41% of base)
         -50 : 61985.dasm (-4.41% of base)
         -50 : 57323.dasm (-4.41% of base)

76 total files with Code Size differences (43 improved, 33 regressed), 20 unchanged.

Top method regressions (bytes):
         174 ( 3.88% of base) : 90212.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (Tier1)
         111 ( 2.35% of base) : 6801.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
         110 ( 4.67% of base) : 90213.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location,int,int,System.Nullable`1[int]):ubyte:this (Tier1)
          95 ( 2.02% of base) : 39186.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
          94 ( 6.93% of base) : 114874.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          87 ( 6.39% of base) : 124234.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          83 ( 1.35% of base) : 30389.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
          83 ( 1.35% of base) : 121295.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
          83 ( 1.36% of base) : 57216.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
          79 ( 5.78% of base) : 122967.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          79 ( 6.23% of base) : 122657.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          75 ( 5.47% of base) : 118864.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          55 ( 0.90% of base) : 64471.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
          53 ( 0.86% of base) : 102093.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
          53 ( 0.86% of base) : 114248.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
          53 ( 0.86% of base) : 73972.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
          53 ( 0.86% of base) : 30117.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1)
          50 ( 0.62% of base) : 6805.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
          50 ( 0.62% of base) : 39206.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
          49 ( 0.86% of base) : 90208.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)

Top method improvements (bytes):
        -179 (-5.05% of base) : 90738.dasm - Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderFactoryVisitor:VisitTypeDeclarationCore(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Binder:this (Tier1)
         -94 (-6.43% of base) : 76031.dasm - System.Number+Grisu3:TryRun[double](double,int,byref):ubyte (Tier1)
         -94 (-6.43% of base) : 7989.dasm - System.Number+Grisu3:TryRun[double](double,int,byref):ubyte (Tier1)
         -94 (-6.43% of base) : 22426.dasm - System.Number+Grisu3:TryRun[double](double,int,byref):ubyte (Tier1)
         -94 (-6.43% of base) : 107727.dasm - System.Number+Grisu3:TryRun[double](double,int,byref):ubyte (Tier1)
         -74 (-6.46% of base) : 106686.dasm - System.IO.RandomAccess:ReadFileScatterAsync(Microsoft.Win32.SafeHandles.SafeFileHandle,long,int,long,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int] (Tier1)
         -69 (-4.64% of base) : 61459.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsync>d__5:MoveNext():this (Tier1-OSR)
         -63 (-20.19% of base) : 123376.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -63 (-20.19% of base) : 111198.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -62 (-4.07% of base) : 70096.dasm - System.IO.Pipelines.Tests.Perf_Pipe+<SyncReadAsyncWithCancellationToken>d__9:MoveNext():this (Tier1-OSR)
         -57 (-3.93% of base) : 95794.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:RegionAnalysisContext(Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax):Microsoft.CodeAnalysis.CSharp.RegionAnalysisContext:this (Tier1)
         -54 (-14.32% of base) : 19837.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteConditionalExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (Tier0)
         -50 (-4.41% of base) : 104841.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
         -50 (-4.41% of base) : 107179.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
         -50 (-4.41% of base) : 109094.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
         -50 (-4.41% of base) : 101513.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
         -50 (-4.41% of base) : 115207.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
         -50 (-4.41% of base) : 74439.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
         -50 (-4.41% of base) : 61985.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
         -50 (-4.41% of base) : 57323.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)

Top method regressions (percentages):
          15 (12.82% of base) : 91176.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:Microsoft.Cci.IParameterTypeInformation.get_CustomModifiers():System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]:this (Tier1)
          39 (10.29% of base) : 22430.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[double](double,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (Tier1)
          39 (10.29% of base) : 8016.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[double](double,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (Tier1)
          39 (10.29% of base) : 76035.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[double](double,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (Tier1)
          39 (10.29% of base) : 107735.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[double](double,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (Tier1)
          13 ( 9.85% of base) : 90113.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this (Tier1)
          13 ( 9.85% of base) : 90435.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this (Tier1)
          15 ( 8.67% of base) : 90154.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:Microsoft.Cci.ISignature.get_ReturnValueCustomModifiers():System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]:this (Tier1)
          17 ( 8.10% of base) : 89289.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_ReturnsVoid():ubyte:this (Tier1)
          94 ( 6.93% of base) : 114874.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          13 ( 6.91% of base) : 89224.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:get_ReturnType():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this (Tier1)
          87 ( 6.39% of base) : 124234.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          79 ( 6.23% of base) : 122657.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          79 ( 5.78% of base) : 122967.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
          75 ( 5.47% of base) : 118864.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
         110 ( 4.67% of base) : 90213.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location,int,int,System.Nullable`1[int]):ubyte:this (Tier1)
          13 ( 4.25% of base) : 90440.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:Microsoft.Cci.IParameterTypeInformation.GetType(Microsoft.CodeAnalysis.Emit.EmitContext):Microsoft.Cci.ITypeReference:this (Tier1)
         174 ( 3.88% of base) : 90212.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (Tier1)
          28 ( 3.64% of base) : 98626.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Tier1)
          25 ( 3.18% of base) : 123405.dasm - System.RuntimeType:GetPropertyCandidates(System.String,int,System.Type[],ubyte):System.RuntimeType+ListBuilder`1[System.Reflection.PropertyInfo]:this (Tier1)

Top method improvements (percentages):
         -27 (-20.77% of base) : 95691.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
         -63 (-20.19% of base) : 123376.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -63 (-20.19% of base) : 111198.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -54 (-14.32% of base) : 19837.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteConditionalExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (Tier0)
         -49 (-13.10% of base) : 48764.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteConditionalExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (Tier0)
         -18 (-12.16% of base) : 95803.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundRoot():Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         -21 (-9.68% of base) : 96700.dasm - Microsoft.CodeAnalysis.PEModule:GetMemoryReaderOrThrow(System.Reflection.Metadata.BlobHandle):System.Reflection.Metadata.BlobReader:this (Tier1)
         -30 (-9.26% of base) : 95731.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitMethodBodies(Microsoft.CodeAnalysis.CSharp.BoundBlock,Microsoft.CodeAnalysis.CSharp.BoundBlock):this (Tier1)
         -12 (-7.95% of base) : 95482.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetUpperBoundNode(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         -16 (-7.66% of base) : 95709.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this (Tier1)
         -19 (-7.31% of base) : 96699.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:DecodeSignatureHeaderOrThrow(Microsoft.CodeAnalysis.PEModule,System.Reflection.Metadata.BlobHandle,byref):System.Reflection.Metadata.BlobReader (Tier1)
         -16 (-7.08% of base) : 95798.dasm - Microsoft.CodeAnalysis.SyntaxNode:FirstAncestorOrSelf[System.__Canon](System.Func`2[System.__Canon,ubyte],ubyte):System.__Canon:this (Tier1)
         -37 (-6.95% of base) : 122497.dasm - System.Linq.Enumerable:Sum[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Decimal],System.Decimal,System.Decimal](System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Decimal]],System.Func`2[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Decimal],System.Decimal]):System.Decimal (Tier1)
         -19 (-6.88% of base) : 91230.dasm - Microsoft.Cci.MetadataVisitor:Visit(System.Collections.Generic.IEnumerable`1[Microsoft.Cci.MethodImplementation]):this (Tier1)
         -10 (-6.49% of base) : 96702.dasm - System.Reflection.Metadata.Ecma335.BlobHeap:GetBlobReader(System.Reflection.Metadata.BlobHandle):System.Reflection.Metadata.BlobReader:this (Tier1)
         -74 (-6.46% of base) : 106686.dasm - System.IO.RandomAccess:ReadFileScatterAsync(Microsoft.Win32.SafeHandles.SafeFileHandle,long,int,long,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int] (Tier1)
         -94 (-6.43% of base) : 76031.dasm - System.Number+Grisu3:TryRun[double](double,int,byref):ubyte (Tier1)
         -94 (-6.43% of base) : 7989.dasm - System.Number+Grisu3:TryRun[double](double,int,byref):ubyte (Tier1)
         -94 (-6.43% of base) : 22426.dasm - System.Number+Grisu3:TryRun[double](double,int,byref):ubyte (Tier1)
         -94 (-6.43% of base) : 107727.dasm - System.Number+Grisu3:TryRun[double](double,int,byref):ubyte (Tier1)


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: 12523564 (overridden on cmd)
Total bytes of diff: 12521765 (overridden on cmd)
Total bytes of delta: -1799 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         194 : 47447.dasm (11.04% of base)
         130 : 50333.dasm (7.78% of base)
          78 : 16974.dasm (1.69% of base)
          76 : 24222.dasm (11.33% of base)
          53 : 11223.dasm (0.66% of base)
          29 : 19534.dasm (2.66% of base)
          29 : 43111.dasm (2.96% of base)
          23 : 53971.dasm (0.75% of base)
          21 : 40523.dasm (3.11% of base)
          18 : 23733.dasm (3.89% of base)
          17 : 20168.dasm (1.28% of base)
          12 : 48825.dasm (1.92% of base)
          12 : 40500.dasm (1.64% of base)
          10 : 48806.dasm (0.47% of base)
           9 : 53140.dasm (0.98% of base)
           9 : 41110.dasm (0.70% of base)
           9 : 43857.dasm (1.51% of base)
           8 : 40563.dasm (1.15% of base)
           7 : 32922.dasm (0.71% of base)
           7 : 27740.dasm (0.72% of base)

Top file improvements (bytes):
        -197 : 20128.dasm (-19.39% of base)
        -155 : 3648.dasm (-17.30% of base)
        -154 : 19684.dasm (-6.74% of base)
        -133 : 53982.dasm (-15.54% of base)
        -128 : 41210.dasm (-4.17% of base)
        -115 : 43003.dasm (-8.94% of base)
        -101 : 6009.dasm (-10.98% of base)
         -97 : 43054.dasm (-23.89% of base)
         -66 : 43866.dasm (-2.78% of base)
         -61 : 19681.dasm (-6.72% of base)
         -60 : 41646.dasm (-8.13% of base)
         -60 : 43004.dasm (-1.17% of base)
         -58 : 43813.dasm (-6.13% of base)
         -54 : 12064.dasm (-14.32% of base)
         -45 : 40730.dasm (-2.78% of base)
         -40 : 54567.dasm (-8.15% of base)
         -39 : 48828.dasm (-2.36% of base)
         -34 : 29922.dasm (-5.86% of base)
         -34 : 40120.dasm (-4.70% of base)
         -33 : 43053.dasm (-2.32% of base)

59 total files with Code Size differences (35 improved, 24 regressed), 20 unchanged.

Top method regressions (bytes):
         194 (11.04% of base) : 47447.dasm - System.Threading.Tests.Perf_CancellationToken:CreateManyRegisterMultipleDispose():this (Tier1-OSR)
         130 ( 7.78% of base) : 50333.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|24(System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
          78 ( 1.69% of base) : 16974.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
          76 (11.33% of base) : 24222.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
          53 ( 0.66% of base) : 11223.dasm - System.Text.RegularExpressions.RegexCompiler:EmitMatchCharacterClass(System.String):this (Tier0-FullOpts)
          29 ( 2.96% of base) : 43111.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundNodes(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)
          29 ( 2.66% of base) : 19534.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (Tier1)
          23 ( 0.75% of base) : 53971.dasm - System.Net.Security.SslStream+<ReadAsyncInternal>d__171`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier1)
          21 ( 3.11% of base) : 40523.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.TupleTypeDecoder:DecodeTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this (Tier1)
          18 ( 3.89% of base) : 23733.dasm - System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte (Tier1)
          17 ( 1.28% of base) : 20168.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
          12 ( 1.64% of base) : 40500.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_Arity():int:this (Tier1)
          12 ( 1.92% of base) : 48825.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitIndexOfString_LeftToRight|157_1(byref):this (Tier1)
          10 ( 0.47% of base) : 48806.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitAnchors|157_0(byref):ubyte:this (Tier1)
           9 ( 1.51% of base) : 43857.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:ReportErrorIfHasConstraints(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax],Microsoft.CodeAnalysis.DiagnosticBag) (Tier1)
           9 ( 0.98% of base) : 53140.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (Tier1)
           9 ( 0.70% of base) : 41110.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_ObjSpanArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_ObjSpanArgs (Tier1)
           8 ( 1.15% of base) : 40563.dasm - Microsoft.CodeAnalysis.PEModule:TryExtractValueFromAttribute[ubyte](System.Reflection.Metadata.CustomAttributeHandle,byref,Microsoft.CodeAnalysis.PEModule+AttributeValueExtractor`1[ubyte]):ubyte:this (Tier1)
           7 ( 0.72% of base) : 27740.dasm - System.Threading.AsyncOverSyncWithIoCancellation+<InvokeAsync>d__7`1[System.ValueTuple`4[System.__Canon,System.ReadOnlyMemory`1[ubyte],long,System.__Canon]]:MoveNext():this (Tier1)
           7 ( 0.71% of base) : 32922.dasm - System.Threading.AsyncOverSyncWithIoCancellation+<InvokeAsync>d__8`2[System.ValueTuple`4[System.__Canon,System.Memory`1[ubyte],long,System.__Canon],int]:MoveNext():this (Tier1)

Top method improvements (bytes):
        -197 (-19.39% of base) : 20128.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (Tier1)
        -155 (-17.30% of base) : 3648.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
        -154 (-6.74% of base) : 19684.dasm - System.Collections.Frozen.FrozenDictionary:CreateFromDictionary[System.__Canon,System.__Canon](System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]):System.Collections.Frozen.FrozenDictionary`2[System.__Canon,System.__Canon] (Tier1-OSR)
        -133 (-15.54% of base) : 53982.dasm - System.Net.Security.SslStream:WriteSingleChunk[System.Net.Security.AsyncReadWriteAdapter](System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
        -128 (-4.17% of base) : 41210.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValue(Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
        -115 (-8.94% of base) : 43003.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrAlias(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
        -101 (-10.98% of base) : 6009.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         -97 (-23.89% of base) : 43054.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrVarKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
         -66 (-2.78% of base) : 43866.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ToDeclarationModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):uint (Tier1)
         -61 (-6.72% of base) : 19681.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
         -60 (-8.13% of base) : 41646.dasm - Benchmarks.SIMD.RayTracer.RayTracer:Shade(Benchmarks.SIMD.RayTracer.ISect,Benchmarks.SIMD.RayTracer.Scene,int):Benchmarks.SIMD.RayTracer.Color:this (Tier1)
         -60 (-1.17% of base) : 43004.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
         -58 (-6.13% of base) : 43813.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1)
         -54 (-14.32% of base) : 12064.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteConditionalExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (Tier0)
         -45 (-2.78% of base) : 40730.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:.ctor(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.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder):this (Tier1)
         -40 (-8.15% of base) : 54567.dasm - System.Linq.Enumerable:Sum[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Decimal],System.Decimal,System.Decimal](System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Decimal]],System.Func`2[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Decimal],System.Decimal]):System.Decimal (Tier1)
         -39 (-2.36% of base) : 48828.dasm - System.Buffers.StringSearchValues:Create(System.ReadOnlySpan`1[System.String],ubyte):System.Buffers.SearchValues`1[System.String] (Tier1)
         -34 (-5.86% of base) : 29922.dasm - System.Net.Sockets.Socket:ConnectAsync(System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
         -34 (-4.70% of base) : 40120.dasm - System.Reflection.PortableExecutable.PEBuilder:SerializeSections():System.Collections.Immutable.ImmutableArray`1[System.Reflection.PortableExecutable.PEBuilder+SerializedSection]:this (Tier0)
         -33 (-2.32% of base) : 43053.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableTypeWithAnnotations(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,byref,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)

Top method regressions (percentages):
          76 (11.33% of base) : 24222.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Tier1)
         194 (11.04% of base) : 47447.dasm - System.Threading.Tests.Perf_CancellationToken:CreateManyRegisterMultipleDispose():this (Tier1-OSR)
         130 ( 7.78% of base) : 50333.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|24(System.Text.RegularExpressions.RegexNode,ubyte):this (Tier1)
          18 ( 3.89% of base) : 23733.dasm - System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte (Tier1)
          21 ( 3.11% of base) : 40523.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.TupleTypeDecoder:DecodeTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this (Tier1)
          29 ( 2.96% of base) : 43111.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundNodes(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.CSharp.BoundNode]:this (Tier1)
          29 ( 2.66% of base) : 19534.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (Tier1)
           6 ( 2.33% of base) : 41638.dasm - Benchmarks.SIMD.RayTracer.RayTracer:GetReflectionColor(Benchmarks.SIMD.RayTracer.SceneObject,Benchmarks.SIMD.RayTracer.Vector,Benchmarks.SIMD.RayTracer.Vector,Benchmarks.SIMD.RayTracer.Vector,Benchmarks.SIMD.RayTracer.Scene,int):Benchmarks.SIMD.RayTracer.Color:this (Tier1)
          12 ( 1.92% of base) : 48825.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitIndexOfString_LeftToRight|157_1(byref):this (Tier1)
          78 ( 1.69% of base) : 16974.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitFixedSet_LeftToRight|157_3(byref):this (Tier0-FullOpts)
          12 ( 1.64% of base) : 40500.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_Arity():int:this (Tier1)
           9 ( 1.51% of base) : 43857.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:ReportErrorIfHasConstraints(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax],Microsoft.CodeAnalysis.DiagnosticBag) (Tier1)
          17 ( 1.28% of base) : 20168.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
           8 ( 1.15% of base) : 40563.dasm - Microsoft.CodeAnalysis.PEModule:TryExtractValueFromAttribute[ubyte](System.Reflection.Metadata.CustomAttributeHandle,byref,Microsoft.CodeAnalysis.PEModule+AttributeValueExtractor`1[ubyte]):ubyte:this (Tier1)
           9 ( 0.98% of base) : 53140.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (Tier1)
           2 ( 0.92% of base) : 40374.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:DecodeSignatureHeaderOrThrow(System.Reflection.Metadata.BlobHandle,byref):System.Reflection.Metadata.BlobReader:this (Tier1)
           1 ( 0.87% of base) : 6010.dasm - System.Reflection.RuntimePropertyInfo:GetIndexParameters():System.Reflection.ParameterInfo[]:this (Tier1)
           5 ( 0.82% of base) : 40434.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:GetSignatureForProperty(System.Reflection.Metadata.PropertyDefinitionHandle,byref,byref):Microsoft.CodeAnalysis.ParamInfo`1[System.__Canon][]:this (Tier1)
          23 ( 0.75% of base) : 53971.dasm - System.Net.Security.SslStream+<ReadAsyncInternal>d__171`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier1)
           7 ( 0.72% of base) : 27740.dasm - System.Threading.AsyncOverSyncWithIoCancellation+<InvokeAsync>d__7`1[System.ValueTuple`4[System.__Canon,System.ReadOnlyMemory`1[ubyte],long,System.__Canon]]:MoveNext():this (Tier1)

Top method improvements (percentages):
         -97 (-23.89% of base) : 43054.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrVarKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
        -197 (-19.39% of base) : 20128.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (Tier1)
        -155 (-17.30% of base) : 3648.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (Tier1)
        -133 (-15.54% of base) : 53982.dasm - System.Net.Security.SslStream:WriteSingleChunk[System.Net.Security.AsyncReadWriteAdapter](System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier1)
         -54 (-14.32% of base) : 12064.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteConditionalExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (Tier0)
         -23 (-11.86% of base) : 44013.dasm - Microsoft.CodeAnalysis.SyntaxNode:FindTokenInternal(int):Microsoft.CodeAnalysis.SyntaxToken:this (Tier1)
        -101 (-10.98% of base) : 6009.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (Tier1)
         -12 (-10.26% of base) : 43315.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetBoundRoot():Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         -12 (-10.26% of base) : 43108.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel:GetUpperBoundNode(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         -28 (-9.72% of base) : 3694.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
        -115 (-8.94% of base) : 43003.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrAlias(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
         -12 (-8.22% of base) : 43048.dasm - Microsoft.CodeAnalysis.CSharp.MemberSemanticModel+IncrementalBinder:TryGetBoundNodeFromMap(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         -40 (-8.15% of base) : 54567.dasm - System.Linq.Enumerable:Sum[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Decimal],System.Decimal,System.Decimal](System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Decimal]],System.Func`2[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Decimal],System.Decimal]):System.Decimal (Tier1)
         -60 (-8.13% of base) : 41646.dasm - Benchmarks.SIMD.RayTracer.RayTracer:Shade(Benchmarks.SIMD.RayTracer.ISect,Benchmarks.SIMD.RayTracer.Scene,int):Benchmarks.SIMD.RayTracer.Color:this (Tier1)
         -28 (-7.65% of base) : 3804.dasm - System.ModuleHandle:ResolveMethodHandle(int,System.RuntimeTypeHandle[],System.RuntimeTypeHandle[]):System.RuntimeMethodHandle:this (Tier1)
        -154 (-6.74% of base) : 19684.dasm - System.Collections.Frozen.FrozenDictionary:CreateFromDictionary[System.__Canon,System.__Canon](System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]):System.Collections.Frozen.FrozenDictionary`2[System.__Canon,System.__Canon] (Tier1-OSR)
         -61 (-6.72% of base) : 19681.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1-OSR)
         -32 (-6.45% of base) : 869.dasm - System.RuntimeType:FilterApplyMethodBase(System.Reflection.MethodBase,int,int,int,System.Type[]):ubyte (Tier1)
         -58 (-6.13% of base) : 43813.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableDictionary`2+MutationInput[System.__Canon,System.__Canon],int):System.Collections.Immutable.ImmutableDictionary`2+MutationResult[System.__Canon,System.__Canon] (Tier1)
         -17 (-6.07% of base) : 18489.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteMemberExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (Tier0)


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: 392958880 (overridden on cmd)
Total bytes of diff: 392883913 (overridden on cmd)
Total bytes of delta: -74967 (-0.02 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs


Top file regressions (bytes):
         450 : 533319.dasm (15.47% of base)
         450 : 530971.dasm (15.47% of base)
         450 : 528068.dasm (15.47% of base)
         281 : 424367.dasm (8.31% of base)
         281 : 424325.dasm (8.27% of base)
         281 : 424217.dasm (8.27% of base)
         281 : 424259.dasm (8.27% of base)
         258 : 533245.dasm (5.85% of base)
         258 : 530869.dasm (5.85% of base)
         258 : 527966.dasm (5.85% of base)
         240 : 388122.dasm (16.36% of base)
         240 : 385600.dasm (16.36% of base)
         153 : 528040.dasm (10.44% of base)
         153 : 530943.dasm (10.44% of base)
         153 : 533300.dasm (10.44% of base)
         152 : 408694.dasm (9.90% of base)
         152 : 408735.dasm (9.88% of base)
         152 : 408798.dasm (9.90% of base)
         152 : 408838.dasm (9.91% of base)
         140 : 475374.dasm (40.00% of base)

Top file improvements (bytes):
        -606 : 584456.dasm (-4.43% of base)
        -519 : 488351.dasm (-26.05% of base)
        -383 : 424369.dasm (-22.41% of base)
        -383 : 424327.dasm (-22.40% of base)
        -383 : 424219.dasm (-22.42% of base)
        -383 : 424261.dasm (-22.37% of base)
        -198 : 526424.dasm (-0.39% of base)
        -198 : 529329.dasm (-0.39% of base)
        -198 : 532762.dasm (-0.39% of base)
        -175 : 25475.dasm (-14.27% of base)
        -164 : 527943.dasm (-26.03% of base)
        -164 : 530846.dasm (-26.03% of base)
        -164 : 533231.dasm (-26.03% of base)
        -162 : 533134.dasm (-25.55% of base)
        -162 : 530720.dasm (-25.55% of base)
        -162 : 527817.dasm (-25.55% of base)
        -155 : 537409.dasm (-17.22% of base)
        -155 : 541362.dasm (-17.17% of base)
        -143 : 373790.dasm (-15.59% of base)
        -121 : 595523.dasm (-1.14% of base)

90 total files with Code Size differences (48 improved, 42 regressed), 20 unchanged.

Top method regressions (bytes):
         450 (15.47% of base) : 533319.dasm - Test_10w5d.testout1:Func_0_4_3_1():System.Decimal (FullOpts)
         450 (15.47% of base) : 530971.dasm - Test_10w5d.testout1:Func_0_4_3_1():System.Decimal (FullOpts)
         450 (15.47% of base) : 528068.dasm - Test_10w5d.testout1:Func_0_4_3_1():System.Decimal (FullOpts)
         281 ( 8.27% of base) : 424217.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionByte:RunStructLclFldScenario():this (FullOpts)
         281 ( 8.27% of base) : 424259.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionInt16:RunStructLclFldScenario():this (FullOpts)
         281 ( 8.27% of base) : 424325.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionSByte:RunStructLclFldScenario():this (FullOpts)
         281 ( 8.31% of base) : 424367.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionUInt16:RunStructLclFldScenario():this (FullOpts)
         258 ( 5.85% of base) : 533245.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
         258 ( 5.85% of base) : 530869.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
         258 ( 5.85% of base) : 527966.dasm - Test_10w5d.testout1:Func_0_4_5_3():System.Decimal (FullOpts)
         240 (16.36% of base) : 388122.dasm - System.Linq.Enumerable:SequenceEqual[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Generic.IEqualityComparer`1[ubyte]):ubyte (Tier1)
         240 (16.36% of base) : 385600.dasm - System.Linq.Enumerable:SequenceEqual[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Generic.IEqualityComparer`1[ubyte]):ubyte (Tier1)
         153 (10.44% of base) : 528040.dasm - Test_10w5d.testout1:Func_0_4_3_5():System.Decimal (FullOpts)
         153 (10.44% of base) : 530943.dasm - Test_10w5d.testout1:Func_0_4_3_5():System.Decimal (FullOpts)
         153 (10.44% of base) : 533300.dasm - Test_10w5d.testout1:Func_0_4_3_5():System.Decimal (FullOpts)
         152 ( 9.90% of base) : 408694.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorBinaryOpTest__op_DivisionByte:RunStructLclFldScenario():this (FullOpts)
         152 ( 9.88% of base) : 408735.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorBinaryOpTest__op_DivisionInt16:RunStructLclFldScenario():this (FullOpts)
         152 ( 9.90% of base) : 408798.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorBinaryOpTest__op_DivisionSByte:RunStructLclFldScenario():this (FullOpts)
         152 ( 9.91% of base) : 408838.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorBinaryOpTest__op_DivisionUInt16:RunStructLclFldScenario():this (FullOpts)
         140 (39.89% of base) : 475314.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.AlternatingTernaryOpTest__MultiplyAddSubtractDouble:RunStructFldScenario():this (FullOpts)

Top method improvements (bytes):
        -606 (-4.43% of base) : 584456.dasm - Internal.IL.ILImporter:ImportBasicBlock(Internal.IL.ILImporter+BasicBlock):this (FullOpts)
        -519 (-26.05% of base) : 488351.dasm - System.Drawing.ColorTranslator:FromOle(int):System.Drawing.Color (FullOpts)
        -383 (-22.42% of base) : 424219.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionByte:RunStructFldScenario():this (FullOpts)
        -383 (-22.37% of base) : 424261.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionInt16:RunStructFldScenario():this (FullOpts)
        -383 (-22.40% of base) : 424327.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionSByte:RunStructFldScenario():this (FullOpts)
        -383 (-22.41% of base) : 424369.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionUInt16:RunStructFldScenario():this (FullOpts)
        -198 (-0.39% of base) : 526424.dasm - Test_1000w1d.testout1:Func_0():int (FullOpts)
        -198 (-0.39% of base) : 529329.dasm - Test_1000w1d.testout1:Func_0():int (FullOpts)
        -198 (-0.39% of base) : 532762.dasm - Test_1000w1d.testout1:Func_0():int (FullOpts)
        -175 (-14.27% of base) : 25475.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (Instrumented Tier1)
        -164 (-26.03% of base) : 527943.dasm - Test_10w5d.testout1:Func_0_4_5():System.Decimal (FullOpts)
        -164 (-26.03% of base) : 530846.dasm - Test_10w5d.testout1:Func_0_4_5():System.Decimal (FullOpts)
        -164 (-26.03% of base) : 533231.dasm - Test_10w5d.testout1:Func_0_4_5():System.Decimal (FullOpts)
        -162 (-25.55% of base) : 533134.dasm - Test_10w5d.testout1:Func_0_5_2_6():System.Decimal (FullOpts)
        -162 (-25.55% of base) : 530720.dasm - Test_10w5d.testout1:Func_0_5_2_6():System.Decimal (FullOpts)
        -162 (-25.55% of base) : 527817.dasm - Test_10w5d.testout1:Func_0_5_2_6():System.Decimal (FullOpts)
        -155 (-17.22% of base) : 537409.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -155 (-17.17% of base) : 541362.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -143 (-15.59% of base) : 373790.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -121 (-1.14% of base) : 595523.dasm - Microsoft.Build.Evaluation.Evaluator`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:Evaluate():this (FullOpts)

Top method regressions (percentages):
         127 (40.32% of base) : 464099.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__FixupDouble0:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 464115.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__FixupSingle0:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 465204.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__TernaryLogicByte30:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 465219.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__TernaryLogicDouble30:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 465234.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__TernaryLogicInt1630:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 465249.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__TernaryLogicInt3230:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 465867.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__TernaryLogicInt6430:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 465883.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__TernaryLogicSByte30:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 465899.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__TernaryLogicSingle30:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 465915.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__TernaryLogicUInt1630:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 465931.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__TernaryLogicUInt3230:RunStructFldScenario():this (FullOpts)
         127 (40.32% of base) : 465947.dasm - JIT.HardwareIntrinsics.X86._Avx512F_VL_Vector256.ImmTernaryOpTest__TernaryLogicUInt6430:RunStructFldScenario():this (FullOpts)
         140 (40.00% of base) : 475334.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.AlternatingTernaryOpTest__MultiplyAddSubtractSingle:RunStructFldScenario():this (FullOpts)
         140 (40.00% of base) : 475414.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.AlternatingTernaryOpTest__MultiplySubtractAddSingle:RunStructFldScenario():this (FullOpts)
         140 (40.00% of base) : 475294.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddNegatedSingle:RunStructFldScenario():this (FullOpts)
         140 (40.00% of base) : 475254.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddSingle:RunStructFldScenario():this (FullOpts)
         140 (40.00% of base) : 475454.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractNegatedSingle:RunStructFldScenario():this (FullOpts)
         140 (40.00% of base) : 475374.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractSingle:RunStructFldScenario():this (FullOpts)
         140 (39.89% of base) : 475314.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.AlternatingTernaryOpTest__MultiplyAddSubtractDouble:RunStructFldScenario():this (FullOpts)
         140 (39.89% of base) : 475354.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractDouble:RunStructFldScenario():this (FullOpts)

Top method improvements (percentages):
         -55 (-41.35% of base) : 585345.dasm - MCCTest.MyClass:Main():int (FullOpts)
         -55 (-41.35% of base) : 585354.dasm - MCCTest.MyClass:Main():int (FullOpts)
         -39 (-26.71% of base) : 585393.dasm - MCCTest.MyClass:Main():int (FullOpts)
         -39 (-26.71% of base) : 585376.dasm - MCCTest.MyClass:Main():int (FullOpts)
         -25 (-26.60% of base) : 541719.dasm - N.Repro2:RunTest():int (FullOpts)
        -519 (-26.05% of base) : 488351.dasm - System.Drawing.ColorTranslator:FromOle(int):System.Drawing.Color (FullOpts)
        -164 (-26.03% of base) : 527943.dasm - Test_10w5d.testout1:Func_0_4_5():System.Decimal (FullOpts)
        -164 (-26.03% of base) : 530846.dasm - Test_10w5d.testout1:Func_0_4_5():System.Decimal (FullOpts)
        -164 (-26.03% of base) : 533231.dasm - Test_10w5d.testout1:Func_0_4_5():System.Decimal (FullOpts)
         -25 (-25.77% of base) : 585396.dasm - MCCTest.MyClass:Main():int (FullOpts)
         -25 (-25.77% of base) : 585384.dasm - MCCTest.MyClass:Main():int (FullOpts)
        -162 (-25.55% of base) : 533134.dasm - Test_10w5d.testout1:Func_0_5_2_6():System.Decimal (FullOpts)
        -162 (-25.55% of base) : 530720.dasm - Test_10w5d.testout1:Func_0_5_2_6():System.Decimal (FullOpts)
        -162 (-25.55% of base) : 527817.dasm - Test_10w5d.testout1:Func_0_5_2_6():System.Decimal (FullOpts)
         -42 (-24.71% of base) : 585342.dasm - MCCTest.MyClass:Main():int (FullOpts)
         -42 (-24.71% of base) : 585369.dasm - MCCTest.MyClass:Main():int (FullOpts)
        -383 (-22.42% of base) : 424219.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionByte:RunStructFldScenario():this (FullOpts)
        -383 (-22.41% of base) : 424369.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionUInt16:RunStructFldScenario():this (FullOpts)
        -383 (-22.40% of base) : 424327.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionSByte:RunStructFldScenario():this (FullOpts)
        -383 (-22.37% of base) : 424261.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorBinaryOpTest__op_DivisionInt16:RunStructFldScenario():this (FullOpts)


libraries.crossgen2.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: 44314196 (overridden on cmd)
Total bytes of diff: 44256390 (overridden on cmd)
Total bytes of delta: -57806 (-0.13 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         349 : 125765.dasm (9.93% of base)
         242 : 240882.dasm (21.01% of base)
         206 : 188303.dasm (13.58% of base)
         196 : 159992.dasm (14.38% of base)
         155 : 72646.dasm (3.86% of base)
         136 : 174861.dasm (15.37% of base)
         136 : 217224.dasm (15.37% of base)
         130 : 233208.dasm (7.50% of base)
         115 : 46436.dasm (5.52% of base)
         114 : 233298.dasm (5.60% of base)
         112 : 99497.dasm (5.27% of base)
         105 : 269478.dasm (9.28% of base)
         104 : 46401.dasm (9.50% of base)
         103 : 99458.dasm (9.43% of base)
         101 : 233379.dasm (7.01% of base)
         100 : 16050.dasm (8.90% of base)
         100 : 132860.dasm (6.34% of base)
          99 : 99413.dasm (7.64% of base)
          96 : 169843.dasm (2.14% of base)
          96 : 212322.dasm (1.90% of base)

Top file improvements (bytes):
        -636 : 256541.dasm (-24.85% of base)
        -519 : 256499.dasm (-26.02% of base)
        -510 : 235908.dasm (-9.17% of base)
        -372 : 95306.dasm (-8.55% of base)
        -312 : 241329.dasm (-47.34% of base)
        -241 : 196995.dasm (-11.94% of base)
        -211 : 204723.dasm (-5.47% of base)
        -210 : 117133.dasm (-6.93% of base)
        -209 : 159796.dasm (-6.27% of base)
        -202 : 38135.dasm (-6.31% of base)
        -197 : 93300.dasm (-29.23% of base)
        -197 : 40228.dasm (-29.23% of base)
        -174 : 93502.dasm (-5.10% of base)
        -174 : 38122.dasm (-5.81% of base)
        -174 : 40437.dasm (-5.10% of base)
        -172 : 38057.dasm (-5.29% of base)
        -165 : 97919.dasm (-5.00% of base)
        -164 : 99720.dasm (-6.06% of base)
        -164 : 46636.dasm (-6.05% of base)
        -158 : 132658.dasm (-9.08% of base)

83 total files with Code Size differences (51 improved, 32 regressed), 20 unchanged.

Top method regressions (bytes):
         349 ( 9.93% of base) : 125765.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
         242 (21.01% of base) : 240882.dasm - Internal.Pgo.PgoProcessor:EncodePgoData[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[Internal.Pgo.PgoSchemaElem],Internal.Pgo.IPgoEncodedValueEmitter`2[System.__Canon,System.__Canon],ubyte) (FullOpts)
         206 (13.58% of base) : 188303.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileLiftedLogicalBinaryExpression(System.Linq.Expressions.BinaryExpression,ubyte):this (FullOpts)
         196 (14.38% of base) : 159992.dasm - System.Net.Http.HttpWindowsProxy:GetMultiProxy(System.Uri):System.Net.Http.MultiProxy:this (FullOpts)
         155 ( 3.86% of base) : 72646.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (FullOpts)
         136 (15.37% of base) : 174861.dasm - Microsoft.CodeAnalysis.CodeGen.SequencePointList:GetSequencePoints(Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.SequencePoint]):this (FullOpts)
         136 (15.37% of base) : 217224.dasm - Microsoft.CodeAnalysis.CodeGen.SequencePointList:GetSequencePoints(Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.SequencePoint]):this (FullOpts)
         130 ( 7.50% of base) : 233208.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|157_5(byref):this (FullOpts)
         115 ( 5.52% of base) : 46436.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArgumentOutboundAssignmentsAndPostConditions(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitResult,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.NullableWalker+CompareExchangeInfo):this (FullOpts)
         114 ( 5.60% of base) : 233298.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitBackreference|5(System.Text.RegularExpressions.RegexNode):this (FullOpts)
         112 ( 5.27% of base) : 99497.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArgumentOutboundAssignmentsAndPostConditions(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.NullableWalker+CompareExchangeInfo):this (FullOpts)
         105 ( 9.28% of base) : 269478.dasm - System.Net.Quic.MsQuicTlsSecret:WriteSecret():this (FullOpts)
         104 ( 9.50% of base) : 46401.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitNullCoalescingAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         103 ( 9.43% of base) : 99458.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitNullCoalescingAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         101 ( 7.01% of base) : 233379.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|24(System.Text.RegularExpressions.RegexNode,ubyte):this (FullOpts)
         100 ( 6.34% of base) : 132860.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:CheckStructureCircularity(Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):ubyte:this (FullOpts)
         100 ( 8.90% of base) : 16050.dasm - System.RuntimeType:CreateInstanceImpl(int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
          99 ( 7.64% of base) : 99413.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitLocalDeclaration(Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          96 ( 2.14% of base) : 169843.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (FullOpts)
          96 ( 1.90% of base) : 212322.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (FullOpts)

Top method improvements (bytes):
        -636 (-24.85% of base) : 256541.dasm - System.Drawing.ColorTranslator:InitializeHtmlSysColorTable() (FullOpts)
        -519 (-26.02% of base) : 256499.dasm - System.Drawing.ColorTranslator:FromOle(int):System.Drawing.Color (FullOpts)
        -510 (-9.17% of base) : 235908.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperTwoSpanInSpanOut[System.__Canon](byref,byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationTwoSpanInSpanOut`1[System.__Canon]):byref (FullOpts)
        -372 (-8.55% of base) : 95306.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:AddUserDefinedConversionsToExplicitCandidateSet(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UserDefinedConversionAnalysis],Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,ubyte,ubyte,byref):this (FullOpts)
        -312 (-47.34% of base) : 241329.dasm - System.Formats.Nrbf.NrbfDecoder:DecodeArraySinglePrimitiveRecord(System.IO.BinaryReader):System.Formats.Nrbf.SerializationRecord (FullOpts)
        -241 (-11.94% of base) : 196995.dasm - Newtonsoft.Json.Linq.JValue:Operation(int,System.Object,System.Object,byref):ubyte (FullOpts)
        -211 (-5.47% of base) : 204723.dasm - System.Xml.XmlTextReaderImpl:ParseXmlDeclaration(ubyte):ubyte:this (FullOpts)
        -210 (-6.93% of base) : 117133.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol:AddDelegateMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol],Microsoft.CodeAnalysis.CSharp.Syntax.DelegateDeclarationSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
        -209 (-6.27% of base) : 159796.dasm - System.Net.Http.Http2Connection+<ProcessIncomingFramesAsync>d__61:MoveNext():this (FullOpts)
        -202 (-6.31% of base) : 38135.dasm - System.Data.Common.SqlMoneyStorage:Aggregate(int[],int):System.Object:this (FullOpts)
        -197 (-29.23% of base) : 93300.dasm - Microsoft.CodeAnalysis.Operations.CSharpOperationFactory:CreateBoundBinaryOperatorBase(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperatorBase):Microsoft.CodeAnalysis.IOperation:this (FullOpts)
        -197 (-29.23% of base) : 40228.dasm - Microsoft.CodeAnalysis.Operations.CSharpOperationFactory:CreateBoundBinaryOperatorBase(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperatorBase):Microsoft.CodeAnalysis.IOperation:this (FullOpts)
        -174 (-5.10% of base) : 93502.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckPropertyValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
        -174 (-5.10% of base) : 40437.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckPropertyValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (FullOpts)
        -174 (-5.81% of base) : 38122.dasm - System.Data.Common.SqlInt64Storage:Aggregate(int[],int):System.Object:this (FullOpts)
        -172 (-5.29% of base) : 38057.dasm - System.Data.Common.SqlDecimalStorage:Aggregate(int[],int):System.Object:this (FullOpts)
        -165 (-5.00% of base) : 97919.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel:GetTypeInfoForNode(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.CSharpTypeInfo:this (FullOpts)
        -164 (-6.06% of base) : 99720.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitBinaryOperatorChildren>g__learnFromConditionalAccessOrBoolConstant|186_3(byref):ubyte:this (FullOpts)
        -164 (-6.05% of base) : 46636.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitBinaryOperatorChildren>g__learnFromConditionalAccessOrBoolConstant|187_3(byref):ubyte:this (FullOpts)
        -158 (-9.08% of base) : 132658.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceDelegateMethodSymbol:MakeDelegateMembers(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.ParameterListSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,byref,byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag) (FullOpts)

Top method regressions (percentages):
         242 (21.01% of base) : 240882.dasm - Internal.Pgo.PgoProcessor:EncodePgoData[System.__Canon,System.__Canon](System.Collections.Generic.IEnumerable`1[Internal.Pgo.PgoSchemaElem],Internal.Pgo.IPgoEncodedValueEmitter`2[System.__Canon,System.__Canon],ubyte) (FullOpts)
          49 (15.51% of base) : 261701.dasm - System.Threading.Channels.ChannelWriter`1[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
         136 (15.37% of base) : 174861.dasm - Microsoft.CodeAnalysis.CodeGen.SequencePointList:GetSequencePoints(Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.SequencePoint]):this (FullOpts)
         136 (15.37% of base) : 217224.dasm - Microsoft.CodeAnalysis.CodeGen.SequencePointList:GetSequencePoints(Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.SequencePoint]):this (FullOpts)
         196 (14.38% of base) : 159992.dasm - System.Net.Http.HttpWindowsProxy:GetMultiProxy(System.Uri):System.Net.Http.MultiProxy:this (FullOpts)
         206 (13.58% of base) : 188303.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileLiftedLogicalBinaryExpression(System.Linq.Expressions.BinaryExpression,ubyte):this (FullOpts)
          81 (13.00% of base) : 235062.dasm - System.Collections.Frozen.KeysAndValuesFrozenDictionary`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):this (FullOpts)
          84 (12.67% of base) : 11597.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          83 (12.61% of base) : 99721.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<ReinferBinaryOperatorAndSetResult>g__visitOperandConversionAndPostConditions|187_2(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,byref):this (FullOpts)
          23 (12.11% of base) : 245573.dasm - System.Formats.Cbor.CborWriter:WriteBigInteger(System.Numerics.BigInteger):this (FullOpts)
          41 (10.10% of base) : 256549.dasm - System.Drawing.ColorConverterCommon:PossibleKnownColor(System.Drawing.Color):System.Drawing.Color (FullOpts)
         349 ( 9.93% of base) : 125765.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
          49 ( 9.55% of base) : 20787.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts)
         104 ( 9.50% of base) : 46401.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitNullCoalescingAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         103 ( 9.43% of base) : 99458.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitNullCoalescingAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          70 ( 9.31% of base) : 225033.dasm - Microsoft.VisualBasic.CompilerServices.LikeOperator:MatchRangeAfterAsterisk(System.String,int,byref,Microsoft.VisualBasic.CompilerServices.LikeOperator+LigatureInfo[],System.String,Microsoft.VisualBasic.CompilerServices.LikeOperator+LigatureInfo[],Microsoft.VisualBasic.CompilerServices.LikeOperator+PatternGroup,System.Globalization.CompareInfo,int):ubyte (FullOpts)
         105 ( 9.28% of base) : 269478.dasm - System.Net.Quic.MsQuicTlsSecret:WriteSecret():this (FullOpts)
          71 ( 9.02% of base) : 251073.dasm - System.Resources.Extensions.BinaryFormat.Deserializer.ClassRecordSerializationInfoDeserializer:Continue():System.Formats.Nrbf.SerializationRecordId:this (FullOpts)
         100 ( 8.90% of base) : 16050.dasm - System.RuntimeType:CreateInstanceImpl(int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
          50 ( 8.74% of base) : 233454.dasm - System.Collections.Frozen.FrozenHashTable:Create(System.Span`1[int],ubyte):System.Collections.Frozen.FrozenHashTable (FullOpts)

Top method improvements (percentages):
        -312 (-47.34% of base) : 241329.dasm - System.Formats.Nrbf.NrbfDecoder:DecodeArraySinglePrimitiveRecord(System.IO.BinaryReader):System.Formats.Nrbf.SerializationRecord (FullOpts)
        -107 (-35.79% of base) : 136565.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:AnalyzeDataFlow(Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.DataFlowAnalysis:this (FullOpts)
        -105 (-33.33% of base) : 72810.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeDescriptor:ComputeKey[Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeField](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeField],System.Func`2[Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeField,System.String]):System.String (FullOpts)
        -105 (-33.33% of base) : 125941.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeDescriptor:ComputeKey[Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeField](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeField],System.Func`2[Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeField,System.String]):System.String (FullOpts)
         -48 (-33.10% of base) : 169830.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -68 (-31.78% of base) : 178538.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbolForSerializedType(System.String):System.__Canon:this (FullOpts)
         -68 (-31.78% of base) : 220943.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbolForSerializedType(System.String):System.__Canon:this (FullOpts)
         -94 (-31.65% of base) : 136563.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:AnalyzeControlFlow(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.ControlFlowAnalysis:this (FullOpts)
         -94 (-31.65% of base) : 136564.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:AnalyzeDataFlow(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.DataFlowAnalysis:this (FullOpts)
        -120 (-30.23% of base) : 41220.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindType(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
        -120 (-30.23% of base) : 94311.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindType(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
        -197 (-29.23% of base) : 93300.dasm - Microsoft.CodeAnalysis.Operations.CSharpOperationFactory:CreateBoundBinaryOperatorBase(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperatorBase):Microsoft.CodeAnalysis.IOperation:this (FullOpts)
        -197 (-29.23% of base) : 40228.dasm - Microsoft.CodeAnalysis.Operations.CSharpOperationFactory:CreateBoundBinaryOperatorBase(Microsoft.CodeAnalysis.CSharp.BoundBinaryOperatorBase):Microsoft.CodeAnalysis.IOperation:this (FullOpts)
        -117 (-29.03% of base) : 41219.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindType(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
        -117 (-29.03% of base) : 94310.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindType(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
        -118 (-27.57% of base) : 94305.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrVarKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
        -118 (-27.57% of base) : 41214.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrVarKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
         -72 (-26.97% of base) : 149624.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:EliminateNarrowingCandidates(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult]):int (FullOpts)
         -12 (-26.67% of base) : 226716.dasm - System.CommandLine.Help.HelpBuilder:<FormatArgumentUsage>g__IsOptional|16_0(System.CommandLine.CliArgument):ubyte (FullOpts)
         -52 (-26.13% of base) : 41331.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CheckPropertyValueKind>g__reportUseSite|149_0(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,byref):ubyte:this (FullOpts)


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: 62545380 (overridden on cmd)
Total bytes of diff: 62494554 (overridden on cmd)
Total bytes of delta: -50826 (-0.08 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         297 : 233668.dasm (25.04% of base)
         296 : 228695.dasm (19.35% of base)
         285 : 228696.dasm (24.26% of base)
         244 : 219800.dasm (10.91% of base)
         235 : 302546.dasm (11.95% of base)
         232 : 191277.dasm (4.94% of base)
         206 : 49053.dasm (6.24% of base)
         177 : 305381.dasm (8.03% of base)
         169 : 233667.dasm (10.92% of base)
         158 : 49178.dasm (3.41% of base)
         150 : 105770.dasm (3.31% of base)
         150 : 221534.dasm (12.58% of base)
         149 : 191292.dasm (4.83% of base)
         145 : 51240.dasm (2.70% of base)
         144 : 49320.dasm (8.76% of base)
         144 : 227404.dasm (1.80% of base)
         140 : 305362.dasm (7.12% of base)
         137 : 280569.dasm (16.35% of base)
         137 : 280498.dasm (16.35% of base)
         136 : 163570.dasm (2.61% of base)

Top file improvements (bytes):
       -1163 : 105202.dasm (-47.78% of base)
        -754 : 44426.dasm (-11.81% of base)
        -720 : 275317.dasm (-22.51% of base)
        -531 : 129542.dasm (-8.31% of base)
        -519 : 275313.dasm (-26.05% of base)
        -493 : 53496.dasm (-5.76% of base)
        -315 : 49154.dasm (-5.35% of base)
        -272 : 284949.dasm (-5.98% of base)
        -246 : 159843.dasm (-15.81% of base)
        -233 : 49093.dasm (-5.99% of base)
        -216 : 71973.dasm (-4.55% of base)
        -214 : 125625.dasm (-4.13% of base)
        -214 : 39102.dasm (-7.46% of base)
        -213 : 276114.dasm (-14.01% of base)
        -200 : 47382.dasm (-4.94% of base)
        -186 : 39088.dasm (-6.92% of base)
        -185 : 78866.dasm (-10.96% of base)
        -183 : 39018.dasm (-5.94% of base)
        -180 : 127151.dasm (-10.78% of base)
        -176 : 43373.dasm (-17.41% of base)

76 total files with Code Size differences (44 improved, 32 regressed), 20 unchanged.

Top method regressions (bytes):
         297 (25.04% of base) : 233668.dasm - Internal.Pgo.PgoProcessor:EncodePgoData[ubyte,System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[Internal.Pgo.PgoSchemaElem],Internal.Pgo.IPgoEncodedValueEmitter`2[ubyte,System.Nullable`1[int]],ubyte) (FullOpts)
         296 (19.35% of base) : 228695.dasm - Internal.Pgo.PgoProcessor:EncodePgoData[System.__Canon,System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[Internal.Pgo.PgoSchemaElem],Internal.Pgo.IPgoEncodedValueEmitter`2[System.__Canon,System.Nullable`1[int]],ubyte) (FullOpts)
         285 (24.26% of base) : 228696.dasm - Internal.Pgo.PgoProcessor:EncodePgoData[ubyte,System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[Internal.Pgo.PgoSchemaElem],Internal.Pgo.IPgoEncodedValueEmitter`2[ubyte,System.Nullable`1[int]],ubyte) (FullOpts)
         244 (10.91% of base) : 219800.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+BagState:UnshroudKeys(byref):this (FullOpts)
         235 (11.95% of base) : 302546.dasm - System.Security.Cryptography.Xml.DSAKeyValue:GetXml(System.Xml.XmlDocument):System.Xml.XmlElement:this (FullOpts)
         232 ( 4.94% of base) : 191277.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileBinaryExpression(System.Linq.Expressions.Expression):this (FullOpts)
         206 ( 6.24% of base) : 49053.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitNullCoalescingAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         177 ( 8.03% of base) : 305381.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitBackreference|5(System.Text.RegularExpressions.RegexNode):this (FullOpts)
         169 (10.92% of base) : 233667.dasm - Internal.Pgo.PgoProcessor:EncodePgoData[System.__Canon,System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[Internal.Pgo.PgoSchemaElem],Internal.Pgo.IPgoEncodedValueEmitter`2[System.__Canon,System.Nullable`1[int]],ubyte) (FullOpts)
         158 ( 3.41% of base) : 49178.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitForEachIterationVariables(Microsoft.CodeAnalysis.CSharp.BoundForEachStatement):this (FullOpts)
         150 ( 3.31% of base) : 105770.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:CreateBoundCallOrPropertyAccess(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,int,Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         150 (12.58% of base) : 221534.dasm - System.Speech.Recognition.RecognizedPhrase:AppendPropertiesSML(System.Xml.XmlDocument,System.Xml.XmlElement,System.Speech.Recognition.SemanticValue,System.Globalization.NumberFormatInfo):this (FullOpts)
         149 ( 4.83% of base) : 191292.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileLiftedLogicalBinaryExpression(System.Linq.Expressions.BinaryExpression,ubyte):this (FullOpts)
         145 ( 2.70% of base) : 51240.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeDecimalLiteral(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ConstantValue):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         144 ( 8.76% of base) : 49320.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<ReinferBinaryOperatorAndSetResult>g__visitOperandConversionAndPostConditions|187_2(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,byref):this (FullOpts)
         144 ( 1.80% of base) : 227404.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[ubyte]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts)
         140 ( 7.12% of base) : 305362.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|157_5(byref):this (FullOpts)
         137 (16.35% of base) : 280498.dasm - System.Linq.Enumerable:Max(System.Collections.Generic.IEnumerable`1[System.Decimal]):System.Decimal (FullOpts)
         137 (16.35% of base) : 280569.dasm - System.Linq.Enumerable:Min(System.Collections.Generic.IEnumerable`1[System.Decimal]):System.Decimal (FullOpts)
         136 ( 2.61% of base) : 163570.dasm - Microsoft.Build.Execution.ProjectInstance:.ctor(Microsoft.Build.Execution.ProjectInstance,ubyte,Microsoft.Build.Execution.RequestedProjectState):this (FullOpts)

Top method improvements (bytes):
       -1163 (-47.78% of base) : 105202.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:MakeSlotsForExpression(Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+SlotCollection:this (FullOpts)
        -754 (-11.81% of base) : 44426.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:AddUserDefinedConversionsToExplicitCandidateSet(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UserDefinedConversionAnalysis],Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,ubyte,ubyte,byref):this (FullOpts)
        -720 (-22.51% of base) : 275317.dasm - System.Drawing.ColorTranslator:InitializeHtmlSysColorTable() (FullOpts)
        -531 (-8.31% of base) : 129542.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicDeclarationComputer:ComputeDeclarationsCore(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.SyntaxNode,System.Func`3[Microsoft.CodeAnalysis.SyntaxNode,System.Nullable`1[int],ubyte],ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Nullable`1[int],System.Threading.CancellationToken) (FullOpts)
        -519 (-26.05% of base) : 275313.dasm - System.Drawing.ColorTranslator:FromOle(int):System.Drawing.Color (FullOpts)
        -493 (-5.76% of base) : 53496.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDeclarationComputer:ComputeDeclarations(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.SyntaxNode,System.Func`3[Microsoft.CodeAnalysis.SyntaxNode,System.Nullable`1[int],ubyte],ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Nullable`1[int],System.Threading.CancellationToken) (FullOpts)
        -315 (-5.35% of base) : 49154.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
        -272 (-5.98% of base) : 284949.dasm - System.Net.WebSockets.WebSocketBase+WebSocketOperation+<Process>d__19:MoveNext():this (FullOpts)
        -246 (-15.81% of base) : 159843.dasm - System.Reflection.Metadata.Ecma335.SignatureDecoder`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:DecodeType(byref,ubyte,int):System.Numerics.Vector`1[float]:this (FullOpts)
        -233 (-5.99% of base) : 49093.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArgumentOutboundAssignmentsAndPostConditions(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.NullableWalker+CompareExchangeInfo):this (FullOpts)
        -216 (-4.55% of base) : 71973.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol:AddDelegateMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol],Microsoft.CodeAnalysis.CSharp.Syntax.DelegateDeclarationSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
        -214 (-4.13% of base) : 125625.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
        -214 (-7.46% of base) : 39102.dasm - System.Data.Common.SqlMoneyStorage:Aggregate(int[],int):System.Object:this (FullOpts)
        -213 (-14.01% of base) : 276114.dasm - System.Formats.Nrbf.NrbfDecoder:DecodeArraySinglePrimitiveRecord(System.IO.BinaryReader):System.Formats.Nrbf.SerializationRecord (FullOpts)
        -200 (-4.94% of base) : 47382.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel:GetTypeInfoForNode(Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.CSharpTypeInfo:this (FullOpts)
        -186 (-6.92% of base) : 39088.dasm - System.Data.Common.SqlInt64Storage:Aggregate(int[],int):System.Object:this (FullOpts)
        -185 (-10.96% of base) : 78866.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+DeepTranslator:VisitFunctionPointerType(Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerTypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
        -183 (-5.94% of base) : 39018.dasm - System.Data.Common.SqlDecimalStorage:Aggregate(int[],int):System.Object:this (FullOpts)
        -180 (-10.78% of base) : 127151.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:MissingToken(ushort):Microsoft.CodeAnalysis.SyntaxToken (FullOpts)
        -176 (-17.41% of base) : 43373.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeArguments(Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this (FullOpts)

Top method regressions (percentages):
         297 (25.04% of base) : 233668.dasm - Internal.Pgo.PgoProcessor:EncodePgoData[ubyte,System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[Internal.Pgo.PgoSchemaElem],Internal.Pgo.IPgoEncodedValueEmitter`2[ubyte,System.Nullable`1[int]],ubyte) (FullOpts)
         285 (24.26% of base) : 228696.dasm - Internal.Pgo.PgoProcessor:EncodePgoData[ubyte,System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[Internal.Pgo.PgoSchemaElem],Internal.Pgo.IPgoEncodedValueEmitter`2[ubyte,System.Nullable`1[int]],ubyte) (FullOpts)
          38 (21.59% of base) : 276209.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:WithAssemblyName(System.Reflection.Metadata.TypeName,System.String):System.Reflection.Metadata.TypeName (FullOpts)
          38 (20.65% of base) : 276210.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (FullOpts)
          38 (19.39% of base) : 276211.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (FullOpts)
         296 (19.35% of base) : 228695.dasm - Internal.Pgo.PgoProcessor:EncodePgoData[System.__Canon,System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[Internal.Pgo.PgoSchemaElem],Internal.Pgo.IPgoEncodedValueEmitter`2[System.__Canon,System.Nullable`1[int]],ubyte) (FullOpts)
          47 (18.88% of base) : 276207.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:ParseSystemRecordTypeName(System.String,System.Formats.Nrbf.PayloadOptions):System.Reflection.Metadata.TypeName (FullOpts)
         130 (16.84% of base) : 157682.dasm - System.Reflection.Metadata.BlobBuilder:ContentEquals(System.Reflection.Metadata.BlobBuilder):ubyte:this (FullOpts)
         137 (16.35% of base) : 280498.dasm - System.Linq.Enumerable:Max(System.Collections.Generic.IEnumerable`1[System.Decimal]):System.Decimal (FullOpts)
         137 (16.35% of base) : 280569.dasm - System.Linq.Enumerable:Min(System.Collections.Generic.IEnumerable`1[System.Decimal]):System.Decimal (FullOpts)
          50 (12.92% of base) : 240426.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ObjTstDecimal(System.IConvertible,System.IConvertible):int (FullOpts)
         150 (12.58% of base) : 221534.dasm - System.Speech.Recognition.RecognizedPhrase:AppendPropertiesSML(System.Xml.XmlDocument,System.Xml.XmlElement,System.Speech.Recognition.SemanticValue,System.Globalization.NumberFormatInfo):this (FullOpts)
          30 (12.20% of base) : 276817.dasm - System.IO.Compression.ZipArchiveEntry+DirectToArchiveWriterStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         235 (11.95% of base) : 302546.dasm - System.Security.Cryptography.Xml.DSAKeyValue:GetXml(System.Xml.XmlDocument):System.Xml.XmlElement:this (FullOpts)
          88 (11.52% of base) : 210130.dasm - System.Xml.Xsl.XmlQueryType:Equals(System.Xml.Xsl.XmlQueryType):ubyte:this (FullOpts)
         169 (10.92% of base) : 233667.dasm - Internal.Pgo.PgoProcessor:EncodePgoData[System.__Canon,System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[Internal.Pgo.PgoSchemaElem],Internal.Pgo.IPgoEncodedValueEmitter`2[System.__Canon,System.Nullable`1[int]],ubyte) (FullOpts)
         244 (10.91% of base) : 219800.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+BagState:UnshroudKeys(byref):this (FullOpts)
          27 (10.84% of base) : 219587.dasm - System.Security.Cryptography.RSABCrypt:ExportParameters(ubyte):System.Security.Cryptography.RSAParameters:this (FullOpts)
          69 (10.66% of base) : 280550.dasm - System.Linq.Enumerable:MaxFloat[System.__Canon,double](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,System.Nullable`1[double]]):System.Nullable`1[double] (FullOpts)
          39 (10.34% of base) : 49186.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitPointerElementAccess(Microsoft.CodeAnalysis.CSharp.BoundPointerElementAccess):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

Top method improvements (percentages):
       -1163 (-47.78% of base) : 105202.dasm - Microsoft.CodeAnalysis.VisualBasic.DataFlowPass:MakeSlotsForExpression(Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.DataFlowPass+SlotCollection:this (FullOpts)
         -42 (-38.89% of base) : 293711.dasm - System.Numerics.Tensors.TensorPrimitives+LogBaseOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
         -52 (-36.88% of base) : 173152.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -143 (-35.22% of base) : 10638.dasm - Microsoft.FSharp.Collections.SeqModule:Sum[System.Numerics.Vector`1[float]](System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]]):System.Numerics.Vector`1[float] (FullOpts)
         -74 (-34.10% of base) : 113713.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:AnalyzeDataFlow(Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.DataFlowAnalysis:this (FullOpts)
         -46 (-34.07% of base) : 139603.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -57 (-30.65% of base) : 139233.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbolForSerializedType(System.String):System.__Canon:this (FullOpts)
         -57 (-30.65% of base) : 172796.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbolForSerializedType(System.String):System.__Canon:this (FullOpts)
         -68 (-30.63% of base) : 113711.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:AnalyzeControlFlow(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.ControlFlowAnalysis:this (FullOpts)
         -68 (-30.63% of base) : 113712.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxTreeSemanticModel:AnalyzeDataFlow(Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax):Microsoft.CodeAnalysis.DataFlowAnalysis:this (FullOpts)
        -122 (-27.48% of base) : 10645.dasm - Microsoft.FSharp.Collections.SeqModule:Sum$W[System.Numerics.Vector`1[float]](Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Core.Unit,System.Numerics.Vector`1[float]],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],Microsoft.FSharp.Core.FSharpFunc`2[System.Numerics.Vector`1[float],System.Numerics.Vector`1[float]]],System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]]):System.Numerics.Vector`1[float] (FullOpts)
        -100 (-26.88% of base) : 43346.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindType(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
         -12 (-26.67% of base) : 250801.dasm - System.CommandLine.Help.HelpBuilder:<FormatArgumentUsage>g__IsOptional|16_0(System.CommandLine.CliArgument):ubyte (FullOpts)
        -519 (-26.05% of base) : 275313.dasm - System.Drawing.ColorTranslator:FromOle(int):System.Drawing.Color (FullOpts)
         -98 (-25.86% of base) : 43345.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindType(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
         -12 (-25.53% of base) : 148935.dasm - Roslyn.Utilities.ConcurrentSet`1+KeyEnumerator[long]:get_Current():long:this (FullOpts)
         -12 (-25.53% of base) : 182562.dasm - Roslyn.Utilities.ConcurrentSet`1+KeyEnumerator[long]:get_Current():long:this (FullOpts)
         -57 (-25.45% of base) : 68792.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpDefinitionMap:TryGetStateMachineType(System.Reflection.Metadata.MethodDefinitionHandle):Microsoft.CodeAnalysis.Symbols.ITypeSymbolInternal:this (FullOpts)
         -12 (-25.00% of base) : 148933.dasm - Roslyn.Utilities.ConcurrentSet`1+KeyEnumerator[double]:get_Current():double:this (FullOpts)
         -12 (-25.00% of base) : 182560.dasm - Roslyn.Utilities.ConcurrentSet`1+KeyEnumerator[double]:get_Current():double:this (FullOpts)


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: 309473340 (overridden on cmd)
Total bytes of diff: 309347300 (overridden on cmd)
Total bytes of delta: -126040 (-0.04 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
        1764 : 62959.dasm (18.27% of base)
        1314 : 98233.dasm (12.62% of base)
         734 : 62960.dasm (8.55% of base)
         650 : 675783.dasm (15.82% of base)
         636 : 98234.dasm (7.05% of base)
         620 : 669894.dasm (8.30% of base)
         436 : 433773.dasm (8.56% of base)
         434 : 433772.dasm (9.99% of base)
         421 : 433770.dasm (9.85% of base)
         414 : 433758.dasm (9.80% of base)
         413 : 433761.dasm (10.00% of base)
         413 : 433798.dasm (9.46% of base)
         409 : 62962.dasm (7.12% of base)
         408 : 433800.dasm (9.43% of base)
         398 : 180907.dasm (5.36% of base)
         397 : 433796.dasm (10.24% of base)
         396 : 433765.dasm (9.53% of base)
         394 : 433810.dasm (9.31% of base)
         359 : 433776.dasm (8.62% of base)
         354 : 433812.dasm (8.43% of base)

Top file improvements (bytes):
        -611 : 435515.dasm (-11.23% of base)
        -586 : 185974.dasm (-5.90% of base)
        -573 : 435522.dasm (-10.70% of base)
        -444 : 64985.dasm (-5.11% of base)
        -390 : 62675.dasm (-3.20% of base)
        -379 : 180762.dasm (-4.87% of base)
        -348 : 435470.dasm (-6.47% of base)
        -348 : 435466.dasm (-6.47% of base)
        -343 : 68298.dasm (-5.14% of base)
        -341 : 434127.dasm (-15.46% of base)
        -341 : 435518.dasm (-13.89% of base)
        -341 : 435123.dasm (-15.46% of base)
        -341 : 435203.dasm (-15.46% of base)
        -341 : 434259.dasm (-15.46% of base)
        -341 : 435520.dasm (-13.89% of base)
        -341 : 434374.dasm (-15.46% of base)
        -341 : 435257.dasm (-13.89% of base)
        -341 : 435222.dasm (-15.46% of base)
        -341 : 435263.dasm (-13.89% of base)
        -323 : 185973.dasm (-4.13% of base)

96 total files with Code Size differences (60 improved, 36 regressed), 20 unchanged.

Top method regressions (bytes):
        1764 (18.27% of base) : 62959.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddMemberToCandidateSet[System.__Canon](System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,ubyte,ubyte):this (Tier1)
        1314 (12.62% of base) : 98233.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddMemberToCandidateSet[System.__Canon](System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,ubyte,ubyte):this (Tier1)
         734 ( 8.55% of base) : 62960.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsMemberApplicableInNormalForm[System.__Canon](System.__Canon,System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (Tier1)
         650 (15.82% of base) : 675783.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:MakeDecisionDag(byref,System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DagState,Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DagState]):Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DecisionDag:this (Tier1)
         636 ( 7.05% of base) : 98234.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsMemberApplicableInNormalForm[System.__Canon](System.__Canon,System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (Tier1)
         620 ( 8.30% of base) : 669894.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:Create(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.BasePropertyDeclarationSyntax,System.String,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol (Tier1)
         436 ( 8.56% of base) : 433773.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertCheckedImpl[System.Half,float]() (Tier1-OSR)
         434 ( 9.99% of base) : 433772.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertCheckedImpl[System.Half,System.Half]() (Tier1-OSR)
         421 ( 9.85% of base) : 433770.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertCheckedImpl[ubyte,float]() (Tier1-OSR)
         414 ( 9.80% of base) : 433758.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertCheckedImpl[ubyte,ubyte]() (Tier1-OSR)
         413 (10.00% of base) : 433761.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertCheckedImpl[ubyte,short]() (Tier1-OSR)
         413 ( 9.46% of base) : 433798.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertTruncatingImpl[short,uint]() (Tier1-OSR)
         409 ( 7.12% of base) : 62962.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsApplicable[System.__Canon](System.__Canon,System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolution+EffectiveParameters,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte,System.Collections.Immutable.ImmutableArray`1[int],ubyte,ubyte,ubyte,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]:this (Tier1)
         408 ( 9.43% of base) : 433800.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertTruncatingImpl[System.Half,int]() (Tier1-OSR)
         398 ( 5.36% of base) : 180907.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConversion(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,ubyte,ubyte,ubyte,int,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState],ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitResult]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (Tier1)
         397 (10.24% of base) : 433796.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertTruncatingImpl[long,ubyte]() (Tier1-OSR)
         396 ( 9.53% of base) : 433765.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertCheckedImpl[ubyte,uint]() (Tier1-OSR)
         394 ( 9.31% of base) : 433810.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertSaturatingImpl[short,uint]() (Tier1-OSR)
         359 ( 8.62% of base) : 433776.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertCheckedImpl[System.Half,double]() (Tier1-OSR)
         354 ( 8.43% of base) : 433812.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertSaturatingImpl[System.Half,int]() (Tier1-OSR)

Top method improvements (bytes):
        -611 (-11.23% of base) : 435515.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[float,float,System.Numerics.Tensors.TensorPrimitives+Log10Operator`1[float]](byref,byref,ulong) (Tier1)
        -586 (-5.90% of base) : 185974.dasm - Microsoft.CodeAnalysis.CSharp.BestTypeInferrer:GetBestType(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.ConversionsBase,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol (Tier1)
        -573 (-10.70% of base) : 435522.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[float,float,System.Numerics.Tensors.TensorPrimitives+Log10P1Operator`1[float]](byref,byref,ulong) (Tier1)
        -444 (-5.11% of base) : 64985.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:CandidateOperators(ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature],Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult],byref):ubyte:this (Tier1)
        -390 (-3.20% of base) : 62675.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:<CheckModifierMismatchOnImplementingMember>g__checkMethodOverride|102_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
        -379 (-4.87% of base) : 180762.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:CandidateOperators(ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorSignature],Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult],byref):ubyte:this (Tier1)
        -348 (-6.47% of base) : 435470.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[float,float,System.Numerics.Tensors.TensorPrimitives+Exp10Operator`1[float]](byref,byref,ulong) (Tier1)
        -348 (-6.47% of base) : 435466.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[float,float,System.Numerics.Tensors.TensorPrimitives+Exp2Operator`1[float]](byref,byref,ulong) (Tier1)
        -343 (-5.14% of base) : 68298.dasm - Microsoft.CodeAnalysis.CSharp.BestTypeInferrer:InferBestTypeForConditionalOperator(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversions,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol (Tier1)
        -341 (-15.46% of base) : 435123.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[double,double,System.Numerics.Tensors.TensorPrimitives+ExpOperator`1[double]](byref,byref,ulong) (Tier1)
        -341 (-15.46% of base) : 435222.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[double,double,System.Numerics.Tensors.TensorPrimitives+Log2Operator`1[double]](byref,byref,ulong) (Tier1)
        -341 (-13.89% of base) : 435263.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[double,double,System.Numerics.Tensors.TensorPrimitives+Log2P1Operator`1[double]](byref,byref,ulong) (Tier1)
        -341 (-15.46% of base) : 435203.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[double,double,System.Numerics.Tensors.TensorPrimitives+LogOperator`1[double]](byref,byref,ulong) (Tier1)
        -341 (-13.89% of base) : 435257.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[double,double,System.Numerics.Tensors.TensorPrimitives+LogP1Operator`1[double]](byref,byref,ulong) (Tier1)
        -341 (-15.46% of base) : 434259.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[float,float,System.Numerics.Tensors.TensorPrimitives+ExpOperator`1[float]](byref,byref,ulong) (Tier1)
        -341 (-15.46% of base) : 434374.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[float,float,System.Numerics.Tensors.TensorPrimitives+Log2Operator`1[float]](byref,byref,ulong) (Tier1)
        -341 (-13.89% of base) : 435520.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[float,float,System.Numerics.Tensors.TensorPrimitives+Log2P1Operator`1[float]](byref,byref,ulong) (Tier1)
        -341 (-15.46% of base) : 434127.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[float,float,System.Numerics.Tensors.TensorPrimitives+LogOperator`1[float]](byref,byref,ulong) (Tier1)
        -341 (-13.89% of base) : 435518.dasm - System.Numerics.Tensors.TensorPrimitives:<InvokeSpanIntoSpan>g__Vectorized256|105_2[float,float,System.Numerics.Tensors.TensorPrimitives+LogP1Operator`1[float]](byref,byref,ulong) (Tier1)
        -323 (-4.13% of base) : 185973.dasm - Microsoft.CodeAnalysis.CSharp.BestTypeInferrer:InferBestTypeForConditionalOperator(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversions,byref,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol (Tier1)

Top method regressions (percentages):
         161 (23.68% of base) : 517600.dasm - System.RuntimeType:GetMembers(int):System.Reflection.MemberInfo[]:this (Tier1)
         230 (21.95% of base) : 185182.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Blender:ReadNodeOrToken(int,ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.BlendedNode:this (Tier1)
          40 (19.51% of base) : 306154.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (Tier1)
        1764 (18.27% of base) : 62959.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddMemberToCandidateSet[System.__Canon](System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,ubyte,ubyte):this (Tier1)
          42 (17.36% of base) : 306192.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (Tier1)
         329 (16.85% of base) : 574879.dasm - System.Text.Tests.FromUtf16Tests:SomeNonAsciiInput() (Tier1-OSR)
         332 (16.39% of base) : 574598.dasm - System.Text.Tests.ToUtf16Tests:SomeNonAsciiInput() (Tier1-OSR)
         261 (16.31% of base) : 668072.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (Tier1)
         650 (15.82% of base) : 675783.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:MakeDecisionDag(byref,System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DagState,Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DagState]):Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+DecisionDag:this (Tier1)
         111 (14.30% of base) : 288877.dasm - System.RuntimeType:GetMembers(int):System.Reflection.MemberInfo[]:this (Instrumented Tier1)
         203 (14.29% of base) : 560442.dasm - System.Linq.Enumerable:SequenceEqual[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Generic.IEqualityComparer`1[ubyte]):ubyte (Tier1)
          15 (12.82% of base) : 186700.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol:Microsoft.Cci.IParameterTypeInformation.get_CustomModifiers():System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]:this (Tier1)
        1314 (12.62% of base) : 98233.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddMemberToCandidateSet[System.__Canon](System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,ubyte,ubyte):this (Tier1)
          15 (12.40% of base) : 186757.dasm - Microsoft.CodeAnalysis.CSharp.Emit.ParameterTypeInformation:Microsoft.Cci.IParameterTypeInformation.get_CustomModifiers():System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.ICustomModifier]:this (Tier1)
          41 (11.42% of base) : 60941.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.BaseTypeAnalysis:NonPointerType(Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol (Tier1)
          25 (11.42% of base) : 98026.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:.ctor(Microsoft.CodeAnalysis.Text.TextSpan,int,System.String,System.String,ubyte):this (Tier1)
          25 (11.42% of base) : 58192.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:.ctor(Microsoft.CodeAnalysis.Text.TextSpan,int,System.String,System.String,ubyte):this (Tier1)
          90 (11.19% of base) : 308745.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (Instrumented Tier1)
         397 (10.24% of base) : 433796.dasm - System.Numerics.Tensors.Tests.ConvertTests:ConvertTruncatingImpl[long,ubyte]() (Tier1-OSR)
         192 (10.14% of base) : 196839.dasm - System.Number:TryParseFloat[ushort,double](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):ubyte (Tier1)

Top method improvements (percentages):
         -57 (-32.39% of base) : 70001.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbolForSerializedType(System.String):System.__Canon:this (Tier1)
         -80 (-31.25% of base) : 72720.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SuppressFormattingRule:AddStatementExceptBlockSuppressOperations(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Formatting.Rules.SuppressOperation],Microsoft.CodeAnalysis.SyntaxNode) (Tier1)
         -57 (-26.89% of base) : 61805.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (Tier1)
         -21 (-24.42% of base) : 674631.dasm - Microsoft.Cci.MetadataWriter+<>c:<GetLocalSlotDebugInfos>b__257_0(Microsoft.Cci.ILocalDefinition):ubyte:this (Tier1)
         -65 (-22.03% of base) : 72727.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:SuppressVariableDeclaration(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Formatting.Rules.SuppressOperation],Microsoft.CodeAnalysis.SyntaxNode):this (Tier1)
         -65 (-22.03% of base) : 95624.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.SpacingFormattingRule:SuppressVariableDeclaration(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.Formatting.Rules.SuppressOperation],Microsoft.CodeAnalysis.SyntaxNode):this (Tier1)
         -54 (-21.69% of base) : 95603.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.IndentBlockFormattingRule:AddTypeParameterConstraintClauseOperation(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Formatting.Rules.IndentBlockOperation],Microsoft.CodeAnalysis.SyntaxNode) (Tier1)
         -54 (-21.69% of base) : 72706.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.IndentBlockFormattingRule:AddTypeParameterConstraintClauseOperation(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Formatting.Rules.IndentBlockOperation],Microsoft.CodeAnalysis.SyntaxNode) (Tier1)
         -57 (-20.96% of base) : 406658.dasm - System.Net.Http.HttpConnectionPoolManager:Dispose():this (Tier1)
         -61 (-20.89% of base) : 273159.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -61 (-20.89% of base) : 83969.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -61 (-20.89% of base) : 552615.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -61 (-20.89% of base) : 269065.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -61 (-20.89% of base) : 135714.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -61 (-20.89% of base) : 309578.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -61 (-20.89% of base) : 342084.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -61 (-20.89% of base) : 542308.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -61 (-20.89% of base) : 251316.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -61 (-20.89% of base) : 325823.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (Tier1)
         -27 (-20.77% of base) : 185864.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)


libraries_tests_no_tiered_compilation.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: 146141887 (overridden on cmd)
Total bytes of diff: 146040513 (overridden on cmd)
Total bytes of delta: -101374 (-0.07 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         893 : 163556.dasm (14.13% of base)
         787 : 319376.dasm (2.40% of base)
         746 : 163552.dasm (11.25% of base)
         500 : 66045.dasm (12.76% of base)
         386 : 161781.dasm (10.52% of base)
         367 : 45662.dasm (8.41% of base)
         307 : 231767.dasm (5.08% of base)
         307 : 215591.dasm (5.08% of base)
         255 : 172976.dasm (12.28% of base)
         242 : 181956.dasm (9.61% of base)
         240 : 22700.dasm (10.94% of base)
         238 : 142489.dasm (6.66% of base)
         235 : 252922.dasm (11.95% of base)
         230 : 257949.dasm (16.23% of base)
         226 : 142393.dasm (8.22% of base)
         224 : 6858.dasm (6.60% of base)
         223 : 257983.dasm (15.04% of base)
         211 : 181983.dasm (9.16% of base)
         206 : 64266.dasm (6.32% of base)
         191 : 298229.dasm (3.12% of base)

Top file improvements (bytes):
       -1533 : 115025.dasm (-31.96% of base)
       -1263 : 215749.dasm (-25.59% of base)
       -1263 : 232589.dasm (-25.59% of base)
       -1221 : 115043.dasm (-28.45% of base)
        -802 : 181563.dasm (-42.01% of base)
        -788 : 25273.dasm (-7.78% of base)
        -754 : 59415.dasm (-11.87% of base)
        -732 : 8200.dasm (-11.03% of base)
        -720 : 115057.dasm (-22.51% of base)
        -692 : 180483.dasm (-7.27% of base)
        -674 : 159954.dasm (-5.16% of base)
        -621 : 180574.dasm (-5.95% of base)
        -618 : 152575.dasm (-54.69% of base)
        -607 : 46494.dasm (-10.96% of base)
        -592 : 53258.dasm (-10.59% of base)
        -519 : 115104.dasm (-26.05% of base)
        -497 : 13907.dasm (-5.88% of base)
        -485 : 159968.dasm (-4.30% of base)
        -479 : 183044.dasm (-23.40% of base)
        -477 : 24955.dasm (-6.37% of base)

74 total files with Code Size differences (42 improved, 32 regressed), 20 unchanged.

Top method regressions (bytes):
         893 (14.13% of base) : 163556.dasm - System.Buffers.Binary.Tests.BinaryReaderUnitTests:SpanWriteAndReadLittleEndianHeterogeneousStruct():this (FullOpts)
         787 ( 2.40% of base) : 319376.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32046_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         746 (11.25% of base) : 163552.dasm - System.Buffers.Binary.Tests.BinaryReaderUnitTests:SpanWriteAndReadBigEndianHeterogeneousStruct():this (FullOpts)
         500 (12.76% of base) : 66045.dasm - Microsoft.Extensions.Primitives.StringSegmentTest:StringSegment_CompareEqual_Globalized(System.String,System.String,int,int):this (FullOpts)
         386 (10.52% of base) : 161781.dasm - System.Memory.Tests.SequenceReader.ReadTo:TryReadTo_Sequence(ubyte,ubyte):this (FullOpts)
         367 ( 8.41% of base) : 45662.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (FullOpts)
         307 ( 5.08% of base) : 231767.dasm - System.Tests.StringTests:TrimWhiteSpaceMultipleTimes_Memory() (FullOpts)
         307 ( 5.08% of base) : 215591.dasm - System.Tests.StringTests:TrimWhiteSpaceMultipleTimes_Memory() (FullOpts)
         255 (12.28% of base) : 172976.dasm - System.Net.Primitives.Functional.Tests.IPNetworkTest:TryFormatSpan_EnoughLength_Succeeds(System.String):this (FullOpts)
         242 ( 9.61% of base) : 181956.dasm - System.Numerics.Tests.Matrix3x2Tests:Matrix3x2MultiplyTest1():this (FullOpts)
         240 (10.94% of base) : 22700.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+BagState:UnshroudKeys(byref):this (FullOpts)
         238 ( 6.66% of base) : 142489.dasm - System.IO.Hashing.Tests.XxHash128Tests:Hash_OneShot_Expected():this (FullOpts)
         235 (11.95% of base) : 252922.dasm - System.Security.Cryptography.Xml.DSAKeyValue:GetXml(System.Xml.XmlDocument):System.Xml.XmlElement:this (FullOpts)
         230 (16.23% of base) : 257949.dasm - System.Text.Tests.FromUtf16Tests:SomeNonAsciiInput() (FullOpts)
         226 ( 8.22% of base) : 142393.dasm - System.IO.Hashing.Tests.XxHash3Tests:Hash_OneShot_Expected():this (FullOpts)
         224 ( 6.60% of base) : 6858.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsApplicable(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.OverloadResolution+EffectiveParameters,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[int],ubyte,ubyte,ubyte,ubyte,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (FullOpts)
         223 (15.04% of base) : 257983.dasm - System.Text.Tests.ToUtf16Tests:SomeNonAsciiInput() (FullOpts)
         211 ( 9.16% of base) : 181983.dasm - System.Numerics.Tests.Matrix3x2Tests:Matrix3x2MultiplyTest3():this (FullOpts)
         206 ( 6.32% of base) : 64266.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitNullCoalescingAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         191 ( 3.12% of base) : 298229.dasm - System.Text.RegularExpressions.Generator.RegexGenerator+<>c__DisplayClass25_0:<EmitTryMatchAtCurrentPosition>g__EmitLoop|33(System.Text.RegularExpressions.RegexNode):this (FullOpts)

Top method improvements (bytes):
       -1533 (-31.96% of base) : 115025.dasm - System.Drawing.Tests.ColorTranslatorTests+<SystemColors_TestData>d__0:MoveNext():ubyte:this (FullOpts)
       -1263 (-25.59% of base) : 215749.dasm - System.Tests.StringTests:OnlyWhiteSpaceTrim_Memory() (FullOpts)
       -1263 (-25.59% of base) : 232589.dasm - System.Tests.StringTests:OnlyWhiteSpaceTrim_Memory() (FullOpts)
       -1221 (-28.45% of base) : 115043.dasm - System.Drawing.Tests.ColorTranslatorTests+<HtmlColors_TestData>d__7:MoveNext():ubyte:this (FullOpts)
        -802 (-42.01% of base) : 181563.dasm - System.Buffers.Tests.NativeRangeTests:CreationTest() (FullOpts)
        -788 (-7.78% of base) : 25273.dasm - Microsoft.CSharp.RuntimeBinder.Tests.ImplicitConversionTests:NumericNullableConversions():this (FullOpts)
        -754 (-11.87% of base) : 59415.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:AddUserDefinedConversionsToExplicitCandidateSet(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UserDefinedConversionAnalysis],Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,ubyte,ubyte,byref):this (FullOpts)
        -732 (-11.03% of base) : 8200.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:AddUserDefinedConversionsToExplicitCandidateSet(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UserDefinedConversionAnalysis],Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,ubyte,ubyte,byref):this (FullOpts)
        -720 (-22.51% of base) : 115057.dasm - System.Drawing.ColorTranslator:InitializeHtmlSysColorTable() (FullOpts)
        -692 (-7.27% of base) : 180483.dasm - System.Numerics.Tensors.Tests.TensorTests:TensorFactoryCreateUninitializedTests() (FullOpts)
        -674 (-5.16% of base) : 159954.dasm - System.Memory.Tests.SequenceReader.SkipDelimiter:TryReadTo_SkipDelimiter():this (FullOpts)
        -621 (-5.95% of base) : 180574.dasm - System.Numerics.Tensors.Tests.TensorTests:TensorFactoryCreateTests() (FullOpts)
        -618 (-54.69% of base) : 152575.dasm - System.Linq.Enumerable:Max[System.Nullable`1[System.Decimal]](System.Collections.Generic.IEnumerable`1[System.Nullable`1[System.Decimal]],System.Collections.Generic.IComparer`1[System.Nullable`1[System.Decimal]]):System.Nullable`1[System.Decimal] (FullOpts)
        -607 (-10.96% of base) : 46494.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:AddUserDefinedConversionsToExplicitCandidateSet(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UserDefinedConversionAnalysis],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.String,byref):this (FullOpts)
        -592 (-10.59% of base) : 53258.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:AddUserDefinedConversionsToExplicitCandidateSet(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UserDefinedConversionAnalysis],Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.String,byref):this (FullOpts)
        -519 (-26.05% of base) : 115104.dasm - System.Drawing.ColorTranslator:FromOle(int):System.Drawing.Color (FullOpts)
        -497 (-5.88% of base) : 13907.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDeclarationComputer:ComputeDeclarations(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.SyntaxNode,System.Func`3[Microsoft.CodeAnalysis.SyntaxNode,System.Nullable`1[int],ubyte],ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Nullable`1[int],System.Threading.CancellationToken) (FullOpts)
        -485 (-4.30% of base) : 159968.dasm - System.Memory.Tests.SequenceReader.SkipDelimiter:TryReadTo_SkipDelimiter_Runs():this (FullOpts)
        -479 (-23.40% of base) : 183044.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4MultiplyTest1():this (FullOpts)
        -477 (-6.37% of base) : 24955.dasm - Microsoft.CSharp.RuntimeBinder.Tests.ImplicitConversionTests:NumericNullableToNullableConversions():this (FullOpts)

Top method regressions (percentages):
         120 (26.97% of base) : 163553.dasm - System.Buffers.Binary.Tests.BinaryReaderUnitTests:.cctor() (FullOpts)
          38 (21.59% of base) : 132070.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:WithAssemblyName(System.Reflection.Metadata.TypeName,System.String):System.Reflection.Metadata.TypeName (FullOpts)
          38 (20.65% of base) : 131917.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildCoreLibArrayTypeName(System.Type,int):System.Reflection.Metadata.TypeName (FullOpts)
          38 (19.39% of base) : 131863.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:BuildArrayTypeName(System.Reflection.Metadata.TypeName,int):System.Reflection.Metadata.TypeName (FullOpts)
          47 (18.88% of base) : 131923.dasm - System.Formats.Nrbf.Utils.TypeNameExtensions:ParseSystemRecordTypeName(System.String,System.Formats.Nrbf.PayloadOptions):System.Reflection.Metadata.TypeName (FullOpts)
         130 (16.84% of base) : 202862.dasm - System.Reflection.Metadata.BlobBuilder:ContentEquals(System.Reflection.Metadata.BlobBuilder):ubyte:this (FullOpts)
         137 (16.35% of base) : 156864.dasm - System.Linq.Enumerable:Max(System.Collections.Generic.IEnumerable`1[System.Decimal]):System.Decimal (FullOpts)
         137 (16.35% of base) : 155648.dasm - System.Linq.Enumerable:Min(System.Collections.Generic.IEnumerable`1[System.Decimal]):System.Decimal (FullOpts)
         230 (16.23% of base) : 257949.dasm - System.Text.Tests.FromUtf16Tests:SomeNonAsciiInput() (FullOpts)
         223 (15.04% of base) : 257983.dasm - System.Text.Tests.ToUtf16Tests:SomeNonAsciiInput() (FullOpts)
         893 (14.13% of base) : 163556.dasm - System.Buffers.Binary.Tests.BinaryReaderUnitTests:SpanWriteAndReadLittleEndianHeterogeneousStruct():this (FullOpts)
         500 (12.76% of base) : 66045.dasm - Microsoft.Extensions.Primitives.StringSegmentTest:StringSegment_CompareEqual_Globalized(System.String,System.String,int,int):this (FullOpts)
         255 (12.28% of base) : 172976.dasm - System.Net.Primitives.Functional.Tests.IPNetworkTest:TryFormatSpan_EnoughLength_Succeeds(System.String):this (FullOpts)
         119 (12.08% of base) : 115088.dasm - System.Drawing.Primitives.Tests.ColorTests:FromKnownColor(System.String,int,int,int,int):this (FullOpts)
         235 (11.95% of base) : 252922.dasm - System.Security.Cryptography.Xml.DSAKeyValue:GetXml(System.Xml.XmlDocument):System.Xml.XmlElement:this (FullOpts)
          88 (11.52% of base) : 191116.dasm - System.Xml.Xsl.XmlQueryType:Equals(System.Xml.Xsl.XmlQueryType):ubyte:this (FullOpts)
         746 (11.25% of base) : 163552.dasm - System.Buffers.Binary.Tests.BinaryReaderUnitTests:SpanWriteAndReadBigEndianHeterogeneousStruct():this (FullOpts)
          95 (11.05% of base) : 171407.dasm - System.Net.NegotiateAuthenticationPal+WindowsNegotiateAuthenticationPal:Wrap(System.ReadOnlySpan`1[ubyte],System.Buffers.IBufferWriter`1[ubyte],ubyte,byref):int:this (FullOpts)
          92 (10.95% of base) : 115048.dasm - System.Drawing.Primitives.Tests.ColorTests:FromOutOfRangeKnownColor(int):this (FullOpts)
         240 (10.94% of base) : 22700.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+BagState:UnshroudKeys(byref):this (FullOpts)

Top method improvements (percentages):
        -618 (-54.69% of base) : 152575.dasm - System.Linq.Enumerable:Max[System.Nullable`1[System.Decimal]](System.Collections.Generic.IEnumerable`1[System.Nullable`1[System.Decimal]],System.Collections.Generic.IComparer`1[System.Nullable`1[System.Decimal]]):System.Nullable`1[System.Decimal] (FullOpts)
        -408 (-53.19% of base) : 115068.dasm - System.Drawing.Primitives.Tests.ColorTests:IsNamedColor():this (FullOpts)
         -28 (-47.46% of base) : 110931.dasm - System.Diagnostics.Tests.PerformanceCounterTests+<>c__DisplayClass14_0:<PerformanceCounter_Increment>b__1():long:this (FullOpts)
         -28 (-47.46% of base) : 110970.dasm - System.Diagnostics.Tests.PerformanceCounterTests+<>c__DisplayClass15_0:<PerformanceCounter_IncrementBy_IncrementBy2>b__1():long:this (FullOpts)
        -802 (-42.01% of base) : 181563.dasm - System.Buffers.Tests.NativeRangeTests:CreationTest() (FullOpts)
        -297 (-38.87% of base) : 239092.dasm - System.Tests.ArraySegment_Tests`1[System.__Canon]:ToArray_Empty_ReturnsSameArray():this (FullOpts)
         -52 (-36.88% of base) : 5563.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGenerators(Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
       -1533 (-31.96% of base) : 115025.dasm - System.Drawing.Tests.ColorTranslatorTests+<SystemColors_TestData>d__0:MoveNext():ubyte:this (FullOpts)
        -258 (-31.39% of base) : 152596.dasm - System.Linq.Enumerable:Max[System.Nullable`1[long],System.Nullable`1[long]](System.Collections.Generic.IEnumerable`1[System.Nullable`1[long]],System.Func`2[System.Nullable`1[long],System.Nullable`1[long]]):System.Nullable`1[long] (FullOpts)
         -64 (-30.92% of base) : 297341.dasm - System.Text.Json.Tests.JsonElementWriteTests:WriteSingleValue(System.Text.Json.JsonDocument,System.Text.Json.Utf8JsonWriter):this (FullOpts)
         -57 (-30.65% of base) : 15428.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbolForSerializedType(System.String):System.__Canon:this (FullOpts)
       -1221 (-28.45% of base) : 115043.dasm - System.Drawing.Tests.ColorTranslatorTests+<HtmlColors_TestData>d__7:MoveNext():ubyte:this (FullOpts)
        -519 (-26.05% of base) : 115104.dasm - System.Drawing.ColorTranslator:FromOle(int):System.Drawing.Color (FullOpts)
       -1263 (-25.59% of base) : 215749.dasm - System.Tests.StringTests:OnlyWhiteSpaceTrim_Memory() (FullOpts)
       -1263 (-25.59% of base) : 232589.dasm - System.Tests.StringTests:OnlyWhiteSpaceTrim_Memory() (FullOpts)
        -309 (-24.70% of base) : 115168.dasm - System.Drawing.Primitives.Tests.ColorTests:UserPreferenceChangingEventTest():this (FullOpts)
         -27 (-24.55% of base) : 13386.dasm - Microsoft.CodeAnalysis.CSharp.Simplification.CSharpEscapingReducer+Rewriter:VisitToken(Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -71 (-24.23% of base) : 30354.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:InferredReturnTypeInference(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,byref):ubyte:this (FullOpts)
         -44 (-23.40% of base) : 19824.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerMethodSymbol:AddNullableTransforms(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]):this (FullOpts)
        -479 (-23.40% of base) : 183044.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4MultiplyTest1():this (FullOpts)


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: 12139986 (overridden on cmd)
Total bytes of diff: 12121016 (overridden on cmd)
Total bytes of delta: -18970 (-0.16 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         379 : 30469.dasm (14.93% of base)
         298 : 11640.dasm (7.54% of base)
         228 : 11645.dasm (6.33% of base)
         206 : 21149.dasm (6.35% of base)
         184 : 24802.dasm (6.96% of base)
         168 : 20727.dasm (3.79% of base)
         131 : 2919.dasm (3.96% of base)
         130 : 14946.dasm (7.78% of base)
         121 : 19693.dasm (5.52% of base)
         116 : 19514.dasm (6.93% of base)
         110 : 15791.dasm (5.12% of base)
         105 : 28209.dasm (7.43% of base)
         102 : 11226.dasm (10.49% of base)
          99 : 7902.dasm (2.95% of base)
          93 : 22121.dasm (8.49% of base)
          92 : 24755.dasm (4.70% of base)
          92 : 20921.dasm (7.25% of base)
          89 : 15329.dasm (2.85% of base)
          86 : 18128.dasm (7.65% of base)
          83 : 20959.dasm (5.18% of base)

Top file improvements (bytes):
        -754 : 17676.dasm (-11.93% of base)
        -376 : 5332.dasm (-1.66% of base)
        -344 : 1275.dasm (-2.53% of base)
        -328 : 1304.dasm (-2.74% of base)
        -314 : 1301.dasm (-2.63% of base)
        -233 : 15786.dasm (-6.06% of base)
        -216 : 17920.dasm (-4.56% of base)
        -197 : 1965.dasm (-19.39% of base)
        -197 : 312.dasm (-19.39% of base)
        -192 : 15585.dasm (-3.04% of base)
        -181 : 16060.dasm (-18.70% of base)
        -170 : 444.dasm (-17.19% of base)
        -166 : 2587.dasm (-17.33% of base)
        -156 : 19033.dasm (-5.69% of base)
        -155 : 1744.dasm (-17.22% of base)
        -155 : 90.dasm (-17.22% of base)
        -143 : 5371.dasm (-2.26% of base)
        -120 : 18498.dasm (-2.11% of base)
        -119 : 15353.dasm (-3.89% of base)
        -119 : 22343.dasm (-7.29% of base)

71 total files with Code Size differences (43 improved, 28 regressed), 20 unchanged.

Top method regressions (bytes):
         379 (14.93% of base) : 30469.dasm - System.RuntimeType:GetMember(System.String,int,int):System.Reflection.MemberInfo[]:this (FullOpts)
         298 ( 7.54% of base) : 11640.dasm - Microsoft.ML.Internal.Utilities.VBufferUtils:ApplyWithCore[float,float](byref,byref,Microsoft.ML.Internal.Utilities.VBufferUtils+PairManipulator`2[float,float],ubyte) (FullOpts)
         228 ( 6.33% of base) : 11645.dasm - Microsoft.ML.Internal.Utilities.VBufferUtils:ApplyInto[float,float,float](byref,byref,byref,System.Func`4[int,float,float,float]) (FullOpts)
         206 ( 6.35% of base) : 21149.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitNullCoalescingAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         184 ( 6.96% of base) : 24802.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedParameterSymbolBase:AddSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (FullOpts)
         168 ( 3.79% of base) : 20727.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitForEachIterationVariables(Microsoft.CodeAnalysis.CSharp.BoundForEachStatement):this (FullOpts)
         131 ( 3.96% of base) : 2919.dasm - FSharp.Compiler.CodeAnalysis.BackgroundCompiler+GetProjectOptionsFromScript@1343-1:Invoke(System.Threading.CancellationToken):Internal.Utilities.Library.ValueOrCancelled`1[System.Tuple`2[FSharp.Compiler.CodeAnalysis.FSharpProjectOptions,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Diagnostics.FSharpDiagnostic]]]:this (FullOpts)
         130 ( 7.78% of base) : 14946.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|24(System.Text.RegularExpressions.RegexNode,ubyte):this (FullOpts)
         121 ( 5.52% of base) : 19693.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:Fix(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],byref):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte] (FullOpts)
         116 ( 6.93% of base) : 19514.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitLocalDeclaration(Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         110 ( 5.12% of base) : 15791.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitMemberAccess(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbol:this (FullOpts)
         105 ( 7.43% of base) : 28209.dasm - System.RuntimeType:CreateInstanceImpl(int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
         102 (10.49% of base) : 11226.dasm - Microsoft.ML.Internal.Utilities.LineParser:ParseKeyThenNumbers(System.String,ubyte):System.ValueTuple`3[ubyte,System.String,float[]] (FullOpts)
          99 ( 2.95% of base) : 7902.dasm - SixLabors.ImageSharp.Formats.Png.PngEncoderCore:WriteTextChunks(System.IO.Stream,SixLabors.ImageSharp.Formats.Png.PngMetadata):this (FullOpts)
          93 ( 8.49% of base) : 22121.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetLastToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          92 ( 4.70% of base) : 24755.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:AddSynthesizedReturnTypeAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (FullOpts)
          92 ( 7.25% of base) : 20921.dasm - Microsoft.CodeAnalysis.CSharp.UnboundLambdaState:ReallyInferReturnType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Immutable.ImmutableArray`1[ubyte]):Microsoft.CodeAnalysis.CSharp.BoundLambda:this (FullOpts)
          89 ( 2.85% of base) : 15329.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 (FullOpts)
          86 ( 7.65% of base) : 18128.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ResolveMethodGroupInternal(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (FullOpts)
          83 ( 5.18% of base) : 20959.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<ReinferBinaryOperatorAndSetResult>g__visitOperandConversionAndPostConditions|187_2(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,byref):this (FullOpts)

Top method improvements (bytes):
        -754 (-11.93% of base) : 17676.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:AddUserDefinedConversionsToExplicitCandidateSet(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UserDefinedConversionAnalysis],Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,ubyte,ubyte,byref):this (FullOpts)
        -376 (-1.66% of base) : 5332.dasm - FSharp.Compiler.Lexer:token(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort]):FSharp.Compiler.Parser+token (FullOpts)
        -344 (-2.53% of base) : 1275.dasm - DemoBenchmarks.RagdollTubeBenchmark:AddRagdoll(System.Numerics.Vector3,System.Numerics.Quaternion,int,BepuPhysics.CollidableProperty`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupCollisionFilter],BepuPhysics.Simulation):DemoBenchmarks.RagdollTubeBenchmark+RagdollHandles (FullOpts)
        -328 (-2.74% of base) : 1304.dasm - DemoBenchmarks.RagdollTubeBenchmark:AddLeg(System.Numerics.Vector3,BepuPhysics.RigidPose,BepuPhysics.BodyHandle,byref,int,int,BepuPhysics.RigidPose,BepuPhysics.CollidableProperty`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupCollisionFilter],BepuPhysics.Constraints.SpringSettings,BepuPhysics.Simulation):DemoBenchmarks.RagdollTubeBenchmark+RagdollLegHandles (FullOpts)
        -314 (-2.63% of base) : 1301.dasm - DemoBenchmarks.RagdollTubeBenchmark:AddArm(float,System.Numerics.Vector3,BepuPhysics.RigidPose,BepuPhysics.BodyHandle,byref,int,int,BepuPhysics.RigidPose,BepuPhysics.CollidableProperty`1[DemoBenchmarks.RagdollTubeBenchmark+SubgroupCollisionFilter],BepuPhysics.Constraints.SpringSettings,BepuPhysics.Simulation):DemoBenchmarks.RagdollTubeBenchmark+RagdollArmHandles (FullOpts)
        -233 (-6.06% of base) : 15786.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArgumentOutboundAssignmentsAndPostConditions(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.NullableWalker+CompareExchangeInfo):this (FullOpts)
        -216 (-4.56% of base) : 17920.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDelegateMethodSymbol:AddDelegateMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol],Microsoft.CodeAnalysis.CSharp.Syntax.DelegateDeclarationSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
        -197 (-19.39% of base) : 1965.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts)
        -197 (-19.39% of base) : 312.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts)
        -192 (-3.04% of base) : 15585.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckAndCoerceArguments[System.__Canon](Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (FullOpts)
        -181 (-18.70% of base) : 16060.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeArguments(Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this (FullOpts)
        -170 (-17.19% of base) : 444.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
        -166 (-17.33% of base) : 2587.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
        -156 (-5.69% of base) : 19033.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddMemberToCandidateSet[System.__Canon](System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte,byref,ubyte,ubyte):this (FullOpts)
        -155 (-17.22% of base) : 1744.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -155 (-17.22% of base) : 90.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -143 (-2.26% of base) : 5371.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:rulesForBothSoftWhiteAndHardWhite(FSharp.Compiler.LexFilter+TokenTup):ubyte:this (FullOpts)
        -120 (-2.11% of base) : 18498.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:BetterFunctionMember[System.__Canon](Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],ubyte,byref):int:this (FullOpts)
        -119 (-7.29% of base) : 22343.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMemberCref(Microsoft.CodeAnalysis.CSharp.Syntax.MemberCrefSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]:this (FullOpts)
        -119 (-3.89% of base) : 15353.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValue(Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

Top method regressions (percentages):
         379 (14.93% of base) : 30469.dasm - System.RuntimeType:GetMember(System.String,int,int):System.Reflection.MemberInfo[]:this (FullOpts)
         102 (10.49% of base) : 11226.dasm - Microsoft.ML.Internal.Utilities.LineParser:ParseKeyThenNumbers(System.String,ubyte):System.ValueTuple`3[ubyte,System.String,float[]] (FullOpts)
          93 ( 8.49% of base) : 22121.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetLastToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         130 ( 7.78% of base) : 14946.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharRepeater|24(System.Text.RegularExpressions.RegexNode,ubyte):this (FullOpts)
          86 ( 7.65% of base) : 18128.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ResolveMethodGroupInternal(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (FullOpts)
         298 ( 7.54% of base) : 11640.dasm - Microsoft.ML.Internal.Utilities.VBufferUtils:ApplyWithCore[float,float](byref,byref,Microsoft.ML.Internal.Utilities.VBufferUtils+PairManipulator`2[float,float],ubyte) (FullOpts)
         105 ( 7.43% of base) : 28209.dasm - System.RuntimeType:CreateInstanceImpl(int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
          92 ( 7.25% of base) : 20921.dasm - Microsoft.CodeAnalysis.CSharp.UnboundLambdaState:ReallyInferReturnType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Immutable.ImmutableArray`1[ubyte]):Microsoft.CodeAnalysis.CSharp.BoundLambda:this (FullOpts)
          44 ( 7.24% of base) : 23644.dasm - Microsoft.CodeAnalysis.CSharp.SyntheticBoundNodeFactory:StoreToTemp(Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,ubyte,int,ubyte,Microsoft.CodeAnalysis.SyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocal:this (FullOpts)
         184 ( 6.96% of base) : 24802.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedParameterSymbolBase:AddSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (FullOpts)
         116 ( 6.93% of base) : 19514.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitLocalDeclaration(Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          20 ( 6.92% of base) : 20766.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol+<>c:<.cctor>b__146_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
         206 ( 6.35% of base) : 21149.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitNullCoalescingAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         228 ( 6.33% of base) : 11645.dasm - Microsoft.ML.Internal.Utilities.VBufferUtils:ApplyInto[float,float,float](byref,byref,byref,System.Func`4[int,float,float,float]) (FullOpts)
          11 ( 6.29% of base) : 16160.dasm - Microsoft.CodeAnalysis.MetadataTypeName:FromNamespaceAndTypeName(System.String,System.String,ubyte,int):Microsoft.CodeAnalysis.MetadataTypeName (FullOpts)
          62 ( 6.13% of base) : 11537.dasm - Microsoft.ML.Transforms.KeyToVectorMappingTransformer+Mapper+<>c__DisplayClass13_0:<MakeGetterInd>b__0(byref):this (FullOpts)
          68 ( 5.79% of base) : 15263.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         121 ( 5.52% of base) : 19693.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:Fix(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],byref):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte] (FullOpts)
          71 ( 5.27% of base) : 16313.dasm - Microsoft.CodeAnalysis.CSharp.Binder:LookupSymbolInAliases(System.Collections.Immutable.ImmutableDictionary`2[System.String,Microsoft.CodeAnalysis.CSharp.AliasAndUsingDirective],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.AliasAndExternAliasDirective],Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],int,ubyte,byref):this (FullOpts)
          45 ( 5.23% of base) : 29823.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteTryExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this (FullOpts)

Top method improvements (percentages):
         -57 (-30.65% of base) : 18348.dasm - Microsoft.CodeAnalysis.TypeNameDecoder`2[System.__Canon,System.__Canon]:GetTypeSymbolForSerializedType(System.String):System.__Canon:this (FullOpts)
         -71 (-24.23% of base) : 20914.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:InferredReturnTypeInference(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,byref):ubyte:this (FullOpts)
         -75 (-20.78% of base) : 5329.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:runWrappedLexerInConsistentLexbufState():FSharp.Compiler.LexFilter+TokenTup:this (FullOpts)
        -197 (-19.39% of base) : 1965.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts)
        -197 (-19.39% of base) : 312.dasm - System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts)
        -181 (-18.70% of base) : 16060.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeArguments(Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:this (FullOpts)
         -80 (-17.78% of base) : 17267.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:AllInterfacesWithDefinitionUseSiteDiagnostics(byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
         -51 (-17.77% of base) : 20769.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitLambda(Microsoft.CodeAnalysis.CSharp.BoundLambda,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.Optional`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState]):this (FullOpts)
        -166 (-17.33% of base) : 2587.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
        -155 (-17.22% of base) : 1744.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -155 (-17.22% of base) : 90.dasm - System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this (FullOpts)
        -170 (-17.19% of base) : 444.dasm - System.RuntimeType:GetPropertyImpl(System.String,int,System.Reflection.Binder,System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo:this (FullOpts)
         -80 (-17.13% of base) : 18413.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:AllEffectiveInterfacesWithDefinitionUseSiteDiagnostics(byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
         -22 (-15.94% of base) : 20007.dasm - Microsoft.CodeAnalysis.CSharp.ControlFlowPass:VisitTryBlock(Microsoft.CodeAnalysis.CSharp.BoundStatement,Microsoft.CodeAnalysis.CSharp.BoundTryStatement,byref):this (FullOpts)
         -12 (-15.19% of base) : 7646.dasm - SixLabors.ImageSharp.Processing.DefaultImageProcessorContext`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:GetCurrentSize():SixLabors.ImageSharp.Size:this (FullOpts)
         -97 (-15.09% of base) : 19487.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:get_IsVar():ubyte:this (FullOpts)
         -84 (-14.14% of base) : 19493.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:MemberGroupHidesByName[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],System.__Canon,byref):ubyte (FullOpts)
         -38 (-14.07% of base) : 19901.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:EffectiveInterfacesWithDefinitionUseSiteDiagnostics(byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
         -12 (-13.95% of base) : 7653.dasm - SixLabors.ImageSharp.Processing.DefaultImageProcessorContext`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ApplyProcessor(SixLabors.ImageSharp.Processing.Processors.IImageProcessor):SixLabors.ImageSharp.Processing.IImageProcessingContext:this (FullOpts)
         -45 (-13.85% of base) : 19659.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:LowerBoundArrayInference(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):ubyte:this (FullOpts)


smoke_tests.nativeaot.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: 4970147 (overridden on cmd)
Total bytes of diff: 4969593 (overridden on cmd)
Total bytes of delta: -554 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
         135 : 9209.dasm (4.21% of base)
          78 : 9418.dasm (5.11% of base)
          56 : 5766.dasm (4.07% of base)
          53 : 9592.dasm (4.01% of base)
          49 : 13753.dasm (9.44% of base)
          49 : 9562.dasm (9.46% of base)
          48 : 5780.dasm (9.02% of base)
          41 : 5173.dasm (4.06% of base)
          21 : 14422.dasm (3.41% of base)
          21 : 19388.dasm (3.41% of base)
          21 : 16907.dasm (3.41% of base)
          20 : 5894.dasm (10.70% of base)
          20 : 3043.dasm (3.24% of base)
          20 : 351.dasm (3.24% of base)
          18 : 13913.dasm (0.76% of base)
          18 : 10553.dasm (0.76% of base)
          18 : 10633.dasm (1.65% of base)
          18 : 13817.dasm (1.65% of base)
          17 : 5879.dasm (1.47% of base)
          17 : 11919.dasm (1.76% of base)

Top file improvements (bytes):
         -83 : 10678.dasm (-1.64% of base)
         -53 : 8648.dasm (-22.27% of base)
         -51 : 9245.dasm (-1.67% of base)
         -34 : 11342.dasm (-2.77% of base)
         -34 : 6649.dasm (-2.51% of base)
         -32 : 7696.dasm (-13.62% of base)
         -32 : 12695.dasm (-13.62% of base)
         -30 : 12458.dasm (-2.48% of base)
         -30 : 7647.dasm (-2.46% of base)
         -25 : 9800.dasm (-3.02% of base)
         -24 : 12457.dasm (-3.03% of base)
         -24 : 7646.dasm (-3.01% of base)
         -23 : 7152.dasm (-2.16% of base)
         -23 : 10701.dasm (-4.86% of base)
         -23 : 9212.dasm (-2.59% of base)
         -23 : 11523.dasm (-2.16% of base)
         -23 : 9400.dasm (-3.16% of base)
         -22 : 11521.dasm (-2.28% of base)
         -22 : 7150.dasm (-2.28% of base)
         -22 : 10207.dasm (-9.32% of base)

62 total files with Code Size differences (35 improved, 27 regressed), 20 unchanged.

Top method regressions (bytes):
         135 ( 4.21% of base) : 9209.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileBinaryExpression(System.Linq.Expressions.Expression):this (FullOpts)
          78 ( 5.11% of base) : 9418.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileLiftedLogicalBinaryExpression(System.Linq.Expressions.BinaryExpression,ubyte):this (FullOpts)
          56 ( 4.07% of base) : 5766.dasm - System.Reflection.DynamicInvokeInfo:.ctor(System.Reflection.MethodBase,long):this (FullOpts)
          53 ( 4.01% of base) : 9592.dasm - System.Reflection.DynamicInvokeInfo:.ctor(System.Reflection.MethodBase,long):this (FullOpts)
          49 ( 9.44% of base) : 13753.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts)
          49 ( 9.46% of base) : 9562.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts)
          48 ( 9.02% of base) : 5780.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts)
          41 ( 4.06% of base) : 5173.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)
          21 ( 3.41% of base) : 14422.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:DeadlockAwareAcquire(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle,ulong):ubyte (FullOpts)
          21 ( 3.41% of base) : 19388.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:DeadlockAwareAcquire(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle,ulong):ubyte (FullOpts)
          21 ( 3.41% of base) : 16907.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:DeadlockAwareAcquire(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle,ulong):ubyte (FullOpts)
          20 (10.70% of base) : 5894.dasm - System.DefaultBinder:CompareMethodSig(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
          20 ( 3.24% of base) : 3043.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:DeadlockAwareAcquire(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle,ulong):ubyte (FullOpts)
          20 ( 3.24% of base) : 351.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:DeadlockAwareAcquire(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle,ulong):ubyte (FullOpts)
          18 ( 0.76% of base) : 13913.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
          18 ( 0.76% of base) : 10553.dasm - Internal.Reflection.Extensions.NonPortable.CustomAttributeInstantiator:Instantiate(System.Reflection.CustomAttributeData):System.Attribute (FullOpts)
          18 ( 1.65% of base) : 10633.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          18 ( 1.65% of base) : 13817.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          17 ( 1.47% of base) : 5879.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          17 ( 1.76% of base) : 11919.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)

Top method improvements (bytes):
         -83 (-1.64% of base) : 10678.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         -53 (-22.27% of base) : 8648.dasm - System.Func`2[Generics+TestDelegateFatFunctionPointers+BigStruct,Generics+TestDelegateFatFunctionPointers+BigStruct]:InvokeMulticastThunk(Generics+TestDelegateFatFunctionPointers+BigStruct):Generics+TestDelegateFatFunctionPointers+BigStruct:this (FullOpts)
         -51 (-1.67% of base) : 9245.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileTryExpression(System.Linq.Expressions.Expression):this (FullOpts)
         -34 (-2.77% of base) : 11342.dasm - System.Reflection.Runtime.CustomAttributes.RuntimeCustomAttributeData:ToString():System.String:this (FullOpts)
         -34 (-2.51% of base) : 6649.dasm - System.Reflection.Runtime.CustomAttributes.RuntimeCustomAttributeData:ToString():System.String:this (FullOpts)
         -32 (-13.62% of base) : 7696.dasm - System.TimeZoneInfo:GetUtcOffset(System.DateTime,System.TimeZoneInfo):System.TimeSpan (FullOpts)
         -32 (-13.62% of base) : 12695.dasm - System.TimeZoneInfo:GetUtcOffset(System.DateTime,System.TimeZoneInfo):System.TimeSpan (FullOpts)
         -30 (-2.48% of base) : 12458.dasm - System.Reflection.Runtime.CustomAttributes.NativeFormat.NativeFormatCustomAttributeData:GetConstructorArguments(ubyte):System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
         -30 (-2.46% of base) : 7647.dasm - System.Reflection.Runtime.CustomAttributes.NativeFormat.NativeFormatCustomAttributeData:GetConstructorArguments(ubyte):System.Collections.Generic.IList`1[System.Reflection.CustomAttributeTypedArgument]:this (FullOpts)
         -25 (-3.02% of base) : 9800.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileMemberAssignment(ubyte,System.Reflection.MemberInfo,System.Linq.Expressions.Expression,ubyte):this (FullOpts)
         -24 (-3.03% of base) : 12457.dasm - System.Reflection.Runtime.CustomAttributes.NativeFormat.NativeFormatCustomAttributeData:GetNamedArguments(ubyte):System.Collections.Generic.IList`1[System.Reflection.CustomAttributeNamedArgument]:this (FullOpts)
         -24 (-3.01% of base) : 7646.dasm - System.Reflection.Runtime.CustomAttributes.NativeFormat.NativeFormatCustomAttributeData:GetNamedArguments(ubyte):System.Collections.Generic.IList`1[System.Reflection.CustomAttributeNamedArgument]:this (FullOpts)
         -23 (-2.16% of base) : 7152.dasm - System.DateTimeFormat:FormatCustomizedTimeZone[ushort](System.DateTime,System.TimeSpan,int,ubyte,byref) (FullOpts)
         -23 (-2.16% of base) : 11523.dasm - System.DateTimeFormat:FormatCustomizedTimeZone[ushort](System.DateTime,System.TimeSpan,int,ubyte,byref) (FullOpts)
         -23 (-2.59% of base) : 9212.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileCoalesceBinaryExpression(System.Linq.Expressions.Expression):this (FullOpts)
         -23 (-3.16% of base) : 9400.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileIndexAssignment(System.Linq.Expressions.BinaryExpression,ubyte):this (FullOpts)
         -23 (-4.86% of base) : 10701.dasm - System.Reflection.Runtime.BindingFlagSupport.Shared:QualifiesBasedOnParameterCount(System.Reflection.MethodBase,int,int,System.Type[]):ubyte (FullOpts)
         -22 (-2.28% of base) : 11521.dasm - System.DateTimeFormat:FormatDigits[ushort](byref,int,int) (FullOpts)
         -22 (-2.28% of base) : 7150.dasm - System.DateTimeFormat:FormatDigits[ushort](byref,int,int) (FullOpts)
         -22 (-9.32% of base) : 10207.dasm - System.Reflection.Runtime.PropertyInfos.RuntimePropertyInfo:get_PropertyType():System.Type:this (FullOpts)

Top method regressions (percentages):
          20 (10.70% of base) : 5894.dasm - System.DefaultBinder:CompareMethodSig(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
          49 ( 9.46% of base) : 9562.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts)
          49 ( 9.44% of base) : 13753.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts)
          48 ( 9.02% of base) : 5780.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts)
          78 ( 5.11% of base) : 9418.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileLiftedLogicalBinaryExpression(System.Linq.Expressions.BinaryExpression,ubyte):this (FullOpts)
         135 ( 4.21% of base) : 9209.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileBinaryExpression(System.Linq.Expressions.Expression):this (FullOpts)
          56 ( 4.07% of base) : 5766.dasm - System.Reflection.DynamicInvokeInfo:.ctor(System.Reflection.MethodBase,long):this (FullOpts)
          41 ( 4.06% of base) : 5173.dasm - System.Threading.ManualResetEventSlim:Wait(int,System.Threading.CancellationToken):ubyte:this (FullOpts)
          53 ( 4.01% of base) : 9592.dasm - System.Reflection.DynamicInvokeInfo:.ctor(System.Reflection.MethodBase,long):this (FullOpts)
           7 ( 3.91% of base) : 12184.dasm - System.Reflection.Runtime.CustomAttributes.RuntimeCustomAttributeData:ResolveAttributeConstructor(System.Type,System.Type[]):System.Reflection.ConstructorInfo (FullOpts)
          12 ( 3.60% of base) : 10384.dasm - System.DefaultBinder:ExactBinding(System.Reflection.MethodBase[],System.Type[]):System.Reflection.MethodBase (FullOpts)
           7 ( 3.45% of base) : 6998.dasm - System.Reflection.Runtime.CustomAttributes.RuntimeCustomAttributeData:ResolveAttributeConstructor(System.Type,System.Type[]):System.Reflection.ConstructorInfo (FullOpts)
          21 ( 3.41% of base) : 14422.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:DeadlockAwareAcquire(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle,ulong):ubyte (FullOpts)
          21 ( 3.41% of base) : 19388.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:DeadlockAwareAcquire(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle,ulong):ubyte (FullOpts)
          21 ( 3.41% of base) : 16907.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:DeadlockAwareAcquire(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle,ulong):ubyte (FullOpts)
          20 ( 3.24% of base) : 3043.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:DeadlockAwareAcquire(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle,ulong):ubyte (FullOpts)
          20 ( 3.24% of base) : 351.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:DeadlockAwareAcquire(System.Runtime.CompilerServices.ClassConstructorRunner+CctorHandle,ulong):ubyte (FullOpts)
           4 ( 2.52% of base) : 11247.dasm - System.DefaultBinder:CompareMethodSig(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
           2 ( 2.00% of base) : 4446.dasm - System.IO.Path:GetFileNameWithoutExtension(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (FullOpts)
           2 ( 2.00% of base) : 1148.dasm - System.IO.Path:GetFileNameWithoutExtension(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (FullOpts)

Top method improvements (percentages):
         -53 (-22.27% of base) : 8648.dasm - System.Func`2[Generics+TestDelegateFatFunctionPointers+BigStruct,Generics+TestDelegateFatFunctionPointers+BigStruct]:InvokeMulticastThunk(Generics+TestDelegateFatFunctionPointers+BigStruct):Generics+TestDelegateFatFunctionPointers+BigStruct:this (FullOpts)
         -11 (-13.75% of base) : 10330.dasm - System.Reflection.Runtime.FieldInfos.NativeFormat.NativeFormatRuntimeFieldInfo:get_FieldRuntimeType():System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
         -32 (-13.62% of base) : 7696.dasm - System.TimeZoneInfo:GetUtcOffset(System.DateTime,System.TimeZoneInfo):System.TimeSpan (FullOpts)
         -32 (-13.62% of base) : 12695.dasm - System.TimeZoneInfo:GetUtcOffset(System.DateTime,System.TimeZoneInfo):System.TimeSpan (FullOpts)
         -11 (-12.64% of base) : 5854.dasm - System.Reflection.Runtime.FieldInfos.NativeFormat.NativeFormatRuntimeFieldInfo:get_FieldRuntimeType():System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo:this (FullOpts)
         -18 (-11.25% of base) : 14509.dasm - System.CrashInfo:WriteChars(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -18 (-11.25% of base) : 19469.dasm - System.CrashInfo:WriteChars(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -18 (-11.25% of base) : 16971.dasm - System.CrashInfo:WriteChars(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -15 (-9.49% of base) : 416.dasm - System.CrashInfo:WriteChars(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -15 (-9.49% of base) : 3152.dasm - System.CrashInfo:WriteChars(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -22 (-9.32% of base) : 10207.dasm - System.Reflection.Runtime.PropertyInfos.RuntimePropertyInfo:get_PropertyType():System.Type:this (FullOpts)
         -18 (-7.41% of base) : 7283.dasm - System.Reflection.Runtime.PropertyInfos.RuntimePropertyInfo:get_PropertyType():System.Type:this (FullOpts)
         -20 (-7.12% of base) : 4140.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (FullOpts)
         -20 (-7.12% of base) : 12378.dasm - System.Reflection.Metadata.TypeNameParserHelpers:IsBeginningOfGenericArgs(byref,byref):ubyte (FullOpts)
          -7 (-5.19% of base) : 29915.dasm - System.Number:Int128DivMod1E19(byref):ulong (FullOpts)
         -17 (-5.17% of base) : 12167.dasm - System.Reflection.Runtime.MethodInfos.RuntimeNamedMethodInfo`1[System.Reflection.Runtime.MethodInfos.NativeFormat.NativeFormatMethodCommon]:get_GenericTypeParameters():System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo[]:this (FullOpts)
         -23 (-4.86% of base) : 10701.dasm - System.Reflection.Runtime.BindingFlagSupport.Shared:QualifiesBasedOnParameterCount(System.Reflection.MethodBase,int,int,System.Type[]):ubyte (FullOpts)
         -17 (-4.86% of base) : 5096.dasm - System.Reflection.Runtime.MethodInfos.RuntimeNamedMethodInfo`1[System.Reflection.Runtime.MethodInfos.NativeFormat.NativeFormatMethodCommon]:get_GenericTypeParameters():System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo[]:this (FullOpts)
         -20 (-4.75% of base) : 14417.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:EnsureClassConstructorRun(ulong) (FullOpts)
         -20 (-4.75% of base) : 19368.dasm - System.Runtime.CompilerServices.ClassConstructorRunner:EnsureClassConstructorRun(ulong) (FullOpts)


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment