Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created October 5, 2023 01:06
Show Gist options
  • Save MihuBot/d812aaa1becd37213321cd459c526316 to your computer and use it in GitHub Desktop.
Save MihuBot/d812aaa1becd37213321cd459c526316 to your computer and use it in GitHub Desktop.
JIT diffs CoreLib improvements for https://github.com/MihuBot/runtime-utils/issues/200

Top method improvements

-160 (-8.097% of base) - System.Threading.Tasks.Task:RunContinuations(System.Object):this
 ; Assembly listing for method System.Threading.Tasks.Task:RunContinuations(System.Object):this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 11 single block inlinees; 15 inlinees without PGO data
+; 0 inlinees with PGO data; 8 single block inlinees; 14 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 17, 26.50)     ref  ->  x19         this class-hnd single-def <System.Threading.Tasks.Task>
-;  V01 arg1         [V01,T32] (  8,  5.12)     ref  ->  x20         class-hnd single-def <System.Object>
-;  V02 loc0         [V02,T09] ( 13, 16.50)     ref  ->  x22         class-hnd exact single-def <System.Threading.Tasks.TplEventSource>
-;  V03 loc1         [V03,T23] (  5,  8   )   ubyte  ->  x23        
-;  V04 loc2         [V04,T17] ( 10, 11.50)   ubyte  ->  x24        
-;  V05 loc3         [V05,T00] ( 16, 32.50)     ref  ->  x25         class-hnd single-def <System.Collections.Generic.List`1[System.Object]>
-;  V06 loc4         [V06,T20] (  5,  9.50)     int  ->  x20        
+;  V00 this         [V00,T03] ( 16, 24.50)     ref  ->  x19         this class-hnd single-def <System.Threading.Tasks.Task>
+;  V01 arg1         [V01,T33] (  8,  5.12)     ref  ->  x20         class-hnd single-def <System.Object>
+;  V02 loc0         [V02,T07] ( 13, 16.50)     ref  ->  x21         class-hnd exact single-def <System.Threading.Tasks.TplEventSource>
+;  V03 loc1         [V03,T18] (  5,  8   )   ubyte  ->  x22        
+;  V04 loc2         [V04,T12] ( 10, 11.50)   ubyte  ->  x23        
+;  V05 loc3         [V05,T00] ( 16, 32.50)     ref  ->  x24         class-hnd single-def <System.Collections.Generic.List`1[System.Object]>
+;  V06 loc4         [V06,T15] (  5,  9.50)     int  ->  x20        
 ;  V07 loc5         [V07,T42] (  3,  2.50)     ref  ->   x0         class-hnd single-def <System.Runtime.CompilerServices.IAsyncStateMachineBox>
 ;  V08 loc6         [V08,T46] (  4,  1.75)     ref  ->   x0         class-hnd exact <System.Action>
 ;  V09 loc7         [V09,T43] (  4,  2   )     ref  ->   x0         class-hnd single-def <System.Threading.Tasks.TaskContinuation>
 ;  V10 loc8         [V10,T47] (  3,  1.50)     ref  ->   x1         class-hnd single-def <System.Threading.Tasks.ITaskCompletionAction>
-;  V11 loc9         [V11,T52] (  2,  0   )     ref  ->  [fp+0x20]  class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Object]>
+;  V11 loc9         [V11,T52] (  2,  0   )     ref  ->  [fp+0x28]  class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Object]>
 ;  V12 loc10        [V12    ] (  5,  2   )   ubyte  ->  [fp+0x50]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V13 loc11        [V13,T36] (  3,  4.50)   ubyte  ->  x26        
-;  V14 loc12        [V14,T01] ( 11, 32.50)     int  ->  x27        
-;  V15 loc13        [V15,T06] (  9, 20.50)     ref  ->  [fp+0x18]  class-hnd spill-single-def <System.Object>
-;  V16 loc14        [V16,T18] (  5, 10   )     ref  ->  [fp+0x10]  class-hnd exact spill-single-def <System.Threading.Tasks.ContinueWithTaskContinuation>
-;  V17 loc15        [V17,T33] (  3,  6   )     ref  ->   x0         class-hnd <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-;  V18 loc16        [V18,T35] (  2,  4   )     ref  ->   x0         class-hnd exact <System.Action>
-;  V19 loc17        [V19,T02] ( 10, 30.50)     int  ->  x26        
-;  V20 loc18        [V20,T08] (  7, 18   )     ref  ->  x27         class-hnd <System.Object>
-;  V21 loc19        [V21,T34] (  3,  6   )     ref  ->   x0         class-hnd <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-;  V22 loc20        [V22,T24] (  3,  6   )     ref  ->   x0         class-hnd exact <System.Action>
-;  V23 loc21        [V23,T25] (  4,  8   )     ref  ->   x0         class-hnd <System.Threading.Tasks.TaskContinuation>
+;  V13 loc11        [V13,T37] (  3,  4.50)   ubyte  ->  x25        
+;  V14 loc12        [V14,T01] (  9, 28.50)     int  ->  x26        
+;  V15 loc13        [V15,T04] (  9, 20.50)     ref  ->  [fp+0x20]  class-hnd spill-single-def <System.Object>
+;  V16 loc14        [V16,T13] (  5, 10   )     ref  ->  [fp+0x18]  class-hnd exact spill-single-def <System.Threading.Tasks.ContinueWithTaskContinuation>
+;  V17 loc15        [V17,T34] (  3,  6   )     ref  ->   x0         class-hnd <System.Runtime.CompilerServices.IAsyncStateMachineBox>
+;  V18 loc16        [V18,T36] (  2,  4   )     ref  ->   x0         class-hnd exact <System.Action>
+;  V19 loc17        [V19,T02] (  9, 28.50)     int  ->  x25        
+;  V20 loc18        [V20,T06] (  7, 18   )     ref  ->  x26         class-hnd <System.Object>
+;  V21 loc19        [V21,T35] (  3,  6   )     ref  ->   x0         class-hnd <System.Runtime.CompilerServices.IAsyncStateMachineBox>
+;  V22 loc20        [V22,T19] (  3,  6   )     ref  ->   x0         class-hnd exact <System.Action>
+;  V23 loc21        [V23,T20] (  4,  8   )     ref  ->   x0         class-hnd <System.Threading.Tasks.TaskContinuation>
 ;# V24 OutArgs      [V24    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V25 tmp1         [V25,T44] (  3,  2   )     int  ->   x0        
 ;* V26 tmp2         [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Action>
 ;  V27 tmp3         [V27,T49] (  3,  1.25)    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;  V28 tmp4         [V28,T41] (  5,  3.75)     ref  ->  x25         class-hnd "spilling QMark2" <System.Collections.Generic.List`1[System.Object]>
+;  V28 tmp4         [V28,T41] (  5,  3.75)     ref  ->  x24         class-hnd "spilling QMark2" <System.Collections.Generic.List`1[System.Object]>
 ;* V29 tmp5         [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Action>
 ;* V30 tmp6         [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Threading.Tasks.ContinueWithTaskContinuation>
 ;* V31 tmp7         [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Action>
-;  V32 tmp8         [V32,T22] (  3,  9   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;  V33 tmp9         [V33,T21] (  3,  9   )     ref  ->   x0         class-hnd "spilling QMark2" <System.Threading.Tasks.TaskContinuation>
-;  V34 tmp10        [V34,T45] (  2,  2   )     int  ->  x24         "Inlining Arg"
+;  V32 tmp8         [V32,T17] (  3,  9   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V33 tmp9         [V33,T16] (  3,  9   )     ref  ->   x0         class-hnd "spilling QMark2" <System.Threading.Tasks.TaskContinuation>
+;  V34 tmp10        [V34,T45] (  2,  2   )     int  ->  x23         "Inlining Arg"
 ;* V35 tmp11        [V35,T50] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V36 tmp12        [V36,T38] (  2,  4   )     int  ->   x0         "Inline stloc first use temp"
-;  V37 tmp13        [V37,T26] (  2,  8   )     int  ->   x3         "Inlining Arg"
-;  V38 tmp14        [V38    ] (  2,  8   )     ref  ->  [fp+0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
-;  V39 tmp15        [V39,T27] (  2,  8   )    long  ->   x4         "Inlining Arg"
-;  V40 tmp16        [V40,T39] (  2,  4   )     int  ->   x0         "Inline stloc first use temp"
-;  V41 tmp17        [V41,T28] (  2,  8   )     int  ->   x2         "Inlining Arg"
-;  V42 tmp18        [V42    ] (  2,  8   )     ref  ->  [fp+0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
-;  V43 tmp19        [V43,T29] (  2,  8   )    long  ->   x4         "Inlining Arg"
-;  V44 tmp20        [V44,T40] (  2,  4   )     int  ->   x0         "Inline stloc first use temp"
-;  V45 tmp21        [V45,T30] (  2,  8   )     int  ->   x2         "Inlining Arg"
-;  V46 tmp22        [V46    ] (  2,  8   )     ref  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
-;  V47 tmp23        [V47,T31] (  2,  8   )    long  ->   x4         "Inlining Arg"
-;  V48 tmp24        [V48,T10] (  4, 16   )     ref  ->  x27         class-hnd "Inlining Arg" <System.Object>
-;  V49 tmp25        [V49,T11] (  4, 16   )     ref  ->   x1         class-hnd exact "NewObj constructor temp" <System.Threading.Tasks.CompletionActionInvoker>
-;  V50 tmp26        [V50,T04] (  3, 24   )     ref  ->   x0         "arr expr"
-;  V51 tmp27        [V51,T14] (  3, 12   )     ref  ->  x28         "arr expr"
-;  V52 tmp28        [V52,T15] (  3, 12   )     ref  ->   x0         "arr expr"
-;  V53 tmp29        [V53,T05] (  3, 24   )     ref  ->   x0         "arr expr"
-;  V54 tmp30        [V54,T16] (  3, 12   )     ref  ->   x0         "arr expr"
-;  V55 PSPSym       [V55,T51] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
-;  V56 cse0         [V56,T48] (  3,  1.50)     int  ->   x1         "CSE - moderate"
-;  V57 cse1         [V57,T12] (  4, 12   )     ref  ->  x28         "CSE - moderate"
-;  V58 cse2         [V58,T13] (  4, 12   )    long  ->  [fp+0x30]  spill-single-def "CSE - moderate"
-;  V59 cse3         [V59,T07] (  9, 18   )   byref  ->  x28         "CSE - aggressive"
-;  V60 cse4         [V60,T19] (  5, 10   )    long  ->  [fp+0x28]  spill-single-def "CSE - moderate"
-;  V61 cse5         [V61,T37] (  3,  4   )    long  ->  x21         "CSE - moderate"
+;* V36 tmp12        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Object>
+;  V37 tmp13        [V37,T10] (  3, 12   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <System.Object[]>
+;  V38 tmp14        [V38,T38] (  2,  4   )     int  ->   x0         "Inline stloc first use temp"
+;  V39 tmp15        [V39,T25] (  2,  8   )     int  ->   x2         "Inlining Arg"
+;  V40 tmp16        [V40    ] (  2,  8   )     ref  ->  [fp+0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+;  V41 tmp17        [V41,T26] (  2,  8   )    long  ->   x4         "Inlining Arg"
+;  V42 tmp18        [V42,T39] (  2,  4   )     int  ->   x0         "Inline stloc first use temp"
+;  V43 tmp19        [V43,T27] (  2,  8   )     int  ->   x2         "Inlining Arg"
+;  V44 tmp20        [V44    ] (  2,  8   )     ref  ->  [fp+0x40]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+;  V45 tmp21        [V45,T28] (  2,  8   )    long  ->   x4         "Inlining Arg"
+;* V46 tmp22        [V46    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Object>
+;  V47 tmp23        [V47,T11] (  3, 12   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <System.Object[]>
+;  V48 tmp24        [V48,T40] (  2,  4   )     int  ->   x0         "Inline stloc first use temp"
+;  V49 tmp25        [V49,T29] (  2,  8   )     int  ->   x2         "Inlining Arg"
+;  V50 tmp26        [V50    ] (  2,  8   )     ref  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+;  V51 tmp27        [V51,T30] (  2,  8   )    long  ->   x4         "Inlining Arg"
+;  V52 tmp28        [V52,T21] (  2,  8   )     ref  ->  x27         "arr expr"
+;  V53 tmp29        [V53,T22] (  2,  8   )     ref  ->   x0         "arr expr"
+;  V54 tmp30        [V54,T23] (  2,  8   )     ref  ->   x0         "arr expr"
+;  V55 tmp31        [V55,T24] (  2,  8   )     ref  ->   x1         "argument with side effect"
+;  V56 PSPSym       [V56,T51] (  1,  1   )    long  ->  [fp+0x58]  do-not-enreg[V] "PSPSym"
+;  V57 cse0         [V57,T48] (  3,  1.50)     int  ->   x1         "CSE - moderate"
+;  V58 cse1         [V58,T08] (  4, 12   )     ref  ->  x27         "CSE - aggressive"
+;  V59 cse2         [V59,T09] (  4, 12   )    long  ->  x28         "CSE - aggressive"
+;  V60 cse3         [V60,T31] (  2,  8   )     int  ->   x1         "CSE - aggressive"
+;  V61 cse4         [V61,T32] (  2,  8   )     int  ->   x1         "CSE - aggressive"
+;  V62 cse5         [V62,T05] (  9, 18   )   byref  ->  x27         "CSE - aggressive"
+;  V63 cse6         [V63,T14] (  5, 10   )    long  ->  [fp+0x30]  spill-single-def "CSE - moderate"
 ;
 ; Lcl frame size = 80
 
 G_M51094_IG01:
             stp     fp, lr, [sp, #-0xB0]!
             stp     x19, x20, [sp, #0x60]
             stp     x21, x22, [sp, #0x70]
             stp     x23, x24, [sp, #0x80]
             stp     x25, x26, [sp, #0x90]
             stp     x27, x28, [sp, #0xA0]
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x40]	// [V42 tmp18], [V38 tmp14]
-            str     xzr, [fp, #0x38]	// [V46 tmp22]
+            stp     xzr, xzr, [fp, #0x40]	// [V44 tmp20], [V40 tmp16]
+            str     xzr, [fp, #0x38]	// [V50 tmp26]
             add     x2, sp, #176
-            str     x2, [fp, #0x58]	// [V55 PSPSym]
+            str     x2, [fp, #0x58]	// [V56 PSPSym]
             mov     x19, x0
             mov     x20, x1
 						;; size=52 bbWeight=1 PerfScore 11.00
 G_M51094_IG02:
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     w0, [x0]
-            tbz     w0, #0, G_M51094_IG57
+            tbz     w0, #0, G_M51094_IG55
 						;; size=20 bbWeight=1 PerfScore 5.50
 G_M51094_IG03:
-            movz    x21, #0xD1FFAB1E
-            movk    x21, #0xD1FFAB1E LSL #16
-            movk    x21, #0xD1FFAB1E LSL #32
-            ldr     x22, [x21, #0xD1FFAB1E]
-            ldrb    w23, [x22, #0x9D]
-            cbz     w23, G_M51094_IG05
+            movz    x0, #0xD1FFAB1E      // data for System.Threading.Tasks.TplEventSource:Log
+            movk    x0, #0xD1FFAB1E LSL #16
+            movk    x0, #0xD1FFAB1E LSL #32
+            ldr     x21, [x0]
+            ldrb    w22, [x21, #0x9D]
+            cbz     w22, G_M51094_IG05
 						;; size=24 bbWeight=1 PerfScore 8.50
 G_M51094_IG04:
             mov     x0, x19
             movz    x1, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:get_Id():int:this
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
-            sxtw    w24, w0
-            ldrb    w1, [x22, #0x9D]
+            sxtw    w23, w0
+            ldrb    w1, [x21, #0x9D]
             cbz     w1, G_M51094_IG05
-            ldr     x3, [x22, #0x80]
-            ldr     w2, [x22, #0x98]
-            mov     x0, x22
+            ldr     x3, [x21, #0x80]
+            ldr     w2, [x21, #0x98]
+            mov     x0, x21
             mov     w4, #4
             mov     x5, #32
             mov     w6, wzr
             movz    x7, #0xD1FFAB1E      // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
             movk    x7, #0xD1FFAB1E LSL #16
             movk    x7, #0xD1FFAB1E LSL #32
             ldr     x7, [x7]
             blr     x7
             cbz     w0, G_M51094_IG05
-            mov     x0, x22
-            mov     w2, w24
+            mov     x0, x21
+            mov     w2, w23
             mov     w1, #17
             mov     w3, wzr
             movz    x4, #0xD1FFAB1E      // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
             blr     x4
 						;; size=120 bbWeight=0.50 PerfScore 16.25
 G_M51094_IG05:
             add     x0, x19, #52
             ldapr   w0, [x0]
             tbnz    w0, #6, G_M51094_IG07
 						;; size=12 bbWeight=1 PerfScore 4.50
 G_M51094_IG06:
             bl      System.Runtime.CompilerServices.RuntimeHelpers:TryEnsureSufficientExecutionStack():ubyte
             b       G_M51094_IG08
 						;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M51094_IG07:
             mov     w0, wzr
 						;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M51094_IG08:
-            uxtb    w24, w0
+            uxtb    w23, w0
             mov     x1, x20
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_ISINSTANCEOFINTERFACE
             cbnz    x0, G_M51094_IG12
 						;; size=28 bbWeight=1 PerfScore 4.50
 G_M51094_IG09:
             mov     x0, x20
             cbz     x0, G_M51094_IG11
 						;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M51094_IG10:
             ldr     x1, [x0]
             movz    x2, #0xD1FFAB1E
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             cmp     x1, x2
             beq     G_M51094_IG13
 						;; size=24 bbWeight=0.25 PerfScore 1.50
 G_M51094_IG11:
             mov     x1, x20
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_ISINSTANCEOFCLASS
             cbnz    x0, G_M51094_IG14
             mov     x1, x20
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_ISINSTANCEOFINTERFACE
             mov     x1, x0
             cbnz    x1, G_M51094_IG15
             b       G_M51094_IG16
 						;; size=56 bbWeight=0.50 PerfScore 4.75
 G_M51094_IG12:
-            mov     w1, w24
+            mov     w1, w23
             movz    x2, #0xD1FFAB1E      // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Runtime.CompilerServices.IAsyncStateMachineBox,ubyte)
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            b       G_M51094_IG54
+            b       G_M51094_IG52
 						;; size=28 bbWeight=0.50 PerfScore 3.50
 G_M51094_IG13:
-            mov     w1, w24
+            mov     w1, w23
             movz    x2, #0xD1FFAB1E      // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Action,ubyte)
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            b       G_M51094_IG54
+            b       G_M51094_IG52
 						;; size=28 bbWeight=0.50 PerfScore 3.50
 G_M51094_IG14:
             mov     x1, x19
-            mov     w2, w24
+            mov     w2, w23
             ldr     x3, [x0]
             ldr     x3, [x3, #0x40]
             ldr     x3, [x3, #0x20]
             blr     x3
-            b       G_M51094_IG54
+            b       G_M51094_IG52
 						;; size=28 bbWeight=0.50 PerfScore 6.00
 G_M51094_IG15:
             mov     x0, x19
-            mov     w2, w24
+            mov     w2, w23
             movz    x3, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            b       G_M51094_IG54
+            b       G_M51094_IG52
 						;; size=32 bbWeight=0.50 PerfScore 3.75
 G_M51094_IG16:
-            mov     x25, x20
-            cbz     x25, G_M51094_IG19
+            mov     x24, x20
+            cbz     x24, G_M51094_IG19
 						;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M51094_IG17:
-            ldr     x0, [x25]
+            ldr     x0, [x24]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
             beq     G_M51094_IG19
 						;; size=24 bbWeight=0.25 PerfScore 1.50
 G_M51094_IG18:
             mov     x0, x1
             mov     x1, x20
             bl      CORINFO_HELP_CHKCASTCLASS_SPECIAL
-            mov     x25, x0
+            mov     x24, x0
 						;; size=16 bbWeight=0.12 PerfScore 0.31
 G_M51094_IG19:
-            str     x25, [fp, #0x20]	// [V11 loc9]
+            str     x24, [fp, #0x28]	// [V11 loc9]
             str     wzr, [fp, #0x50]	// [V12 loc10]
 						;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M51094_IG20:
             ldrb    w1, [fp, #0x50]	// [V12 loc10]
             cbnz    w1, G_M51094_IG21
             add     x1, fp, #80	// [V12 loc10]
-            mov     x0, x25
+            mov     x0, x24
             bl      System.Threading.Monitor:ReliableEnter(System.Object,byref)
             b       G_M51094_IG22
 						;; size=24 bbWeight=0.50 PerfScore 3.00
 G_M51094_IG21:
             movz    x0, #0xD1FFAB1E      // code for System.Threading.Monitor:ThrowLockTakenException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
 G_M51094_IG22:
             ldrb    w0, [fp, #0x50]	// [V12 loc10]
             cbz     w0, G_M51094_IG23
-            mov     x0, x25
+            mov     x0, x24
             bl      System.Threading.Monitor:Exit(System.Object)
 						;; size=16 bbWeight=0.50 PerfScore 2.25
 G_M51094_IG23:
-            ldr     w20, [x25, #0x10]
-            cbz     w24, G_M51094_IG42
+            ldr     w20, [x24, #0x10]
+            cbz     w23, G_M51094_IG42
+            mov     w25, wzr
             mov     w26, wzr
-            mov     w27, wzr
             cmp     w20, #0
             ble     G_M51094_IG42
 						;; size=24 bbWeight=0.50 PerfScore 3.25
 G_M51094_IG24:
-            ldr     w0, [x25, #0x10]
-            cmp     w27, w0
-            bhs     G_M51094_IG56
-            ldr     x28, [x25, #0x08]
-            mov     x0, x28
+            ldr     x27, [x24, #0x08]
+            mov     x0, x27
+            ldr     w1, [x24, #0x10]
+            cmp     w26, w1
+            bhs     G_M51094_IG54
             ldr     w1, [x0, #0x08]
-            cmp     w27, w1
-            bhs     G_M51094_IG58
+            cmp     w1, w26
+            bls     G_M51094_IG54
             add     x0, x0, #16
-            ubfiz   x1, x27, #3, #32
-            str     x1, [fp, #0x30]	// [V58 cse2]
-            ldr     x0, [x0, x1]
-            str     x0, [fp, #0x18]	// [V15 loc13]
+            ubfiz   x28, x26, #3, #32
+            ldr     x0, [x0, x28]
+            str     x0, [fp, #0x20]	// [V15 loc13]
             cbz     x0, G_M51094_IG41
-						;; size=56 bbWeight=4 PerfScore 80.00
+						;; size=52 bbWeight=4 PerfScore 76.00
 G_M51094_IG25:
-            mov     x2, x0
-            str     x2, [fp, #0x10]	// [V16 loc14]
-            ldr     x3, [x2]
-            str     x3, [fp, #0x28]	// [V60 cse4]
-            movz    x4, #0xD1FFAB1E
-            movk    x4, #0xD1FFAB1E LSL #16
-            movk    x4, #0xD1FFAB1E LSL #32
-            cmp     x3, x4
+            mov     x1, x0
+            str     x1, [fp, #0x18]	// [V16 loc14]
+            ldr     x2, [x1]
+            str     x2, [fp, #0x30]	// [V63 cse6]
+            movz    x3, #0xD1FFAB1E
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            cmp     x2, x3
             bne     G_M51094_IG30
-            ldr     w0, [x2, #0x18]
+            ldr     w0, [x1, #0x18]
             tbnz    w0, #19, G_M51094_IG41
-            ldr     w0, [x28, #0x08]
-            cmp     w27, w0
-            bhs     G_M51094_IG58
-            add     x0, x28, #16
-            str     xzr, [x0, x1]
-            ldr     w0, [x25, #0x14]
+            add     x0, x27, #16
+            str     xzr, [x0, x28]
+            ldr     w0, [x24, #0x14]
             add     w0, w0, #1
-            str     w0, [x25, #0x14]
-            cbz     w23, G_M51094_IG29
-            add     x28, x19, #48
-            ldapr   w0, [x28]
+            str     w0, [x24, #0x14]
+            cbz     w22, G_M51094_IG29
+            add     x27, x19, #48
+            ldapr   w0, [x27]
             cbnz    w0, G_M51094_IG26
             movz    x0, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:NewId():int
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             mov     w2, wzr
-            casal   w2, w0, [x28]
-						;; size=120 bbWeight=2 PerfScore 75.00
+            casal   w2, w0, [x27]
+						;; size=108 bbWeight=2 PerfScore 66.00
 G_M51094_IG26:
-            ldr     w3, [x19, #0x30]
-            ldr     x2, [fp, #0x10]	// [V16 loc14]
-            str     x2, [fp, #0x48]	// [V38 tmp14]
-            ldr     x4, [fp, #0x48]	// [V38 tmp14]
-            ldrb    w0, [x22, #0xB1]
-            cbz     w0, G_M51094_IG28
-            sxtw    x2, w3
-            sxtw    x3, w27
-            mov     x0, x22
+            ldr     w2, [x19, #0x30]
+            ldr     x1, [fp, #0x18]	// [V16 loc14]
+            str     x1, [fp, #0x48]	// [V40 tmp16]
+            ldr     x4, [fp, #0x48]	// [V40 tmp16]
+            ldrb    w3, [x21, #0xB1]
+            cbz     w3, G_M51094_IG28
+            sxtw    x2, w2
+            sxtw    x3, w26
+            mov     x0, x21
             mov     w1, #21
             movz    x5, #0xD1FFAB1E      // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long,long,long):this
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #0xD1FFAB1E LSL #32
             ldr     x5, [x5]
             blr     x5
-            ldr     x2, [fp, #0x10]	// [V16 loc14]
+            ldr     x1, [fp, #0x18]	// [V16 loc14]
 						;; size=64 bbWeight=2 PerfScore 43.00
 G_M51094_IG27:
-            mov     x0, x2
+            mov     x0, x1
             mov     x1, x19
             mov     w2, wzr
             movz    x3, #0xD1FFAB1E      // code for System.Threading.Tasks.ContinueWithTaskContinuation:Run(System.Threading.Tasks.Task,ubyte):this
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
             b       G_M51094_IG41
 						;; size=36 bbWeight=2 PerfScore 16.00
 G_M51094_IG28:
-            ldr     x2, [fp, #0x10]	// [V16 loc14]
+            ldr     x1, [fp, #0x18]	// [V16 loc14]
             b       G_M51094_IG27
 						;; size=8 bbWeight=1 PerfScore 3.00
 G_M51094_IG29:
-            ldr     x2, [fp, #0x10]	// [V16 loc14]
+            ldr     x1, [fp, #0x18]	// [V16 loc14]
             b       G_M51094_IG27
 						;; size=8 bbWeight=1 PerfScore 3.00
 G_M51094_IG30:
             mov     x1, x0
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_ISINSTANCEOFINTERFACE
             cbnz    x0, G_M51094_IG41
-            cbz     w26, G_M51094_IG40
-            mov     x0, x28
-            ldr     w1, [x0, #0x08]
-            cmp     w27, w1
-            bhs     G_M51094_IG58
+            cbz     w25, G_M51094_IG40
+            mov     x0, x27
             add     x0, x0, #16
-            ldr     x26, [fp, #0x30]	// [V58 cse2]
-            str     xzr, [x0, x26]
-            ldr     w0, [x25, #0x14]
+            str     xzr, [x0, x28]
+            ldr     w0, [x24, #0x14]
             add     w0, w0, #1
-            str     w0, [x25, #0x14]
-            cbz     w23, G_M51094_IG34
-            add     x28, x19, #48
-            ldapr   w0, [x28]
+            str     w0, [x24, #0x14]
+            cbz     w22, G_M51094_IG34
+            add     x27, x19, #48
+            ldapr   w0, [x27]
             cbnz    w0, G_M51094_IG31
             movz    x0, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:NewId():int
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             mov     w2, wzr
-            casal   w2, w0, [x28]
-						;; size=112 bbWeight=2 PerfScore 65.00
+            casal   w2, w0, [x27]
+						;; size=96 bbWeight=2 PerfScore 52.00
 G_M51094_IG31:
             ldr     w2, [x19, #0x30]
-            ldr     x28, [fp, #0x18]	// [V15 loc13]
-            str     x28, [fp, #0x40]	// [V42 tmp18]
-            ldr     x4, [fp, #0x40]	// [V42 tmp18]
-            ldrb    w3, [x22, #0xB1]
+            ldr     x25, [fp, #0x20]	// [V15 loc13]
+            str     x25, [fp, #0x40]	// [V44 tmp20]
+            ldr     x4, [fp, #0x40]	// [V44 tmp20]
+            ldrb    w3, [x21, #0xB1]
             cbz     w3, G_M51094_IG32
             sxtw    x2, w2
-            sxtw    x3, w27
-            mov     x0, x22
+            sxtw    x3, w26
+            mov     x0, x21
             mov     w1, #21
             movz    x5, #0xD1FFAB1E      // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long,long,long):this
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #0xD1FFAB1E LSL #32
             ldr     x5, [x5]
             blr     x5
 						;; size=60 bbWeight=2 PerfScore 39.00
 G_M51094_IG32:
-            mov     x1, x28
+            mov     x1, x25
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_ISINSTANCEOFINTERFACE
             cbnz    x0, G_M51094_IG35
-            mov     x0, x28
+            mov     x0, x25
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            ldr     x26, [fp, #0x28]	// [V60 cse4]
-            cmp     x26, x1
+            ldr     x27, [fp, #0x30]	// [V63 cse6]
+            cmp     x27, x1
             beq     G_M51094_IG36
 						;; size=52 bbWeight=2 PerfScore 19.00
 G_M51094_IG33:
             b       G_M51094_IG37
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M51094_IG34:
-            ldr     x28, [fp, #0x18]	// [V15 loc13]
+            ldr     x25, [fp, #0x20]	// [V15 loc13]
             b       G_M51094_IG32
 						;; size=8 bbWeight=1 PerfScore 3.00
 G_M51094_IG35:
             mov     w1, wzr
             movz    x2, #0xD1FFAB1E      // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Runtime.CompilerServices.IAsyncStateMachineBox,ubyte)
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
             b       G_M51094_IG40
 						;; size=28 bbWeight=2 PerfScore 14.00
 G_M51094_IG36:
             mov     w1, wzr
             movz    x2, #0xD1FFAB1E      // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Action,ubyte)
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
             b       G_M51094_IG40
 						;; size=28 bbWeight=2 PerfScore 14.00
 G_M51094_IG37:
-            mov     x0, x28
+            mov     x0, x25
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
-            cmp     x26, x1
+            cmp     x27, x1
             beq     G_M51094_IG39
 						;; size=24 bbWeight=2 PerfScore 7.00
 G_M51094_IG38:
             mov     x0, x1
-            mov     x1, x28
+            mov     x1, x25
             bl      CORINFO_HELP_CHKCASTCLASS_SPECIAL
 						;; size=12 bbWeight=0.50 PerfScore 1.00
 G_M51094_IG39:
             mov     x1, x19
             mov     w2, wzr
-            ldr     x3, [x26, #0x40]
+            ldr     x3, [x27, #0x40]
             ldr     x3, [x3, #0x20]
             blr     x3
 						;; size=20 bbWeight=2 PerfScore 16.00
 G_M51094_IG40:
-            mov     w26, #1
+            mov     w25, #1
 						;; size=4 bbWeight=2 PerfScore 1.00
 G_M51094_IG41:
-            add     w27, w27, #1
-            cmp     w27, w20
+            add     w26, w26, #1
+            cmp     w26, w20
             blt     G_M51094_IG24
 						;; size=12 bbWeight=4 PerfScore 8.00
 G_M51094_IG42:
-            mov     w26, wzr
+            mov     w25, wzr
             cmp     w20, #0
-            ble     G_M51094_IG54
+            ble     G_M51094_IG52
 						;; size=12 bbWeight=0.50 PerfScore 1.00
 G_M51094_IG43:
-            ldr     w0, [x25, #0x10]
-            cmp     w26, w0
-            bhs     G_M51094_IG56
-            ldr     x0, [x25, #0x08]
+            ldr     x0, [x24, #0x08]
+            ldr     w1, [x24, #0x10]
+            cmp     w25, w1
+            bhs     G_M51094_IG54
             ldr     w1, [x0, #0x08]
-            cmp     w26, w1
-            bhs     G_M51094_IG58
+            cmp     w1, w25
+            bls     G_M51094_IG54
             add     x0, x0, #16
-            ldr     x27, [x0, w26, UXTW #3]
-            cbz     x27, G_M51094_IG53
+            ldr     x26, [x0, w25, UXTW #3]
+            cbz     x26, G_M51094_IG51
 						;; size=40 bbWeight=4 PerfScore 66.00
 G_M51094_IG44:
-            ldr     x0, [x25, #0x08]
-            ldr     w1, [x0, #0x08]
-            cmp     w26, w1
-            bhs     G_M51094_IG58
+            ldr     x0, [x24, #0x08]
             add     x0, x0, #16
-            str     xzr, [x0, w26, UXTW #3]
-            ldr     w0, [x25, #0x14]
+            str     xzr, [x0, w25, UXTW #3]
+            ldr     w0, [x24, #0x14]
             add     w0, w0, #1
-            str     w0, [x25, #0x14]
-            cbz     w23, G_M51094_IG46
-            add     x28, x19, #48
-            ldapr   w0, [x28]
+            str     w0, [x24, #0x14]
+            cbz     w22, G_M51094_IG46
+            add     x27, x19, #48
+            ldapr   w0, [x27]
             cbnz    w0, G_M51094_IG45
             movz    x0, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:NewId():int
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             mov     w2, wzr
-            casal   w2, w0, [x28]
-						;; size=80 bbWeight=2 PerfScore 56.00
+            casal   w2, w0, [x27]
+						;; size=68 bbWeight=2 PerfScore 47.00
 G_M51094_IG45:
             ldr     w2, [x19, #0x30]
-            str     x27, [fp, #0x38]	// [V46 tmp22]
-            ldr     x4, [fp, #0x38]	// [V46 tmp22]
-            ldrb    w3, [x22, #0xB1]
+            str     x26, [fp, #0x38]	// [V50 tmp26]
+            ldr     x4, [fp, #0x38]	// [V50 tmp26]
+            ldrb    w3, [x21, #0xB1]
             cbz     w3, G_M51094_IG46
             sxtw    x2, w2
-            sxtw    x3, w26
-            mov     x0, x22
+            sxtw    x3, w25
+            mov     x0, x21
             mov     w1, #21
             movz    x5, #0xD1FFAB1E      // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long,long,long):this
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #0xD1FFAB1E LSL #32
             ldr     x5, [x5]
             blr     x5
 						;; size=56 bbWeight=2 PerfScore 35.00
 G_M51094_IG46:
-            mov     x1, x27
+            mov     x1, x26
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_ISINSTANCEOFINTERFACE
             cbnz    x0, G_M51094_IG47
-            mov     x0, x27
+            mov     x0, x26
             ldr     x1, [x0]
             movz    x2, #0xD1FFAB1E
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             cmp     x1, x2
             beq     G_M51094_IG48
-            mov     x1, x27
+            mov     x1, x26
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_ISINSTANCEOFCLASS
             cbnz    x0, G_M51094_IG49
             b       G_M51094_IG50
 						;; size=80 bbWeight=2 PerfScore 31.00
 G_M51094_IG47:
-            mov     w1, w24
+            mov     w1, w23
             movz    x2, #0xD1FFAB1E      // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Runtime.CompilerServices.IAsyncStateMachineBox,ubyte)
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            b       G_M51094_IG53
+            b       G_M51094_IG51
 						;; size=28 bbWeight=2 PerfScore 14.00
 G_M51094_IG48:
-            mov     w1, w24
+            mov     w1, w23
             movz    x2, #0xD1FFAB1E      // code for System.Threading.Tasks.AwaitTaskContinuation:RunOrScheduleAction(System.Action,ubyte)
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            b       G_M51094_IG53
+            b       G_M51094_IG51
 						;; size=28 bbWeight=2 PerfScore 14.00
 G_M51094_IG49:
             mov     x1, x19
-            mov     w2, w24
+            mov     w2, w23
             ldr     x3, [x0]
             ldr     x3, [x3, #0x40]
             ldr     x3, [x3, #0x20]
             blr     x3
-            b       G_M51094_IG53
+            b       G_M51094_IG51
 						;; size=28 bbWeight=2 PerfScore 24.00
 G_M51094_IG50:
-            mov     x1, x27
+            mov     x1, x26
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_CHKCASTINTERFACE
-            mov     x27, x0
-            cbnz    w24, G_M51094_IG51
-            mov     x0, x27
-            movz    x11, #0xD1FFAB1E      // code for System.Threading.Tasks.ITaskCompletionAction:get_InvokeMayRunArbitraryCode():ubyte:this
-            movk    x11, #0xD1FFAB1E LSL #16
-            movk    x11, #0xD1FFAB1E LSL #32
-            ldr     x1, [x11]
-            blr     x1
-            cbnz    w0, G_M51094_IG52
-						;; size=56 bbWeight=2 PerfScore 23.00
-G_M51094_IG51:
-            mov     x0, x27
-            mov     x1, x19
-            movz    x11, #0xD1FFAB1E      // code for System.Threading.Tasks.ITaskCompletionAction:Invoke(System.Threading.Tasks.Task):this
-            movk    x11, #0xD1FFAB1E LSL #16
-            movk    x11, #0xD1FFAB1E LSL #32
-            ldr     x2, [x11]
-            blr     x2
-            b       G_M51094_IG53
-						;; size=32 bbWeight=2 PerfScore 15.00
-G_M51094_IG52:
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            bl      CORINFO_HELP_NEWSFAST
             mov     x1, x0
-            add     x14, x1, #8
-            mov     x15, x27
-            bl      CORINFO_HELP_ASSIGN_REF
-            add     x14, x1, #16
-            mov     x15, x19
-            bl      CORINFO_HELP_ASSIGN_REF
-            ldr     x0, [x21]
-            mov     w2, wzr
-            movz    x3, #0xD1FFAB1E      // code for System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this
+            mov     x0, x19
+            mov     w2, w23
+            movz    x3, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:RunOrQueueCompletionAction(System.Threading.Tasks.ITaskCompletionAction,ubyte):this
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-						;; size=72 bbWeight=2 PerfScore 32.00
-G_M51094_IG53:
-            add     w26, w26, #1
-            cmp     w26, w20
+						;; size=52 bbWeight=2 PerfScore 20.00
+G_M51094_IG51:
+            add     w25, w25, #1
+            cmp     w25, w20
             blt     G_M51094_IG43
 						;; size=12 bbWeight=4 PerfScore 8.00
-G_M51094_IG54:
+G_M51094_IG52:
             movz    x0, #0xD1FFAB1E      // code for System.Threading.Tasks.Task:LogFinishCompletionNotification()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
 						;; size=20 bbWeight=1 PerfScore 5.50
-G_M51094_IG55:
+G_M51094_IG53:
             ldp     x27, x28, [sp, #0xA0]
             ldp     x25, x26, [sp, #0x90]
             ldp     x23, x24, [sp, #0x80]
             ldp     x21, x22, [sp, #0x70]
             ldp     x19, x20, [sp, #0x60]
             ldp     fp, lr, [sp], #0xB0
             ret     lr
 						;; size=28 bbWeight=1 PerfScore 7.00
-G_M51094_IG56:
+G_M51094_IG54:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M51094_IG57:
+G_M51094_IG55:
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             mov     w1, #0xD1FFAB1E
             bl      CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
             b       G_M51094_IG03
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M51094_IG58:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
-G_M51094_IG59:
+G_M51094_IG56:
             stp     fp, lr, [sp, #-0x70]!
             stp     x19, x20, [sp, #0x20]
             stp     x21, x22, [sp, #0x30]
             stp     x23, x24, [sp, #0x40]
             stp     x25, x26, [sp, #0x50]
             stp     x27, x28, [sp, #0x60]
             add     x3, fp, #176
             str     x3, [sp, #0x18]
 						;; size=32 bbWeight=0 PerfScore 0.00
-G_M51094_IG60:
+G_M51094_IG57:
             ldrb    w0, [fp, #0x50]	// [V12 loc10]
-            cbz     w0, G_M51094_IG61
-            ldr     x0, [fp, #0x20]	// [V11 loc9]
+            cbz     w0, G_M51094_IG58
+            ldr     x0, [fp, #0x28]	// [V11 loc9]
             bl      System.Threading.Monitor:Exit(System.Object)
 						;; size=16 bbWeight=0 PerfScore 0.00
-G_M51094_IG61:
+G_M51094_IG58:
             ldp     x27, x28, [sp, #0x60]
             ldp     x25, x26, [sp, #0x50]
             ldp     x23, x24, [sp, #0x40]
             ldp     x21, x22, [sp, #0x30]
             ldp     x19, x20, [sp, #0x20]
             ldp     fp, lr, [sp], #0x70
             ret     lr
 						;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1976, prolog size 52, PerfScore 1023.91, instruction count 494, allocated bytes for code 1976 (MethodHash=8bc43869) for method System.Threading.Tasks.Task:RunContinuations(System.Object):this (FullOpts)
+; Total bytes of code 1816, prolog size 52, PerfScore 922.91, instruction count 454, allocated bytes for code 1816 (MethodHash=8bc43869) for method System.Threading.Tasks.Task:RunContinuations(System.Object):this (FullOpts)
-24 (-2.239% of base) - System.Collections.ObjectModel.ReadOnlyDictionary`2[long,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this
 ; Assembly listing for method System.Collections.ObjectModel.ReadOnlyDictionary`2[long,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 7 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T16] (  6,  4.50)     ref  ->  x21         this class-hnd single-def <System.Collections.ObjectModel.ReadOnlyDictionary`2[long,System.Nullable`1[int]]>
 ;  V01 arg1         [V01,T15] (  6,  5   )     ref  ->  x20         class-hnd single-def <System.Array>
 ;  V02 arg2         [V02,T05] (  8, 15.50)     int  ->  registers  
 ;  V03 loc0         [V03,T25] (  4,  2.75)     ref  ->   x1         class-hnd exact <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]][]>
-;  V04 loc1         [V04,T09] (  5,  9.25)     ref  ->  x22         class-hnd exact <System.Collections.DictionaryEntry[]>
+;  V04 loc1         [V04,T09] (  5,  9.25)     ref  ->  x23         class-hnd exact <System.Collections.DictionaryEntry[]>
 ;  V05 loc2         [V05,T10] (  7,  9   )     ref  ->  [fp+0x20]  class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]>
 ;  V06 loc3         [V06,T07] (  3, 12   )  struct (16) [fp+0x40]  do-not-enreg[SFR] multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
 ;  V07 loc4         [V07,T24] (  3,  3   )     ref  ->  x20         class-hnd single-def <System.Object[]>
 ;  V08 loc5         [V08,T17] (  6,  6.50)     ref  ->  [fp+0x18]  class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]>
 ;  V09 loc6         [V09,T11] (  4,  8   )  struct (16) [fp+0x30]  do-not-enreg[SFR] multireg-ret ld-addr-op <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]][]>
 ;* V12 tmp2         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Collections.DictionaryEntry[]>
 ;* V13 tmp3         [V13    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
 ;  V14 tmp4         [V14,T08] (  3, 12   )     int  ->  x21         "impSpillLclRefs"
-;  V15 tmp5         [V15,T14] (  2,  8   )    long  ->  x22         "impAppendStmt"
+;  V15 tmp5         [V15,T14] (  2,  8   )    long  ->  x23         "impAppendStmt"
 ;* V16 tmp6         [V16    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
 ;* V17 tmp7         [V17    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Nullable`1[int]>
 ;  V18 tmp8         [V18,T03] (  5, 20   )     ref  ->   x0         class-hnd exact "Single-def Box Helper" <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
 ;* V19 tmp9         [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <System.ArrayTypeMismatchException>
 ;  V20 tmp10        [V20,T27] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-;  V21 tmp11        [V21,T28] (  3,  0   )     ref  ->  x23         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V21 tmp11        [V21,T28] (  3,  0   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
 ;* V22 tmp12        [V22    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]>
 ;  V23 tmp13        [V23,T00] (  4, 32   )     int  ->  x19         "impSpillLclRefs"
 ;  V24 tmp14        [V24,T01] (  3, 24   )     ref  ->  x25         class-hnd exact "Single-def Box Helper" <System.Int64>
 ;  V25 tmp15        [V25    ] (  2, 16   )  struct ( 8) [fp+0x28]  do-not-enreg[XS] addr-exposed "location for address-of(RValue)" <System.Nullable`1[int]>
 ;* V26 tmp16        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.DictionaryEntry>
 ;* V27 tmp17        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Int64>
 ;  V28 tmp18        [V28,T06] (  2, 16   )     ref  ->   x0         class-hnd "Inlining Arg" <System.Object>
 ;  V29 tmp19        [V29,T20] (  2,  4   )   ubyte  ->  x24         "field V17.hasValue (fldOffset=0x0)" P-INDEP
 ;  V30 tmp20        [V30,T21] (  2,  4   )     int  ->  x25         "field V17.value (fldOffset=0x4)" P-INDEP
 ;  V31 tmp21        [V31    ] (  2, 16   )   ubyte  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V25.hasValue (fldOffset=0x0)" P-DEP
 ;  V32 tmp22        [V32    ] (  2, 16   )     int  ->  [fp+0x2C]  do-not-enreg[X] addr-exposed "field V25.value (fldOffset=0x4)" P-DEP
 ;  V33 tmp23        [V33,T12] (  2,  8   )     ref  ->  x15         "field V26._key (fldOffset=0x0)" P-INDEP
 ;  V34 tmp24        [V34,T13] (  2,  8   )     ref  ->   x0         "field V26._value (fldOffset=0x8)" P-INDEP
 ;* V35 tmp25        [V35    ] (  0,  0   )    long  ->  zero-ref    "V16.[000..008)"
 ;  V36 tmp26        [V36,T22] (  2,  4   )   ubyte  ->  x24         "V16.[008..009)"
 ;* V37 tmp27        [V37    ] (  0,  0   )     int  ->  zero-ref    "V16.[012..016)"
 ;  V38 tmp28        [V38,T23] (  2,  4   )     int  ->   x0         "argument with side effect"
 ;  V39 tmp29        [V39,T02] (  3, 24   )   byref  ->  x11         "BlockOp address local"
 ;  V40 tmp30        [V40,T29] (  2,  0   )     ref  ->  x19         single-def "argument with side effect"
 ;  V41 tmp31        [V41,T30] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
 ;  V42 tmp32        [V42,T31] (  2,  0   )     ref  ->  x20         single-def "argument with side effect"
 ;  V43 tmp33        [V43,T32] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
 ;  V44 PSPSym       [V44,T26] (  1,  1   )    long  ->  [fp+0x50]  do-not-enreg[V] "PSPSym"
-;  V45 cse0         [V45,T04] ( 15, 17.50)    long  ->  x23         "CSE - aggressive"
+;  V45 cse0         [V45,T04] ( 16, 19   )    long  ->  x22         "CSE - aggressive"
 ;  V46 cse1         [V46,T18] (  2,  4.50)    long  ->  x20         "CSE - moderate"
 ;  V47 cse2         [V47,T19] (  2,  4.50)    long  ->  x21         "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
 G_M16025_IG01:
             stp     fp, lr, [sp, #-0x90]!
             stp     x19, x20, [sp, #0x58]
             stp     x21, x22, [sp, #0x68]
             stp     x23, x24, [sp, #0x78]
             str     x25, [sp, #0x88]
             mov     fp, sp
             add     x3, sp, #144
             str     x3, [fp, #0x50]	// [V44 PSPSym]
             mov     x21, x0
             mov     x20, x1
             mov     w19, w2
 						;; size=44 bbWeight=1 PerfScore 8.50
 G_M16025_IG02:
             ldr     x0, [x21, #0x08]
-            movz    x11, #8      // code for System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]:get_Count():int:this
-            movk    x11, #0xD1FFAB1E LSL #16
-            movk    x11, #0xD1FFAB1E LSL #32
+            movz    x22, #0xD1FFAB1E      // code for System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]:get_Count():int:this
+            movk    x22, #0xD1FFAB1E LSL #16
+            movk    x22, #0xD1FFAB1E LSL #32
+            mov     x11, x22
             ldr     x1, [x11]
             blr     x1
             mov     x1, x20
             mov     w2, w19
             movz    x3, #0xD1FFAB1E      // code for System.Collections.ObjectModel.CollectionHelpers:ValidateCopyToArguments(int,System.Array,int)
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
             mov     x1, x20
             cbz     x1, G_M16025_IG04
-						;; size=60 bbWeight=1 PerfScore 16.50
+						;; size=64 bbWeight=1 PerfScore 17.00
 G_M16025_IG03:
             ldr     x0, [x1]
             movz    x2, #0xD1FFAB1E
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             cmp     x0, x2
             beq     G_M16025_IG07
 						;; size=24 bbWeight=0.25 PerfScore 1.50
 G_M16025_IG04:
-            mov     x22, x20
-            cbz     x22, G_M16025_IG13
+            mov     x23, x20
+            cbz     x23, G_M16025_IG13
 						;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M16025_IG05:
-            ldr     x0, [x22]
+            ldr     x0, [x23]
             movz    x11, #0xD1FFAB1E
             movk    x11, #0xD1FFAB1E LSL #16
             movk    x11, #0xD1FFAB1E LSL #32
             cmp     x0, x11
             bne     G_M16025_IG13
 						;; size=24 bbWeight=0.25 PerfScore 1.50
 G_M16025_IG06:
             ldr     x0, [x21, #0x08]
-            movz    x23, #0xD1FFAB1E      // code for System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]:this
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            mov     x11, x23
+            sub     x11, x22, #40
             ldr     x1, [x11]
             blr     x1
             str     x0, [fp, #0x20]	// [V05 loc2]
             b       G_M16025_IG09
-						;; size=36 bbWeight=0.50 PerfScore 5.50
+						;; size=24 bbWeight=0.50 PerfScore 4.75
 G_M16025_IG07:
             ldr     x0, [x21, #0x08]
             mov     w2, w19
-            movz    x11, #0xD1FFAB1E LSL #16
-            movk    x11, #0xD1FFAB1E LSL #32
+            sub     x11, x22, #8
             ldr     x3, [x11]
             blr     x3
-						;; size=24 bbWeight=0.50 PerfScore 4.25
+						;; size=20 bbWeight=0.50 PerfScore 4.00
 G_M16025_IG08:
             ldr     x25, [sp, #0x88]
             ldp     x23, x24, [sp, #0x78]
             ldp     x21, x22, [sp, #0x68]
             ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp], #0x90
             ret     lr
 						;; size=24 bbWeight=0.50 PerfScore 3.50
 G_M16025_IG09:
-            add     x11, x23, #8
+            sub     x11, x22, #32
             ldr     x1, [x11]
             blr     x1
             cbz     w0, G_M16025_IG12
             movz    x20, #0xD1FFAB1E
             movk    x20, #0xD1FFAB1E LSL #16
             movk    x20, #0xD1FFAB1E LSL #32
             movz    x21, #0xD1FFAB1E
             movk    x21, #0xD1FFAB1E LSL #16
             movk    x21, #0xD1FFAB1E LSL #32
             b       G_M16025_IG11
 						;; size=44 bbWeight=0.50 PerfScore 4.75
 G_M16025_IG10:
             bl      CORINFO_HELP_RNGCHKFAIL
 						;; size=4 bbWeight=0 PerfScore 0.00
 G_M16025_IG11:
             ldr     x0, [fp, #0x20]	// [V05 loc2]
-            add     x11, x23, #16
+            sub     x11, x22, #24
             ldr     x1, [x11]
             blr     x1
             stp     x0, x1, [fp, #0x40]	// [V06 loc3], [V06 loc3+0x08]
             add     w0, w19, #1
             sxtw    w24, w0
             mov     x0, x20
             bl      CORINFO_HELP_NEWSFAST
             mov     x25, x0
             ldr     x1, [fp, #0x40]	// [V06 loc3]
             str     x1, [x25, #0x08]
             ldr     x1, [fp, #0x48]	// [V06 loc3+0x08]
             str     x1, [fp, #0x28]	// [V25 tmp15]
             add     x1, fp, #40	// [V25 tmp15]
             mov     x0, x21
             bl      CORINFO_HELP_BOX_NULLABLE
             mov     x15, x25
-            ldr     w14, [x22, #0x08]
+            ldr     w14, [x23, #0x08]
             cmp     w19, w14
             bhs     G_M16025_IG10
             ubfiz   x14, x19, #4, #32
             add     x14, x14, #16
-            add     x11, x22, x14
+            add     x11, x23, x14
             mov     x14, x11
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             add     x14, x11, #8
             mov     x15, x0
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ldr     x0, [fp, #0x20]	// [V05 loc2]
-            add     x11, x23, #8
+            sub     x11, x22, #32
             ldr     x1, [x11]
             blr     x1
             mov     w19, w24
             cbnz    w0, G_M16025_IG11
 						;; size=140 bbWeight=4 PerfScore 148.00
 G_M16025_IG12:
             ldr     x0, [fp, #0x20]	// [V05 loc2]
-            add     x11, x23, #24
+            sub     x11, x22, #16
             ldr     x1, [x11]
             blr     x1
             b       G_M16025_IG19
 						;; size=20 bbWeight=0.50 PerfScore 3.75
 G_M16025_IG13:
             mov     x1, x20
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_ISINSTANCEOFARRAY
             mov     x20, x0
             cbz     x20, G_M16025_IG20
 						;; size=28 bbWeight=0.50 PerfScore 2.25
 G_M16025_IG14:
             ldr     x0, [x21, #0x08]
-            movz    x23, #0xD1FFAB1E
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            sub     x11, x23, #32
+            sub     x11, x22, #72
             ldr     x1, [x11]
             blr     x1
             str     x0, [fp, #0x18]	// [V08 loc5]
-						;; size=32 bbWeight=0.50 PerfScore 5.00
+						;; size=20 bbWeight=0.50 PerfScore 4.25
 G_M16025_IG15:
             b       G_M16025_IG17
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M16025_IG16:
             ldr     x0, [fp, #0x18]	// [V08 loc5]
-            sub     x11, x23, #16
+            sub     x11, x22, #56
             ldr     x1, [x11]
             blr     x1
             stp     x0, x1, [fp, #0x30]	// [V09 loc6], [V09 loc6+0x08]
             sxtw    w21, w19
             add     w19, w21, #1
-            ldr     x22, [fp, #0x30]	// [V09 loc6]
+            ldr     x23, [fp, #0x30]	// [V09 loc6]
             ldrb    w24, [fp, #0x38]	// [V09 loc6+0x08]
             ldr     w25, [fp, #0x3C]	// [V09 loc6+0x0c]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
-            str     x22, [x0, #0x08]
+            str     x23, [x0, #0x08]
             strb    w24, [x0, #0x10]
             str     w25, [x0, #0x14]
             mov     x2, x0
             sxtw    x1, w21
             mov     x0, x20
             bl      CORINFO_HELP_ARRADDR_ST
             ldr     x0, [fp, #0x18]	// [V08 loc5]
 						;; size=88 bbWeight=2 PerfScore 49.00
 G_M16025_IG17:
-            sub     x11, x23, #24
+            sub     x11, x22, #64
             ldr     x1, [x11]
             blr     x1
             cbnz    w0, G_M16025_IG16
 						;; size=16 bbWeight=4 PerfScore 22.00
 G_M16025_IG18:
             ldr     x0, [fp, #0x18]	// [V08 loc5]
-            sub     x11, x23, #8
+            sub     x11, x22, #48
             ldr     x1, [x11]
             blr     x1
 						;; size=16 bbWeight=0.50 PerfScore 3.25
 G_M16025_IG19:
             ldr     x25, [sp, #0x88]
             ldp     x23, x24, [sp, #0x78]
             ldp     x21, x22, [sp, #0x68]
             ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp], #0x90
             ret     lr
 						;; size=24 bbWeight=0.50 PerfScore 3.50
 G_M16025_IG20:
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
-            mov     x23, x0
+            mov     x22, x0
             movz    x0, #0xD1FFAB1E      // code for System.SR:get_Argument_IncompatibleArrayType():System.String
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             mov     x19, x0
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_STRCNS
             mov     x2, x0
             mov     x1, x19
-            mov     x0, x23
+            mov     x0, x22
             movz    x3, #0xD1FFAB1E      // code for System.ArgumentException:.ctor(System.String,System.String):this
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-            mov     x0, x23
+            mov     x0, x22
             bl      CORINFO_HELP_THROW
             brk_unix #0
 						;; size=108 bbWeight=0 PerfScore 0.00
 G_M16025_IG21:
             stp     fp, lr, [sp, #-0x50]!
             stp     x19, x20, [sp, #0x18]
             stp     x21, x22, [sp, #0x28]
             stp     x23, x24, [sp, #0x38]
             str     x25, [sp, #0x48]
             add     x3, fp, #144
             str     x3, [sp, #0x10]
 						;; size=28 bbWeight=0 PerfScore 0.00
 G_M16025_IG22:
             ldr     x0, [fp, #0x20]	// [V05 loc2]
             cbz     x0, G_M16025_IG23
-            movz    x23, #0xD1FFAB1E
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            add     x11, x23, #24
+            movz    x22, #0xD1FFAB1E
+            movk    x22, #0xD1FFAB1E LSL #16
+            movk    x22, #0xD1FFAB1E LSL #32
+            sub     x11, x22, #16
             ldr     x1, [x11]
             blr     x1
 						;; size=32 bbWeight=0 PerfScore 0.00
 G_M16025_IG23:
             ldr     x25, [sp, #0x48]
             ldp     x23, x24, [sp, #0x38]
             ldp     x21, x22, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x50
             ret     lr
 						;; size=24 bbWeight=0 PerfScore 0.00
 G_M16025_IG24:
             stp     fp, lr, [sp, #-0x50]!
             stp     x19, x20, [sp, #0x18]
             stp     x21, x22, [sp, #0x28]
             stp     x23, x24, [sp, #0x38]
             str     x25, [sp, #0x48]
             add     x3, fp, #144
             str     x3, [sp, #0x10]
 						;; size=28 bbWeight=0 PerfScore 0.00
 G_M16025_IG25:
             ldr     x0, [fp, #0x18]	// [V08 loc5]
             cbz     x0, G_M16025_IG26
-            movz    x23, #0xD1FFAB1E
-            movk    x23, #0xD1FFAB1E LSL #16
-            movk    x23, #0xD1FFAB1E LSL #32
-            sub     x11, x23, #8
+            movz    x22, #0xD1FFAB1E
+            movk    x22, #0xD1FFAB1E LSL #16
+            movk    x22, #0xD1FFAB1E LSL #32
+            sub     x11, x22, #48
             ldr     x1, [x11]
             blr     x1
 						;; size=32 bbWeight=0 PerfScore 0.00
 G_M16025_IG26:
             ldr     x25, [sp, #0x48]
             ldp     x23, x24, [sp, #0x38]
             ldp     x21, x22, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x50
             ret     lr
 						;; size=24 bbWeight=0 PerfScore 0.00
 G_M16025_IG27:
             stp     fp, lr, [sp, #-0x50]!
             stp     x19, x20, [sp, #0x18]
             stp     x21, x22, [sp, #0x28]
             stp     x23, x24, [sp, #0x38]
             str     x25, [sp, #0x48]
             add     x3, fp, #144
             str     x3, [sp, #0x10]
 						;; size=28 bbWeight=0 PerfScore 0.00
 G_M16025_IG28:
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             mov     x19, x0
             movz    x0, #0xD1FFAB1E      // code for System.SR:get_Argument_IncompatibleArrayType():System.String
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             mov     x20, x0
             mov     w0, #0xD1FFAB1E
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_STRCNS
             mov     x2, x0
             mov     x1, x20
             mov     x0, x19
             movz    x3, #0xD1FFAB1E      // code for System.ArgumentException:.ctor(System.String,System.String):this
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
             mov     x0, x19
             bl      CORINFO_HELP_THROW
             brk_unix #0
 						;; size=108 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1072, prolog size 44, PerfScore 391.20, instruction count 268, allocated bytes for code 1072 (MethodHash=103fc166) for method System.Collections.ObjectModel.ReadOnlyDictionary`2[long,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
+; Total bytes of code 1048, prolog size 44, PerfScore 387.55, instruction count 262, allocated bytes for code 1048 (MethodHash=103fc166) for method System.Collections.ObjectModel.ReadOnlyDictionary`2[long,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
-16 (-13.333% of base) - System.Collections.Generic.List`1[double]:System.Collections.IList.get_Item(int):System.Object:this
 ; Assembly listing for method System.Collections.Generic.List`1[double]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.List`1[double]>
-;  V01 arg1         [V01,T00] (  5,  5   )     int  ->  x19         single-def
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[double]>
+;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.Double>
-;  V04 tmp2         [V04,T03] (  3,  6   )     ref  ->   x1         single-def "arr expr"
+;  V04 tmp2         [V04,T05] (  2,  2   )  double  ->   d8         "Inline return value spill temp"
+;  V05 tmp3         [V05,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def "Inline stloc first use temp" <double[]>
+;  V06 cse0         [V06,T04] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M35276_IG01:
             stp     fp, lr, [sp, #-0x20]!
-            stp     x19, x20, [sp, #0x10]
+            str     d8, [sp, #0x18]
             mov     fp, sp
-            mov     x20, x0
-            mov     w19, w1
-						;; size=20 bbWeight=1 PerfScore 3.50
+						;; size=12 bbWeight=1 PerfScore 2.50
 G_M35276_IG02:
-            ldr     w0, [x20, #0x10]
-            cmp     w19, w0
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M35276_IG04
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M35276_IG04
+            add     x0, x2, #16
+            ldr     d8, [x0, w1, UXTW #3]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
-            ldr     x1, [x20, #0x08]
-            ldr     w2, [x1, #0x08]
-            cmp     w19, w2
-            bhs     G_M35276_IG05
-            add     x1, x1, #16
-            ldr     d16, [x1, w19, UXTW #3]
-            str     d16, [x0, #0x08]
+            str     d8, [x0, #0x08]
 						;; size=56 bbWeight=1 PerfScore 19.00
 G_M35276_IG03:
-            ldp     x19, x20, [sp, #0x10]
+            ldr     d8, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
-						;; size=12 bbWeight=1 PerfScore 3.00
+						;; size=12 bbWeight=1 PerfScore 4.00
 G_M35276_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M35276_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 12, PerfScore 37.50, instruction count 30, allocated bytes for code 120 (MethodHash=02867633) for method System.Collections.Generic.List`1[double]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 35.90, instruction count 26, allocated bytes for code 104 (MethodHash=02867633) for method System.Collections.Generic.List`1[double]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-16 (-13.333% of base) - System.Collections.Generic.List`1[int]:System.Collections.IList.get_Item(int):System.Object:this
 ; Assembly listing for method System.Collections.Generic.List`1[int]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.List`1[int]>
-;  V01 arg1         [V01,T00] (  5,  5   )     int  ->  x19         single-def
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[int]>
+;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.Int32>
-;  V04 tmp2         [V04,T03] (  3,  6   )     ref  ->   x1         single-def "arr expr"
+;  V04 tmp2         [V04,T04] (  2,  2   )     int  ->  x19         "Inline return value spill temp"
+;  V05 tmp3         [V05,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def "Inline stloc first use temp" <int[]>
+;  V06 cse0         [V06,T05] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M9802_IG01:
             stp     fp, lr, [sp, #-0x20]!
-            stp     x19, x20, [sp, #0x10]
+            str     x19, [sp, #0x18]
             mov     fp, sp
-            mov     x20, x0
-            mov     w19, w1
-						;; size=20 bbWeight=1 PerfScore 3.50
+						;; size=12 bbWeight=1 PerfScore 2.50
 G_M9802_IG02:
-            ldr     w0, [x20, #0x10]
-            cmp     w19, w0
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M9802_IG04
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M9802_IG04
+            add     x0, x2, #16
+            ldr     w19, [x0, w1, UXTW #2]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
-            ldr     x1, [x20, #0x08]
-            ldr     w2, [x1, #0x08]
-            cmp     w19, w2
-            bhs     G_M9802_IG05
-            add     x1, x1, #16
-            ldr     w1, [x1, w19, UXTW #2]
-            str     w1, [x0, #0x08]
+            str     w19, [x0, #0x08]
 						;; size=56 bbWeight=1 PerfScore 19.00
 G_M9802_IG03:
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
-						;; size=12 bbWeight=1 PerfScore 3.00
+						;; size=12 bbWeight=1 PerfScore 4.00
 G_M9802_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M9802_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 12, PerfScore 37.50, instruction count 30, allocated bytes for code 120 (MethodHash=9e0bd9b5) for method System.Collections.Generic.List`1[int]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 35.90, instruction count 26, allocated bytes for code 104 (MethodHash=9e0bd9b5) for method System.Collections.Generic.List`1[int]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-16 (-13.333% of base) - System.Collections.Generic.List`1[long]:System.Collections.IList.get_Item(int):System.Object:this
 ; Assembly listing for method System.Collections.Generic.List`1[long]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.List`1[long]>
-;  V01 arg1         [V01,T00] (  5,  5   )     int  ->  x19         single-def
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[long]>
+;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.Int64>
-;  V04 tmp2         [V04,T03] (  3,  6   )     ref  ->   x1         single-def "arr expr"
+;  V04 tmp2         [V04,T04] (  2,  2   )    long  ->  x19         "Inline return value spill temp"
+;  V05 tmp3         [V05,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def "Inline stloc first use temp" <long[]>
+;  V06 cse0         [V06,T05] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M63187_IG01:
             stp     fp, lr, [sp, #-0x20]!
-            stp     x19, x20, [sp, #0x10]
+            str     x19, [sp, #0x18]
             mov     fp, sp
-            mov     x20, x0
-            mov     w19, w1
-						;; size=20 bbWeight=1 PerfScore 3.50
+						;; size=12 bbWeight=1 PerfScore 2.50
 G_M63187_IG02:
-            ldr     w0, [x20, #0x10]
-            cmp     w19, w0
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M63187_IG04
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M63187_IG04
+            add     x0, x2, #16
+            ldr     x19, [x0, w1, UXTW #3]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
-            ldr     x1, [x20, #0x08]
-            ldr     w2, [x1, #0x08]
-            cmp     w19, w2
-            bhs     G_M63187_IG05
-            add     x1, x1, #16
-            ldr     x1, [x1, w19, UXTW #3]
-            str     x1, [x0, #0x08]
+            str     x19, [x0, #0x08]
 						;; size=56 bbWeight=1 PerfScore 19.00
 G_M63187_IG03:
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
-						;; size=12 bbWeight=1 PerfScore 3.00
+						;; size=12 bbWeight=1 PerfScore 4.00
 G_M63187_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M63187_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 12, PerfScore 37.50, instruction count 30, allocated bytes for code 120 (MethodHash=4679092c) for method System.Collections.Generic.List`1[long]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 35.90, instruction count 26, allocated bytes for code 104 (MethodHash=4679092c) for method System.Collections.Generic.List`1[long]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-16 (-13.333% of base) - System.Collections.Generic.List`1[short]:System.Collections.IList.get_Item(int):System.Object:this
 ; Assembly listing for method System.Collections.Generic.List`1[short]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.List`1[short]>
-;  V01 arg1         [V01,T00] (  5,  5   )     int  ->  x19         single-def
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[short]>
+;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.Int16>
-;  V04 tmp2         [V04,T03] (  3,  6   )     ref  ->   x1         single-def "arr expr"
+;  V04 tmp2         [V04,T04] (  2,  2   )   short  ->  x19         "Inline return value spill temp"
+;  V05 tmp3         [V05,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def "Inline stloc first use temp" <short[]>
+;  V06 cse0         [V06,T05] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M7979_IG01:
             stp     fp, lr, [sp, #-0x20]!
-            stp     x19, x20, [sp, #0x10]
+            str     x19, [sp, #0x18]
             mov     fp, sp
-            mov     x20, x0
-            mov     w19, w1
-						;; size=20 bbWeight=1 PerfScore 3.50
+						;; size=12 bbWeight=1 PerfScore 2.50
 G_M7979_IG02:
-            ldr     w0, [x20, #0x10]
-            cmp     w19, w0
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M7979_IG04
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M7979_IG04
+            add     x0, x2, #16
+            ldrsh   w19, [x0, w1, UXTW #2]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
-            ldr     x1, [x20, #0x08]
-            ldr     w2, [x1, #0x08]
-            cmp     w19, w2
-            bhs     G_M7979_IG05
-            add     x1, x1, #16
-            ldrsh   w1, [x1, w19, UXTW #2]
-            strh    w1, [x0, #0x08]
+            strh    w19, [x0, #0x08]
 						;; size=56 bbWeight=1 PerfScore 19.00
 G_M7979_IG03:
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
-						;; size=12 bbWeight=1 PerfScore 3.00
+						;; size=12 bbWeight=1 PerfScore 4.00
 G_M7979_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M7979_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 12, PerfScore 37.50, instruction count 30, allocated bytes for code 120 (MethodHash=8c07e0d4) for method System.Collections.Generic.List`1[short]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 35.90, instruction count 26, allocated bytes for code 104 (MethodHash=8c07e0d4) for method System.Collections.Generic.List`1[short]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-16 (-13.333% of base) - System.Collections.Generic.List`1[ubyte]:System.Collections.IList.get_Item(int):System.Object:this
 ; Assembly listing for method System.Collections.Generic.List`1[ubyte]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
-;  V01 arg1         [V01,T00] (  5,  5   )     int  ->  x19         single-def
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
+;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.Byte>
-;  V04 tmp2         [V04,T03] (  3,  6   )     ref  ->   x1         single-def "arr expr"
+;  V04 tmp2         [V04,T04] (  2,  2   )   ubyte  ->  x19         "Inline return value spill temp"
+;  V05 tmp3         [V05,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def "Inline stloc first use temp" <ubyte[]>
+;  V06 cse0         [V06,T05] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M11718_IG01:
             stp     fp, lr, [sp, #-0x20]!
-            stp     x19, x20, [sp, #0x10]
+            str     x19, [sp, #0x18]
             mov     fp, sp
-            mov     x20, x0
-            mov     w19, w1
-						;; size=20 bbWeight=1 PerfScore 3.50
+						;; size=12 bbWeight=1 PerfScore 2.50
 G_M11718_IG02:
-            ldr     w0, [x20, #0x10]
-            cmp     w19, w0
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M11718_IG04
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M11718_IG04
+            add     x0, x2, #16
+            ldrb    w19, [x0, w1, UXTW #2]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
-            ldr     x1, [x20, #0x08]
-            ldr     w2, [x1, #0x08]
-            cmp     w19, w2
-            bhs     G_M11718_IG05
-            add     x1, x1, #16
-            ldrb    w1, [x1, w19, UXTW #2]
-            strb    w1, [x0, #0x08]
+            strb    w19, [x0, #0x08]
 						;; size=56 bbWeight=1 PerfScore 19.00
 G_M11718_IG03:
-            ldp     x19, x20, [sp, #0x10]
+            ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
-						;; size=12 bbWeight=1 PerfScore 3.00
+						;; size=12 bbWeight=1 PerfScore 4.00
 G_M11718_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M11718_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 12, PerfScore 37.50, instruction count 30, allocated bytes for code 120 (MethodHash=5408d239) for method System.Collections.Generic.List`1[ubyte]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 12, PerfScore 35.90, instruction count 26, allocated bytes for code 104 (MethodHash=5408d239) for method System.Collections.Generic.List`1[ubyte]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-12 (-4.225% of base) - System.AggregateException:.ctor(System.String,System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]):this
 ; Assembly listing for method System.AggregateException:.ctor(System.String,System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]):this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 7 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  9, 15   )     ref  ->  x19         this class-hnd single-def <System.AggregateException>
-;  V01 arg1         [V01,T08] (  3,  3   )     ref  ->   x1         class-hnd single-def <System.String>
-;  V02 arg2         [V02,T07] (  6, 11.50)     ref  ->  x20         class-hnd single-def <System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]>
+;  V00 this         [V00,T01] (  9, 15   )     ref  ->  x19         this class-hnd single-def <System.AggregateException>
+;  V01 arg1         [V01,T06] (  3,  3   )     ref  ->   x1         class-hnd single-def <System.String>
+;  V02 arg2         [V02,T03] (  6, 11.50)     ref  ->  x20         class-hnd single-def <System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]>
 ;  V03 loc0         [V03,T00] (  8, 29   )     int  ->  x21        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V05 tmp1         [V05,T16] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V06 tmp2         [V06,T11] (  3,  2   )     ref  ->  x15         single-def
-;* V07 tmp3         [V07,T15] (  0,  0   )     ref  ->  zero-ref   
-;  V08 tmp4         [V08,T12] (  3,  2   )     ref  ->  x15        
-;  V09 tmp5         [V09,T13] (  3,  2   )     ref  ->   x0        
-;  V10 tmp6         [V10,T03] (  2, 16   )     ref  ->   x0         class-hnd "impAppendStmt" <System.Exception[]>
-;  V11 tmp7         [V11,T14] (  2,  2   )     ref  ->  x14         class-hnd single-def "Inlining Arg" <System.__Canon>
-;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
-;  V13 tmp9         [V13,T10] (  3,  3   )     ref  ->   x0         single-def "arr expr"
-;  V14 tmp10        [V14,T01] (  3, 24   )     ref  ->   x2         "arr expr"
-;  V15 tmp11        [V15,T04] (  2, 16   )     ref  ->   x0         "argument with side effect"
-;  V16 tmp12        [V16,T06] (  2, 16   )    long  ->   x1         "argument with side effect"
-;  V17 tmp13        [V17,T05] (  2, 16   )     ref  ->   x2         "argument with side effect"
-;  V18 cse0         [V18,T09] (  4,  3.50)     int  ->   x1         "CSE - aggressive"
+;* V05 tmp1         [V05,T15] (  0,  0   )     ref  ->  zero-ref    single-def
+;  V06 tmp2         [V06,T08] (  3,  2   )     ref  ->  x15         single-def
+;* V07 tmp3         [V07,T12] (  0,  0   )     ref  ->  zero-ref   
+;  V08 tmp4         [V08,T09] (  3,  2   )     ref  ->  x15        
+;  V09 tmp5         [V09,T10] (  3,  2   )     ref  ->   x0        
+;  V10 tmp6         [V10,T02] (  2, 16   )     ref  ->   x0         class-hnd "impAppendStmt" <System.Exception[]>
+;  V11 tmp7         [V11,T13] (  2,  1   )     ref  ->  x14         class-hnd exact single-def "Inline return value spill temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
+;  V12 tmp8         [V12,T11] (  3,  1.50)     ref  ->   x0         class-hnd single-def "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo[]>
+;* V13 tmp9         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
+;  V14 tmp10        [V14,T04] (  3, 12   )     ref  ->   x2         class-hnd "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo[]>
+;  V15 cse0         [V15,T14] (  2,  1   )     int  ->  x14         "CSE - moderate"
+;  V16 cse1         [V16,T07] (  4,  3.50)     int  ->   x1         "CSE - aggressive"
+;  V17 cse2         [V17,T05] (  2,  8   )     int  ->   x1         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M37595_IG01:
             stp     fp, lr, [sp, #-0x30]!
             stp     x19, x20, [sp, #0x18]
             str     x21, [sp, #0x28]
             mov     fp, sp
             mov     x19, x0
             mov     x20, x2
 						;; size=24 bbWeight=1 PerfScore 4.50
 G_M37595_IG02:
             mov     x15, x1
             ldr     w1, [x20, #0x10]
             cbnz    w1, G_M37595_IG04
 						;; size=12 bbWeight=1 PerfScore 4.50
 G_M37595_IG03:
             mov     x0, xzr
             b       G_M37595_IG05
 						;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M37595_IG04:
-            cbz     w1, G_M37595_IG08
             ldr     x0, [x20, #0x08]
+            cbz     w1, G_M37595_IG08
             ldr     w14, [x0, #0x08]
-            cmp     w14, #0
-            bls     G_M37595_IG09
+            cbz     w14, G_M37595_IG08
             ldr     x14, [x0, #0x10]
             ldr     x0, [x14, #0x08]
-						;; size=28 bbWeight=0.50 PerfScore 7.25
+						;; size=24 bbWeight=0.50 PerfScore 7.00
 G_M37595_IG05:
             movz    x14, #0xD1FFAB1E
             movk    x14, #0xD1FFAB1E LSL #16
             movk    x14, #0xD1FFAB1E LSL #32
             movk    x14, #0xD1FFAB1E LSL #48
             str     x14, [x19, #0x70]
             add     x14, x19, #16
             bl      CORINFO_HELP_ASSIGN_REF
             add     x14, x19, #32
             mov     x15, x0
             bl      CORINFO_HELP_ASSIGN_REF
             sxtw    x1, w1
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWARR_1_OBJ
             add     x14, x19, #120
             mov     x15, x0
             bl      CORINFO_HELP_ASSIGN_REF
             mov     w21, wzr
-            ldr     x0, [x19, #0x78]
-            ldr     w0, [x0, #0x08]
-            cmp     w0, #0
+            ldr     x2, [x19, #0x78]
+            ldr     w2, [x2, #0x08]
+            cmp     w2, #0
             ble     G_M37595_IG07
 						;; size=92 bbWeight=1 PerfScore 19.50
 G_M37595_IG06:
             ldr     x0, [x19, #0x78]
+            ldr     x2, [x20, #0x08]
             ldr     w1, [x20, #0x10]
             cmp     w21, w1
             bhs     G_M37595_IG08
-            sxtw    x1, w21
-            ldr     x2, [x20, #0x08]
-            ldr     w3, [x2, #0x08]
-            cmp     w21, w3
-            bhs     G_M37595_IG09
+            ldr     w1, [x2, #0x08]
+            cmp     w1, w21
+            bls     G_M37595_IG08
             add     x2, x2, #16
             ldr     x2, [x2, w21, UXTW #3]
             ldr     x2, [x2, #0x08]
+            sxtw    x1, w21
             bl      CORINFO_HELP_ARRADDR_ST
             add     w21, w21, #1
             ldr     x0, [x19, #0x78]
             ldr     w0, [x0, #0x08]
             cmp     w0, w21
             bgt     G_M37595_IG06
 						;; size=72 bbWeight=4 PerfScore 124.00
 G_M37595_IG07:
             ldr     x21, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x30
             ret     lr
 						;; size=16 bbWeight=1 PerfScore 5.00
 G_M37595_IG08:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M37595_IG09:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 284, prolog size 24, PerfScore 193.90, instruction count 71, allocated bytes for code 284 (MethodHash=281b6d24) for method System.AggregateException:.ctor(System.String,System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]):this (FullOpts)
+; Total bytes of code 272, prolog size 24, PerfScore 192.45, instruction count 68, allocated bytes for code 272 (MethodHash=281b6d24) for method System.AggregateException:.ctor(System.String,System.Collections.Generic.List`1[System.Runtime.ExceptionServices.ExceptionDispatchInfo]):this (FullOpts)
-8 (-0.806% of base) - System.AggregateException:Flatten():System.AggregateException:this
 ; Assembly listing for method System.AggregateException:Flatten():System.AggregateException:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 12 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T20] (  9,  6   )     ref  ->  x19         this class-hnd single-def <System.AggregateException>
 ;  V01 loc0         [V01,T03] (  8, 50   )     ref  ->  x21         class-hnd exact single-def <System.Collections.Generic.List`1[System.Exception]>
 ;  V02 loc1         [V02,T01] ( 11, 62   )     ref  ->  x22         class-hnd exact single-def <System.Collections.Generic.List`1[System.AggregateException]>
-;  V03 loc2         [V03,T18] (  4, 13   )     int  ->  registers  
+;  V03 loc2         [V03,T16] (  4, 13   )     int  ->  registers  
 ;  V04 loc3         [V04,T05] (  4, 40   )     ref  ->  x25         class-hnd <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
 ;  V05 loc4         [V05,T00] (  5, 68   )     int  ->  x23        
 ;  V06 loc5         [V06,T02] (  5, 56   )     ref  ->  x27         class-hnd <System.Exception>
 ;  V07 loc6         [V07,T07] (  4, 32   )     ref  ->   x2         class-hnd <System.AggregateException>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T21] (  3,  6   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Exception]>
-;  V10 tmp2         [V10,T16] (  8, 14   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.AggregateException]>
+;  V09 tmp1         [V09,T22] (  3,  6   )     ref  ->  x21         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Exception]>
+;  V10 tmp2         [V10,T14] (  8, 14   )     ref  ->  x22         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.AggregateException]>
 ;  V11 tmp3         [V11,T04] (  5, 40   )     int  ->  x23         "impSpillLclRefs"
-;  V12 tmp4         [V12,T29] (  3,  2   )     ref  ->  x20        
-;  V13 tmp5         [V13,T22] (  3,  6   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
-;  V14 tmp6         [V14,T27] (  3,  2.50)     ref  ->   x0         class-hnd single-def "Inline stloc first use temp" <System.AggregateException[]>
-;  V15 tmp7         [V15,T25] (  4,  3   )     int  ->   x1         "Inline stloc first use temp"
-;* V16 tmp8         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
-;  V17 tmp9         [V17,T10] (  4, 24   )     ref  ->  x23         class-hnd "Inlining Arg" <System.__Canon>
-;  V18 tmp10        [V18,T15] (  2, 16   )     ref  ->  x25         class-hnd "dup spill" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
-;  V19 tmp11        [V19,T17] (  4, 14   )     ref  ->  x25        
-;  V20 tmp12        [V20,T14] (  4, 16   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
-;* V21 tmp13        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
-;  V22 tmp14        [V22,T19] (  3, 12   )     ref  ->  x15         class-hnd "Inlining Arg" <System.Exception[]>
-;  V23 tmp15        [V23,T11] (  3, 24   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <System.AggregateException[]>
-;  V24 tmp16        [V24,T08] (  4, 32   )     int  ->   x1         "Inline stloc first use temp"
-;  V25 tmp17        [V25,T12] (  3, 24   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <System.Exception[]>
-;  V26 tmp18        [V26,T09] (  4, 32   )     int  ->   x1         "Inline stloc first use temp"
-;  V27 tmp19        [V27,T30] (  2,  2   )     ref  ->  x20         class-hnd exact single-def "dup spill" <System.String>
-;  V28 tmp20        [V28,T28] (  4,  2   )     ref  ->  x20        
-;* V29 tmp21        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
-;  V30 tmp22        [V30,T13] (  3, 24   )     ref  ->   x0         "arr expr"
-;  V31 tmp23        [V31,T31] (  2,  2   )     ref  ->  x20         single-def "argument with side effect"
-;  V32 tmp24        [V32,T32] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
-;  V33 tmp25        [V33,T24] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V34 cse0         [V34,T26] (  3,  3   )     ref  ->   x0         "CSE - moderate"
+;  V12 tmp4         [V12,T30] (  3,  2   )     ref  ->  x20        
+;  V13 tmp5         [V13,T23] (  3,  6   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <System.AggregateException>
+;  V14 tmp6         [V14,T28] (  3,  2.50)     ref  ->   x0         class-hnd single-def "Inline stloc first use temp" <System.AggregateException[]>
+;  V15 tmp7         [V15,T26] (  4,  3   )     int  ->   x1         "Inline stloc first use temp"
+;  V16 tmp8         [V16,T17] (  4, 12   )     ref  ->  x23         class-hnd "Inline return value spill temp" <System.AggregateException>
+;  V17 tmp9         [V17,T18] (  3, 12   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <System.AggregateException[]>
+;* V18 tmp10        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
+;  V19 tmp11        [V19,T13] (  2, 16   )     ref  ->  x25         class-hnd "dup spill" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
+;  V20 tmp12        [V20,T15] (  4, 14   )     ref  ->  x25        
+;  V21 tmp13        [V21,T12] (  4, 16   )     ref  ->  x25         class-hnd exact "NewObj constructor temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
+;* V22 tmp14        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
+;  V23 tmp15        [V23,T19] (  3, 12   )     ref  ->  x15         class-hnd "Inlining Arg" <System.Exception[]>
+;  V24 tmp16        [V24,T10] (  3, 24   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <System.AggregateException[]>
+;  V25 tmp17        [V25,T08] (  4, 32   )     int  ->   x1         "Inline stloc first use temp"
+;  V26 tmp18        [V26,T11] (  3, 24   )     ref  ->   x0         class-hnd "Inline stloc first use temp" <System.Exception[]>
+;  V27 tmp19        [V27,T09] (  4, 32   )     int  ->   x1         "Inline stloc first use temp"
+;  V28 tmp20        [V28,T31] (  2,  2   )     ref  ->  x20         class-hnd exact single-def "dup spill" <System.String>
+;  V29 tmp21        [V29,T29] (  4,  2   )     ref  ->  x20        
+;* V30 tmp22        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
+;  V31 tmp23        [V31,T32] (  2,  2   )     ref  ->  x20         single-def "argument with side effect"
+;  V32 tmp24        [V32,T33] (  2,  2   )     ref  ->   x1         single-def "argument with side effect"
+;  V33 tmp25        [V33,T25] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
+;  V34 cse0         [V34,T27] (  3,  3   )     ref  ->   x0         "CSE - moderate"
 ;  V35 cse1         [V35,T06] (  4, 40   )    long  ->  x26         "CSE - aggressive"
-;  V36 cse2         [V36,T23] (  3,  4   )    long  ->  x20         "CSE - moderate"
+;  V36 cse2         [V36,T21] (  2,  8   )     int  ->   x1         "CSE - moderate"
+;  V37 cse3         [V37,T24] (  3,  4   )    long  ->  x20         "CSE - moderate"
 ;
 ; Lcl frame size = 8
 
 G_M60647_IG01:
             stp     fp, lr, [sp, #-0x60]!
             stp     x19, x20, [sp, #0x18]
             stp     x21, x22, [sp, #0x28]
             stp     x23, x24, [sp, #0x38]
             stp     x25, x26, [sp, #0x48]
             str     x27, [sp, #0x58]
             mov     fp, sp
             mov     x19, x0
 						;; size=32 bbWeight=1 PerfScore 7.00
 G_M60647_IG02:
             movz    x20, #0xD1FFAB1E
             movk    x20, #0xD1FFAB1E LSL #16
             movk    x20, #0xD1FFAB1E LSL #32
             add     x0, x20, #0xD1FFAB1E
             bl      CORINFO_HELP_NEWSFAST
             mov     x21, x0
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             mov     w1, #144
             bl      CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
             movz    x14, #0xD1FFAB1E      // data for System.Collections.Generic.List`1[System.Exception]:s_emptyArray
             movk    x14, #0xD1FFAB1E LSL #16
             movk    x14, #0xD1FFAB1E LSL #32
             ldr     x15, [x14]
             add     x14, x21, #8
             bl      CORINFO_HELP_ASSIGN_REF
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             mov     x22, x0
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             mov     w1, #145
             bl      CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
             movz    x14, #0xD1FFAB1E      // data for System.Collections.Generic.List`1[System.AggregateException]:s_emptyArray
             movk    x14, #0xD1FFAB1E LSL #16
             movk    x14, #0xD1FFAB1E LSL #32
             ldr     x0, [x14]
             add     x14, x22, #8
             mov     x15, x0
             bl      CORINFO_HELP_ASSIGN_REF
             ldr     w1, [x22, #0x14]
             add     w1, w1, #1
             str     w1, [x22, #0x14]
             ldr     w1, [x22, #0x10]
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
             bls     G_M60647_IG04
 						;; size=164 bbWeight=1 PerfScore 37.00
 G_M60647_IG03:
             add     w2, w1, #1
             str     w2, [x22, #0x10]
             sxtw    x1, w1
             mov     x2, x19
             bl      CORINFO_HELP_ARRADDR_ST
             b       G_M60647_IG05
 						;; size=24 bbWeight=0.50 PerfScore 2.25
 G_M60647_IG04:
             mov     x0, x22
             mov     x1, x19
             movz    x2, #0xD1FFAB1E      // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
 						;; size=28 bbWeight=0.50 PerfScore 3.25
 G_M60647_IG05:
             mov     w23, wzr
             ldr     w0, [x22, #0x10]
             cmp     w0, #0
             ble     G_M60647_IG16
 						;; size=16 bbWeight=1 PerfScore 5.00
 G_M60647_IG06:
             add     w0, w23, #1
             sxtw    w24, w0
-            ldr     w0, [x22, #0x10]
-            cmp     w23, w0
-            bhs     G_M60647_IG22
             ldr     x0, [x22, #0x08]
-            ldr     w1, [x0, #0x08]
+            ldr     w1, [x22, #0x10]
             cmp     w23, w1
-            bhs     G_M60647_IG24
+            bhs     G_M60647_IG22
+            ldr     w1, [x0, #0x08]
+            cmp     w1, w23
+            bls     G_M60647_IG22
             add     x0, x0, #16
             ldr     x23, [x0, w23, UXTW #3]
             ldr     x25, [x23, #0x80]
             cbnz    x25, G_M60647_IG08
 						;; size=52 bbWeight=4 PerfScore 82.00
 G_M60647_IG07:
             mov     x0, x20
             bl      CORINFO_HELP_NEWSFAST
             mov     x25, x0
             ldr     x15, [x23, #0x78]
             cbz     x15, G_M60647_IG23
             add     x14, x25, #8
             bl      CORINFO_HELP_ASSIGN_REF
             add     x14, x23, #128
             mov     x15, x25
             bl      CORINFO_HELP_ASSIGN_REF
 						;; size=40 bbWeight=2 PerfScore 19.00
 G_M60647_IG08:
             mov     w23, wzr
             ldr     x0, [x25, #0x08]
             movz    x26, #0xD1FFAB1E      // code for System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
             movk    x26, #0xD1FFAB1E LSL #16
             movk    x26, #0xD1FFAB1E LSL #32
             mov     x11, x26
             ldr     x1, [x11]
             blr     x1
             cmp     w0, #0
             ble     G_M60647_IG15
 						;; size=40 bbWeight=4 PerfScore 44.00
 G_M60647_IG09:
             ldr     x0, [x25, #0x08]
             mov     w1, w23
             sub     x11, x26, #8
             ldr     x2, [x11]
             blr     x2
             mov     x27, x0
             cbz     x27, G_M60647_IG14
 						;; size=28 bbWeight=16 PerfScore 152.00
 G_M60647_IG10:
             mov     x1, x27
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_ISINSTANCEOFCLASS
             mov     x2, x0
             cbz     x2, G_M60647_IG12
             ldr     w1, [x22, #0x14]
             add     w1, w1, #1
             str     w1, [x22, #0x14]
             ldr     x0, [x22, #0x08]
             ldr     w1, [x22, #0x10]
             ldr     w3, [x0, #0x08]
             cmp     w3, w1
             bls     G_M60647_IG11
             add     w3, w1, #1
             str     w3, [x22, #0x10]
             sxtw    x1, w1
             bl      CORINFO_HELP_ARRADDR_ST
             b       G_M60647_IG14
 						;; size=80 bbWeight=8 PerfScore 188.00
 G_M60647_IG11:
             mov     x0, x22
             mov     x1, x2
             movz    x2, #0xD1FFAB1E      // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
             b       G_M60647_IG14
 						;; size=32 bbWeight=8 PerfScore 60.00
 G_M60647_IG12:
             ldr     w1, [x21, #0x14]
             add     w1, w1, #1
             str     w1, [x21, #0x14]
             ldr     x0, [x21, #0x08]
             ldr     w1, [x21, #0x10]
             ldr     w2, [x0, #0x08]
             cmp     w2, w1
             bls     G_M60647_IG13
             add     w2, w1, #1
             str     w2, [x21, #0x10]
             sxtw    x1, w1
             mov     x2, x27
             bl      CORINFO_HELP_ARRADDR_ST
             b       G_M60647_IG14
 						;; size=56 bbWeight=8 PerfScore 156.00
 G_M60647_IG13:
             mov     x0, x21
             mov     x1, x27
             movz    x2, #0xD1FFAB1E      // code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
 						;; size=28 bbWeight=8 PerfScore 52.00
 G_M60647_IG14:
             add     w23, w23, #1
             ldr     x0, [x25, #0x08]
             mov     x11, x26
             ldr     x1, [x11]
             blr     x1
             cmp     w0, w23
             bgt     G_M60647_IG09
 						;; size=28 bbWeight=16 PerfScore 152.00
 G_M60647_IG15:
             ldr     w0, [x22, #0x10]
             cmp     w0, w24
             mov     w23, w24
             bgt     G_M60647_IG06
 						;; size=16 bbWeight=4 PerfScore 20.00
 G_M60647_IG16:
             ldr     x0, [x19]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             cmp     x0, x1
             beq     G_M60647_IG20
 						;; size=24 bbWeight=1 PerfScore 6.00
 G_M60647_IG17:
             mov     x0, x19
             ldr     x1, [x19]
             ldr     x1, [x1, #0x40]
             ldr     x1, [x1, #0x20]
             blr     x1
             mov     x20, x0
 						;; size=24 bbWeight=0.50 PerfScore 5.50
 G_M60647_IG18:
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             mov     x19, x0
             mov     x0, x21
             movz    x1, #0xD1FFAB1E      // code for System.Collections.Generic.List`1[System.__Canon]:ToArray():System.__Canon[]:this
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
             mov     x2, x0
             mov     x1, x20
             mov     x0, x19
             mov     w3, wzr
             movz    x4, #0xD1FFAB1E      // code for System.AggregateException:.ctor(System.String,System.Exception[],ubyte):this
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
             blr     x4
             mov     x0, x19
 						;; size=84 bbWeight=1 PerfScore 17.00
 G_M60647_IG19:
             ldr     x27, [sp, #0x58]
             ldp     x25, x26, [sp, #0x48]
             ldp     x23, x24, [sp, #0x38]
             ldp     x21, x22, [sp, #0x28]
             ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x60
             ret     lr
 						;; size=28 bbWeight=1 PerfScore 8.00
 G_M60647_IG20:
             ldr     x20, [x19, #0x10]
             cbnz    x20, G_M60647_IG21
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             movz    x1, #0xD1FFAB1E      // code for System.SR:GetResourceString(System.String):System.String
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
             mov     x20, x0
             mov     x0, x19
             bl      System.Object:GetType():System.Type:this
             movz    x1, #0xD1FFAB1E      // code for System.RuntimeType:ToString():System.String:this
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
             mov     x1, x0
             mov     x0, x20
             movz    x2, #0xD1FFAB1E      // code for System.SR:Format(System.String,System.Object):System.String
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
             mov     x20, x0
 						;; size=104 bbWeight=0.50 PerfScore 12.75
 G_M60647_IG21:
             b       G_M60647_IG18
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M60647_IG22:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
 G_M60647_IG23:
             mov     w0, #20
             movz    x1, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentNullException(int)
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
             brk_unix #0
 						;; size=28 bbWeight=0 PerfScore 0.00
-G_M60647_IG24:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 992, prolog size 32, PerfScore 1128.45, instruction count 248, allocated bytes for code 992 (MethodHash=1e3b1318) for method System.AggregateException:Flatten():System.AggregateException:this (FullOpts)
+; Total bytes of code 984, prolog size 32, PerfScore 1127.65, instruction count 246, allocated bytes for code 984 (MethodHash=1e3b1318) for method System.AggregateException:Flatten():System.AggregateException:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[double]:get_Item(int):double:this
 ; Assembly listing for method System.Collections.Generic.List`1[double]:get_Item(int):double:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[double]>
 ;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
+;  V02 loc0         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <double[]>
+;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V04 cse0         [V04,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M60546_IG01:
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M60546_IG02:
-            ldr     w2, [x0, #0x10]
-            cmp     w1, w2
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M60546_IG04
-            ldr     x0, [x0, #0x08]
-            ldr     w2, [x0, #0x08]
-            cmp     w1, w2
-            bhs     G_M60546_IG05
-            add     x0, x0, #16
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M60546_IG04
+            add     x0, x2, #16
             ldr     d0, [x0, w1, UXTW #3]
 						;; size=36 bbWeight=1 PerfScore 15.50
 G_M60546_IG03:
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M60546_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M60546_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=039b137d) for method System.Collections.Generic.List`1[double]:get_Item(int):double:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=039b137d) for method System.Collections.Generic.List`1[double]:get_Item(int):double:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[int]:get_Item(int):int:this
 ; Assembly listing for method System.Collections.Generic.List`1[int]:get_Item(int):int:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[int]>
 ;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
+;  V02 loc0         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <int[]>
+;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V04 cse0         [V04,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M10434_IG01:
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M10434_IG02:
-            ldr     w2, [x0, #0x10]
-            cmp     w1, w2
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M10434_IG04
-            ldr     x0, [x0, #0x08]
-            ldr     w2, [x0, #0x08]
-            cmp     w1, w2
-            bhs     G_M10434_IG05
-            add     x0, x0, #16
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M10434_IG04
+            add     x0, x2, #16
             ldr     w0, [x0, w1, UXTW #2]
 						;; size=36 bbWeight=1 PerfScore 15.50
 G_M10434_IG03:
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M10434_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M10434_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=9a7ed73d) for method System.Collections.Generic.List`1[int]:get_Item(int):int:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=9a7ed73d) for method System.Collections.Generic.List`1[int]:get_Item(int):int:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[long]:get_Item(int):long:this
 ; Assembly listing for method System.Collections.Generic.List`1[long]:get_Item(int):long:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[long]>
 ;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
+;  V02 loc0         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <long[]>
+;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V04 cse0         [V04,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M30658_IG01:
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M30658_IG02:
-            ldr     w2, [x0, #0x10]
-            cmp     w1, w2
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M30658_IG04
-            ldr     x0, [x0, #0x08]
-            ldr     w2, [x0, #0x08]
-            cmp     w1, w2
-            bhs     G_M30658_IG05
-            add     x0, x0, #16
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M30658_IG04
+            add     x0, x2, #16
             ldr     x0, [x0, w1, UXTW #3]
 						;; size=36 bbWeight=1 PerfScore 15.50
 G_M30658_IG03:
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M30658_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M30658_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=163e883d) for method System.Collections.Generic.List`1[long]:get_Item(int):long:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=163e883d) for method System.Collections.Generic.List`1[long]:get_Item(int):long:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[short]:get_Item(int):short:this
 ; Assembly listing for method System.Collections.Generic.List`1[short]:get_Item(int):short:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[short]>
 ;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
+;  V02 loc0         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <short[]>
+;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V04 cse0         [V04,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M55138_IG01:
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M55138_IG02:
-            ldr     w2, [x0, #0x10]
-            cmp     w1, w2
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M55138_IG04
-            ldr     x0, [x0, #0x08]
-            ldr     w2, [x0, #0x08]
-            cmp     w1, w2
-            bhs     G_M55138_IG05
-            add     x0, x0, #16
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M55138_IG04
+            add     x0, x2, #16
             ldrsh   w0, [x0, w1, UXTW #2]
 						;; size=36 bbWeight=1 PerfScore 15.50
 G_M55138_IG03:
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M55138_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M55138_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=efb1289d) for method System.Collections.Generic.List`1[short]:get_Item(int):short:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=efb1289d) for method System.Collections.Generic.List`1[short]:get_Item(int):short:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this
 ; Assembly listing for method System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
 ;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
+;  V02 loc0         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <System.__Canon[]>
+;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V04 cse0         [V04,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M15554_IG01:
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M15554_IG02:
-            ldr     w2, [x0, #0x10]
-            cmp     w1, w2
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M15554_IG04
-            ldr     x0, [x0, #0x08]
-            ldr     w2, [x0, #0x08]
-            cmp     w1, w2
-            bhs     G_M15554_IG05
-            add     x0, x0, #16
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M15554_IG04
+            add     x0, x2, #16
             ldr     x0, [x0, w1, UXTW #3]
 						;; size=36 bbWeight=1 PerfScore 15.50
 G_M15554_IG03:
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M15554_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M15554_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=5cebc33d) for method System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=5cebc33d) for method System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.get_Item(int):System.Object:this
 ; Assembly listing for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[System.__Canon]>
 ;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
+;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.__Canon>
+;  V04 tmp2         [V04,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def "Inline stloc first use temp" <System.__Canon[]>
+;  V05 cse0         [V05,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M6239_IG01:
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M6239_IG02:
-            ldr     w2, [x0, #0x10]
-            cmp     w1, w2
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M6239_IG04
-            ldr     x0, [x0, #0x08]
-            ldr     w2, [x0, #0x08]
-            cmp     w1, w2
-            bhs     G_M6239_IG05
-            add     x0, x0, #16
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M6239_IG04
+            add     x0, x2, #16
             ldr     x0, [x0, w1, UXTW #3]
 						;; size=36 bbWeight=1 PerfScore 15.50
 G_M6239_IG03:
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M6239_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M6239_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=98cee7a0) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=98cee7a0) for method System.Collections.Generic.List`1[System.__Canon]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-8 (-9.091% of base) - System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this
 ; Assembly listing for method System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[System.Nullable`1[int]]>
 ;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
+;  V02 loc0         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd exact single-def <System.Nullable`1[int][]>
+;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V04 cse0         [V04,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M56770_IG01:
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M56770_IG02:
-            ldr     w2, [x0, #0x10]
-            cmp     w1, w2
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M56770_IG04
-            ldr     x0, [x0, #0x08]
-            ldr     w2, [x0, #0x08]
-            cmp     w1, w2
-            bhs     G_M56770_IG05
-            ubfiz   x1, x1, #3, #32
-            add     x1, x1, #16
-            ldr     x0, [x0, x1]
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M56770_IG04
+            ubfiz   x0, x1, #3, #32
+            add     x0, x0, #16
+            ldr     x0, [x2, x0]
 						;; size=40 bbWeight=1 PerfScore 16.50
 G_M56770_IG03:
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M56770_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M56770_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 88, prolog size 8, PerfScore 28.80, instruction count 22, allocated bytes for code 88 (MethodHash=7599223d) for method System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 28.00, instruction count 20, allocated bytes for code 80 (MethodHash=7599223d) for method System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this (FullOpts)
-8 (-7.143% of base) - System.Collections.Generic.List`1[System.Nullable`1[int]]:System.Collections.IList.get_Item(int):System.Object:this
 ; Assembly listing for method System.Collections.Generic.List`1[System.Nullable`1[int]]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[System.Nullable`1[int]]>
 ;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed "location for address-of(RValue)" <System.Nullable`1[int]>
-;  V04 tmp2         [V04    ] (  2,  4   )   ubyte  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V03.hasValue (fldOffset=0x0)" P-DEP
-;  V05 tmp3         [V05    ] (  2,  4   )     int  ->  [fp+0x1C]  do-not-enreg[X] addr-exposed "field V03.value (fldOffset=0x4)" P-DEP
-;  V06 tmp4         [V06,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
+;* V04 tmp2         [V04    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.Nullable`1[int]>
+;  V05 tmp3         [V05,T02] (  3,  3   )     ref  ->   x2         class-hnd exact single-def "Inline stloc first use temp" <System.Nullable`1[int][]>
+;  V06 tmp4         [V06    ] (  2,  4   )   ubyte  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V03.hasValue (fldOffset=0x0)" P-DEP
+;  V07 tmp5         [V07    ] (  2,  4   )     int  ->  [fp+0x1C]  do-not-enreg[X] addr-exposed "field V03.value (fldOffset=0x4)" P-DEP
+;* V08 tmp6         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "field V04.hasValue (fldOffset=0x0)" P-INDEP
+;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V04.value (fldOffset=0x4)" P-INDEP
+;  V10 cse0         [V10,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 16
 
 G_M039_IG01:
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M039_IG02:
-            ldr     w2, [x0, #0x10]
-            cmp     w1, w2
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M039_IG04
-            ldr     x0, [x0, #0x08]
-            ldr     w2, [x0, #0x08]
-            cmp     w1, w2
-            bhs     G_M039_IG05
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M039_IG04
             ubfiz   x1, x1, #3, #32
             add     x1, x1, #16
-            ldr     x1, [x0, x1]
+            ldr     x1, [x2, x1]
             str     x1, [fp, #0x18]	// [V03 tmp1]
             add     x1, fp, #24	// [V03 tmp1]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_BOX_NULLABLE
 						;; size=64 bbWeight=1 PerfScore 20.50
 G_M039_IG03:
             ldp     fp, lr, [sp], #0x20
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M039_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M039_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 112, prolog size 8, PerfScore 35.20, instruction count 28, allocated bytes for code 112 (MethodHash=35f7ffd8) for method System.Collections.Generic.List`1[System.Nullable`1[int]]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 34.40, instruction count 26, allocated bytes for code 104 (MethodHash=35f7ffd8) for method System.Collections.Generic.List`1[System.Nullable`1[int]]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-8 (-9.091% of base) - System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this
 ; Assembly listing for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]>
 ;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
+;  V02 loc0         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd exact single-def <System.Numerics.Vector`1[float][]>
+;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V04 cse0         [V04,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M37890_IG01:
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M37890_IG02:
-            ldr     w2, [x0, #0x10]
-            cmp     w1, w2
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M37890_IG04
-            ldr     x0, [x0, #0x08]
-            ldr     w2, [x0, #0x08]
-            cmp     w1, w2
-            bhs     G_M37890_IG05
-            ubfiz   x1, x1, #4, #32
-            add     x1, x1, #16
-            ldr     q0, [x0, x1]
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M37890_IG04
+            ubfiz   x0, x1, #4, #32
+            add     x0, x0, #16
+            ldr     q0, [x2, x0]
 						;; size=40 bbWeight=1 PerfScore 16.50
 G_M37890_IG03:
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M37890_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M37890_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 88, prolog size 8, PerfScore 28.80, instruction count 22, allocated bytes for code 88 (MethodHash=81b46bfd) for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 28.00, instruction count 20, allocated bytes for code 80 (MethodHash=81b46bfd) for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:get_Item(int):System.Numerics.Vector`1[float]:this (FullOpts)
-8 (-6.452% of base) - System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:System.Collections.IList.get_Item(int):System.Object:this
 ; Assembly listing for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->  x20         this class-hnd single-def <System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]>
-;  V01 arg1         [V01,T00] (  5,  5   )     int  ->  x19         single-def
+;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]>
+;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Single-def Box Helper" <System.Numerics.Vector`1[float]>
-;  V04 tmp2         [V04,T03] (  3,  6   )     ref  ->   x1         single-def "arr expr"
+;  V04 tmp2         [V04,T05] (  2,  2   )  simd16  ->   d8         HFA(simd16)  "Inline return value spill temp" <System.Numerics.Vector`1[float]>
+;  V05 tmp3         [V05,T03] (  3,  3   )     ref  ->   x2         class-hnd exact single-def "Inline stloc first use temp" <System.Numerics.Vector`1[float][]>
+;  V06 cse0         [V06,T04] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M55770_IG01:
             stp     fp, lr, [sp, #-0x20]!
-            stp     x19, x20, [sp, #0x10]
+            stp     d8, d9, [sp, #0x10]
             mov     fp, sp
-            mov     x20, x0
-            mov     w19, w1
-						;; size=20 bbWeight=1 PerfScore 3.50
+						;; size=12 bbWeight=1 PerfScore 2.50
 G_M55770_IG02:
-            ldr     w0, [x20, #0x10]
-            cmp     w19, w0
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M55770_IG04
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M55770_IG04
+            ubfiz   x0, x1, #4, #32
+            add     x0, x0, #16
+            ldr     q8, [x2, x0]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
+            mov     v9.d[0], v8.d[1]
             bl      CORINFO_HELP_NEWSFAST
-            ldr     x1, [x20, #0x08]
-            ldr     w2, [x1, #0x08]
-            cmp     w19, w2
-            bhs     G_M55770_IG05
-            ubfiz   x2, x19, #4, #32
-            add     x2, x2, #16
-            ldr     q16, [x1, x2]
-            str     q16, [x0, #0x08]
-						;; size=60 bbWeight=1 PerfScore 20.00
+            mov     v8.d[1], v9.d[0]
+            str     q8, [x0, #0x08]
+						;; size=68 bbWeight=1 PerfScore 22.00
 G_M55770_IG03:
-            ldp     x19, x20, [sp, #0x10]
+            ldp     d8, d9, [sp, #0x10]
             ldp     fp, lr, [sp], #0x20
             ret     lr
 						;; size=12 bbWeight=1 PerfScore 3.00
 G_M55770_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M55770_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 124, prolog size 12, PerfScore 38.90, instruction count 31, allocated bytes for code 124 (MethodHash=dd4b2625) for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 39.10, instruction count 29, allocated bytes for code 116 (MethodHash=dd4b2625) for method System.Collections.Generic.List`1[System.Numerics.Vector`1[float]]:System.Collections.IList.get_Item(int):System.Object:this (FullOpts)
-8 (-9.524% of base) - System.Collections.Generic.List`1[ubyte]:get_Item(int):ubyte:this
 ; Assembly listing for method System.Collections.Generic.List`1[ubyte]:get_Item(int):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for generic ARM64 - Unix
 ; FullOpts code
 ; optimized code
 ; fp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <System.Collections.Generic.List`1[ubyte]>
 ;  V01 arg1         [V01,T00] (  5,  5   )     int  ->   x1         single-def
-;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
+;  V02 loc0         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <ubyte[]>
+;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V04 cse0         [V04,T03] (  2,  2   )     int  ->   x0         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
 G_M6466_IG01:
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M6466_IG02:
-            ldr     w2, [x0, #0x10]
-            cmp     w1, w2
+            ldr     x2, [x0, #0x08]
+            ldr     w0, [x0, #0x10]
+            cmp     w1, w0
             bhs     G_M6466_IG04
-            ldr     x0, [x0, #0x08]
-            ldr     w2, [x0, #0x08]
-            cmp     w1, w2
-            bhs     G_M6466_IG05
-            add     x0, x0, #16
+            ldr     w0, [x2, #0x08]
+            cmp     w0, w1
+            bls     G_M6466_IG04
+            add     x0, x2, #16
             ldrb    w0, [x0, w1, UXTW #2]
 						;; size=36 bbWeight=1 PerfScore 15.50
 G_M6466_IG03:
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M6466_IG04:
             movz    x0, #0xD1FFAB1E      // code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             ldr     x0, [x0]
             blr     x0
             brk_unix #0
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M6466_IG05:
-            bl      CORINFO_HELP_RNGCHKFAIL
-            brk_unix #0
-						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 84, prolog size 8, PerfScore 27.40, instruction count 21, allocated bytes for code 84 (MethodHash=d8afe6bd) for method System.Collections.Generic.List`1[ubyte]:get_Item(int):ubyte:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 26.60, instruction count 19, allocated bytes for code 76 (MethodHash=d8afe6bd) for method System.Collections.Generic.List`1[ubyte]:get_Item(int):ubyte:this (FullOpts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment