Skip to content

Instantly share code, notes, and snippets.

@c272
Last active August 29, 2023 12:00
Show Gist options
  • Save c272/449a2760c1897f74722600bf200712b2 to your computer and use it in GitHub Desktop.
Save c272/449a2760c1897f74722600bf200712b2 to your computer and use it in GitHub Desktop.
SuperPMI diffs for SELECT_INC/SELECT_INCCC patch.

Diffs are based on 1,007,693 contexts (446,494 MinOpts, 561,199 FullOpts).

Overall (-1,224 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,996,000 -132
benchmarks.run_pgo.windows.arm64.checked.mch 32,626,724 -128
benchmarks.run_tiered.windows.arm64.checked.mch 14,869,564 -56
coreclr_tests.run.windows.arm64.checked.mch 487,380,284 -408
libraries.crossgen2.windows.arm64.checked.mch 67,279,180 -500
FullOpts (-1,224 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,478,860 -132
benchmarks.run_pgo.windows.arm64.checked.mch 16,734,668 -128
benchmarks.run_tiered.windows.arm64.checked.mch 3,730,488 -56
coreclr_tests.run.windows.arm64.checked.mch 150,211,960 -408
libraries.crossgen2.windows.arm64.checked.mch 67,277,544 -500
Example diffs
benchmarks.run.windows.arm64.checked.mch
-4 (-4.00%) : 21769.dasm - V8.Crypto.BigInteger:nbits(int):int:this (FullOpts)
@@ -59,16 +59,15 @@ G_M11074_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 						;; size=8 bbWeight=0.50 PerfScore 0.50
 G_M11074_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             asr     w1, w1, #1
-            add     w2, w0, #1
             cmp     w1, #0
-            csel    w0, w0, w2, eq
-						;; size=16 bbWeight=1 PerfScore 2.50
+            csinc   w0, w0, w0, eq
+						;; size=12 bbWeight=1 PerfScore 2.00
 G_M11074_IG11:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 100, prolog size 8, PerfScore 26.50, instruction count 25, allocated bytes for code 100 (MethodHash=e9c7d4bd) for method V8.Crypto.BigInteger:nbits(int):int:this (FullOpts)
+; Total bytes of code 96, prolog size 8, PerfScore 25.60, instruction count 24, allocated bytes for code 96 (MethodHash=e9c7d4bd) for method V8.Crypto.BigInteger:nbits(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -79,7 +78,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 25 (0x00019) Actual length = 100 (0x000064)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.63%) : 7793.dasm - System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (FullOpts)
@@ -81,10 +81,9 @@ G_M1078_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
             ldr     x0, [x0, x4]
             umulh   x0, x2, x0
             add     x5, x5, x0
-            add     x1, x3, #1
             cmp     x0, x5
-            csel    x3, x3, x1, ls
-						;; size=40 bbWeight=0.50 PerfScore 6.50
+            csinc   x3, x3, x3, ls
+						;; size=36 bbWeight=0.50 PerfScore 6.25
 G_M1078_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     x0, x3
             mov     x1, x5
@@ -98,7 +97,7 @@ G_M1078_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             brk_windows #0
 						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 152, prolog size 8, PerfScore 46.45, instruction count 38, allocated bytes for code 152 (MethodHash=9db2fbc9) for method System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (FullOpts)
+; Total bytes of code 148, prolog size 8, PerfScore 45.80, instruction count 37, allocated bytes for code 148 (MethodHash=9db2fbc9) for method System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -109,7 +108,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 38 (0x00026) Actual length = 152 (0x000098)
+  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.44%) : 12798.dasm - System.Array:LastIndexOf[System.__Canon](System.__Canon[],System.__Canon,int):int (FullOpts)
@@ -43,14 +43,13 @@ G_M19954_IG02:        ; bbWeight=1, gcrefRegs=0006 {x1 x2}, byrefRegs=0000 {}, b
             sxtw    w21, w3
             ldr     w1, [x19, #0x08]
             ; gcrRegs -[x1]
-            add     w2, w21, #1
-            ; gcrRegs -[x2]
             cmp     w1, #0
-            csel    w22, wzr, w2, eq
+            csinc   w22, wzr, w21, eq
             ldr     x1, [x0, #0x38]
             ldr     x2, [x1, #0x10]
+            ; gcrRegs -[x2]
             cbz     x2, G_M19954_IG04
-						;; size=44 bbWeight=1 PerfScore 14.00
+						;; size=40 bbWeight=1 PerfScore 13.50
 G_M19954_IG03:        ; bbWeight=0.80, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     x0, x2
             b       G_M19954_IG05
@@ -93,7 +92,7 @@ G_M19954_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
 						;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 20, PerfScore 47.10, instruction count 41, allocated bytes for code 164 (MethodHash=5520b20d) for method System.Array:LastIndexOf[System.__Canon](System.__Canon[],System.__Canon,int):int (FullOpts)
+; Total bytes of code 160, prolog size 20, PerfScore 46.20, instruction count 40, allocated bytes for code 160 (MethodHash=5520b20d) for method System.Array:LastIndexOf[System.__Canon](System.__Canon[],System.__Canon,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -104,7 +103,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.04%) : 10641.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
@@ -1903,9 +1903,8 @@ G_M26699_IG87:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
             cmp     w26, #0
             cinc    w22, w0, ne
             neg     w0, w26
-            add     w0, w0, #1
             cmp     w26, #0
-            csel    w26, wzr, w0, eq
+            csinc   w26, wzr, w0, eq
             mov     w0, w22
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -1917,7 +1916,7 @@ G_M26699_IG87:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
             ldr     w0, [x19, #0x10]
             add     w0, w0, #1
             str     w0, [x19, #0x10]
-						;; size=72 bbWeight=0.50 PerfScore 9.00
+						;; size=68 bbWeight=0.50 PerfScore 8.75
 G_M26699_IG88:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {x19}, byref, isz
             add     x25, x19, #24
             ; byrRegs +[x25]
@@ -4051,7 +4050,7 @@ RWD264 	dd	G_M26699_IG66 - G_M26699_IG02
        	dd	G_M26699_IG85 - G_M26699_IG02
 
 
-; Total bytes of code 9296, prolog size 36, PerfScore 2496.10, instruction count 2324, allocated bytes for code 9296 (MethodHash=2db697b4) for method System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
+; Total bytes of code 9292, prolog size 36, PerfScore 2495.45, instruction count 2323, allocated bytes for code 9292 (MethodHash=2db697b4) for method System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -4062,7 +4061,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 2324 (0x00914) Actual length = 9296 (0x002450)
+  Function Length   : 2323 (0x00913) Actual length = 9292 (0x00244c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.04%) : 22603.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
@@ -2855,9 +2855,8 @@ G_M24648_IG139:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000000 {x2
             cmp     w0, w26
             bhs     G_M24648_IG195
             ldrh    w5, [x27, w0, UXTW #2]
-            add     w6, w0, #1
             cmp     w5, #58
-            csel    w0, w0, w6, ne
+            csinc   w0, w0, w0, ne
             sub     w5, w20, w0
             add     w5, w5, #1
             cmp     w5, #2
@@ -2892,7 +2891,7 @@ G_M24648_IG139:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000000 {x2
             cmp     w5, #0
             cset    x4, eq
             b       G_M24648_IG141
-						;; size=160 bbWeight=0.50 PerfScore 17.00
+						;; size=156 bbWeight=0.50 PerfScore 16.75
 G_M24648_IG140:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
             ; byrRegs -[x27]
             mov     w4, wzr
@@ -4807,7 +4806,7 @@ G_M24648_IG199:        ; bbWeight=0, gcVars=000000000000000000000000000000000000
 RWD00  	dq	4220C388D0000000h	;      3.6e+10
 
 
-; Total bytes of code 10860, prolog size 72, PerfScore 2243.34, instruction count 2715, allocated bytes for code 10860 (MethodHash=be469fb7) for method Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
+; Total bytes of code 10856, prolog size 72, PerfScore 2242.69, instruction count 2714, allocated bytes for code 10856 (MethodHash=be469fb7) for method Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -4818,7 +4817,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 2651 (0x00a5b) Actual length = 10604 (0x00296c)
+  Function Length   : 2650 (0x00a5a) Actual length = 10600 (0x002968)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.04%) : 21333.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (FullOpts)
@@ -2910,9 +2910,8 @@ G_M50986_IG139:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000000 {x2
             cmp     w0, w26
             bhs     G_M50986_IG195
             ldrh    w5, [x27, w0, UXTW #2]
-            add     w6, w0, #1
             cmp     w5, #58
-            csel    w0, w0, w6, ne
+            csinc   w0, w0, w0, ne
             sub     w5, w20, w0
             add     w5, w5, #1
             cmp     w5, #2
@@ -2947,7 +2946,7 @@ G_M50986_IG139:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=8000000 {x2
             cmp     w5, #0
             cset    x4, eq
             b       G_M50986_IG141
-						;; size=160 bbWeight=0.50 PerfScore 17.00
+						;; size=156 bbWeight=0.50 PerfScore 16.75
 G_M50986_IG140:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
             ; byrRegs -[x27]
             mov     w4, wzr
@@ -4880,7 +4879,7 @@ G_M50986_IG199:        ; bbWeight=0, gcVars=000000000000000000000000000000000000
 RWD00  	dq	4220C388D0000000h	;      3.6e+10
 
 
-; Total bytes of code 11032, prolog size 76, PerfScore 2287.04, instruction count 2758, allocated bytes for code 11032 (MethodHash=897238d5) for method Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (FullOpts)
+; Total bytes of code 11028, prolog size 76, PerfScore 2286.39, instruction count 2757, allocated bytes for code 11028 (MethodHash=897238d5) for method Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -4891,7 +4890,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 2694 (0x00a86) Actual length = 10776 (0x002a18)
+  Function Length   : 2693 (0x00a85) Actual length = 10772 (0x002a14)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_pgo.windows.arm64.checked.mch
-4 (-2.44%) : 75137.dasm - System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
@@ -80,10 +80,9 @@ G_M1078_IG05:        ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
             ldr     x0, [x0, x1]
             umulh   x0, x2, x0
             add     x4, x4, x0
-            add     x1, x3, #1
             cmp     x0, x4
-            csel    x3, x3, x1, ls
-						;; size=52 bbWeight=0.00 PerfScore 0.03
+            csinc   x3, x3, x3, ls
+						;; size=48 bbWeight=0.00 PerfScore 0.03
 G_M1078_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     x0, x3
             mov     x1, x4
@@ -101,7 +100,7 @@ G_M1078_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
 						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 8, PerfScore 40.94, instruction count 41, allocated bytes for code 164 (MethodHash=9db2fbc9) for method System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
+; Total bytes of code 160, prolog size 8, PerfScore 40.53, instruction count 40, allocated bytes for code 160 (MethodHash=9db2fbc9) for method System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -112,7 +111,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.44%) : 75962.dasm - System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
@@ -80,10 +80,9 @@ G_M1078_IG05:        ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
             ldr     x0, [x0, x1]
             umulh   x0, x2, x0
             add     x4, x4, x0
-            add     x1, x3, #1
             cmp     x0, x4
-            csel    x3, x3, x1, ls
-						;; size=52 bbWeight=0.00 PerfScore 0.03
+            csinc   x3, x3, x3, ls
+						;; size=48 bbWeight=0.00 PerfScore 0.03
 G_M1078_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     x0, x3
             mov     x1, x4
@@ -101,7 +100,7 @@ G_M1078_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
 						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 8, PerfScore 40.93, instruction count 41, allocated bytes for code 164 (MethodHash=9db2fbc9) for method System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
+; Total bytes of code 160, prolog size 8, PerfScore 40.53, instruction count 40, allocated bytes for code 160 (MethodHash=9db2fbc9) for method System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -112,7 +111,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.44%) : 72268.dasm - System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
@@ -80,10 +80,9 @@ G_M1078_IG05:        ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
             ldr     x0, [x0, x1]
             umulh   x0, x2, x0
             add     x4, x4, x0
-            add     x1, x3, #1
             cmp     x0, x4
-            csel    x3, x3, x1, ls
-						;; size=52 bbWeight=0.00 PerfScore 0.03
+            csinc   x3, x3, x3, ls
+						;; size=48 bbWeight=0.00 PerfScore 0.03
 G_M1078_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     x0, x3
             mov     x1, x4
@@ -101,7 +100,7 @@ G_M1078_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
 						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 8, PerfScore 40.93, instruction count 41, allocated bytes for code 164 (MethodHash=9db2fbc9) for method System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
+; Total bytes of code 160, prolog size 8, PerfScore 40.53, instruction count 40, allocated bytes for code 160 (MethodHash=9db2fbc9) for method System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -112,7 +111,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.26%) : 69898.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Intrinsified(ulong,ulong):ulong (Tier1)
@@ -346,11 +346,10 @@ G_M26435_IG35:        ; bbWeight=0.59, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 						;; size=4 bbWeight=0.59 PerfScore 0.59
 G_M26435_IG36:        ; bbWeight=0.28, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldrsb   w0, [x19]
-            add     x1, x19, #1
             cmp     w0, #0
-            csel    x19, x19, x1, lt
+            csinc   x19, x19, x19, lt
             b       G_M26435_IG27
-						;; size=20 bbWeight=0.28 PerfScore 1.54
+						;; size=16 bbWeight=0.28 PerfScore 1.40
 G_M26435_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movz    x0, #8
             movk    x0, #0xD1FFAB1E LSL #16
@@ -594,7 +593,7 @@ G_M26435_IG53:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 RWD00  	dq	1001100110011001h, 1001100110011001h
 
 
-; Total bytes of code 1528, prolog size 36, PerfScore 217.98, instruction count 382, allocated bytes for code 1528 (MethodHash=3d4498bc) for method System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Intrinsified(ulong,ulong):ulong (Tier1)
+; Total bytes of code 1524, prolog size 36, PerfScore 217.44, instruction count 381, allocated bytes for code 1524 (MethodHash=3d4498bc) for method System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Intrinsified(ulong,ulong):ulong (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -605,7 +604,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 382 (0x0017e) Actual length = 1528 (0x0005f8)
+  Function Length   : 381 (0x0017d) Actual length = 1524 (0x0005f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.18%) : 56165.dasm - System.Threading.Tasks.Parallel:ForWorker[System.__Canon,int](int,int,System.Threading.Tasks.ParallelOptions,System.Action`1[int],System.Action`2[int,System.Threading.Tasks.ParallelLoopState],System.Func`4[int,System.__Canon,System.__Canon,System.__Canon],System.Func`1[System.__Canon],System.Action`1[System.__Canon]):System.Threading.Tasks.ParallelLoopResult (Tier1)
@@ -317,9 +317,8 @@ G_M22842_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             udiv    x2, x1, x0
             sxtw    w21, w2
             msub    x1, x2, x0, x1
-            add     w2, w21, #1
             cmp     x1, #0
-            csel    w21, w21, w2, eq
+            csinc   w21, w21, w21, eq
             mov     x25, x0
             strb    wzr, [x24, #0x1C]
             sxtw    x1, w21
@@ -339,7 +338,7 @@ G_M22842_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     w1, wzr
             cmp     w21, #0
             ble     G_M22842_IG11
-						;; size=168 bbWeight=1 PerfScore 70.00
+						;; size=164 bbWeight=1 PerfScore 69.50
 G_M22842_IG09:        ; bbWeight=1, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref, isz
             ldr     x14, [x24, #0x08]
             ; gcrRegs +[x14]
@@ -1012,7 +1011,7 @@ G_M22842_IG54:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=28 bbWeight=1 PerfScore 18.00
 
-; Total bytes of code 2176, prolog size 68, PerfScore 538.40, instruction count 544, allocated bytes for code 2176 (MethodHash=8ccda6c5) for method System.Threading.Tasks.Parallel:ForWorker[System.__Canon,int](int,int,System.Threading.Tasks.ParallelOptions,System.Action`1[int],System.Action`2[int,System.Threading.Tasks.ParallelLoopState],System.Func`4[int,System.__Canon,System.__Canon,System.__Canon],System.Func`1[System.__Canon],System.Action`1[System.__Canon]):System.Threading.Tasks.ParallelLoopResult (Tier1)
+; Total bytes of code 2172, prolog size 68, PerfScore 537.50, instruction count 543, allocated bytes for code 2172 (MethodHash=8ccda6c5) for method System.Threading.Tasks.Parallel:ForWorker[System.__Canon,int](int,int,System.Threading.Tasks.ParallelOptions,System.Action`1[int],System.Action`2[int,System.Threading.Tasks.ParallelLoopState],System.Func`4[int,System.__Canon,System.__Canon,System.__Canon],System.Func`1[System.__Canon],System.Action`1[System.__Canon]):System.Threading.Tasks.ParallelLoopResult (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -1023,7 +1022,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 382 (0x0017e) Actual length = 1528 (0x0005f8)
+  Function Length   : 381 (0x0017d) Actual length = 1524 (0x0005f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.11%) : 61599.dasm - Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(bool,int,System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.String,System.Reflection.Metadata.TypeDefinitionHandle]],System.StringComparer,byref,byref) (Tier1)
@@ -391,10 +391,9 @@ G_M15004_IG17:        ; bbWeight=1.75, gcrefRegs=1C300028 {x3 x5 x20 x21 x26 x27
 						;; size=12 bbWeight=1.75 PerfScore 7.88
 G_M15004_IG18:        ; bbWeight=0.75, gcrefRegs=1C300000 {x20 x21 x26 x27 x28}, byrefRegs=C00000 {x22 x23}, byref
             ; gcrRegs -[x3]
-            add     w11, w19, #1
             tst     w24, #255
-            csel    w19, w19, w11, ne
-						;; size=12 bbWeight=0.75 PerfScore 1.12
+            csinc   w19, w19, w19, ne
+						;; size=8 bbWeight=0.75 PerfScore 0.75
 G_M15004_IG19:        ; bbWeight=32.25, gcrefRegs=1C300000 {x20 x21 x26 x27 x28}, byrefRegs=C00000 {x22 x23}, byref, isz
             ldp     x2, x1, [fp, #0x70]	// [V167 cse5], [V166 cse4]
             cmp     x1, x2
@@ -1837,7 +1836,7 @@ G_M15004_IG119:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ret     lr
 						;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 3808, prolog size 60, PerfScore 6583.03, instruction count 952, allocated bytes for code 3808 (MethodHash=f676c563) for method Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(bool,int,System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.String,System.Reflection.Metadata.TypeDefinitionHandle]],System.StringComparer,byref,byref) (Tier1)
+; Total bytes of code 3804, prolog size 60, PerfScore 6582.26, instruction count 951, allocated bytes for code 3804 (MethodHash=f676c563) for method Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(bool,int,System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.String,System.Reflection.Metadata.TypeDefinitionHandle]],System.StringComparer,byref,byref) (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -1848,7 +1847,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 922 (0x0039a) Actual length = 3688 (0x000e68)
+  Function Length   : 921 (0x00399) Actual length = 3684 (0x000e64)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
benchmarks.run_tiered.windows.arm64.checked.mch
-4 (-2.63%) : 42618.dasm - System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
@@ -81,10 +81,9 @@ G_M1078_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
             ldr     x0, [x0, x4]
             umulh   x0, x2, x0
             add     x5, x5, x0
-            add     x1, x3, #1
             cmp     x0, x5
-            csel    x3, x3, x1, ls
-						;; size=40 bbWeight=0.50 PerfScore 6.50
+            csinc   x3, x3, x3, ls
+						;; size=36 bbWeight=0.50 PerfScore 6.25
 G_M1078_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     x0, x3
             mov     x1, x5
@@ -98,7 +97,7 @@ G_M1078_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
             brk_windows #0
 						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 152, prolog size 8, PerfScore 46.45, instruction count 38, allocated bytes for code 152 (MethodHash=9db2fbc9) for method System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
+; Total bytes of code 148, prolog size 8, PerfScore 45.80, instruction count 37, allocated bytes for code 148 (MethodHash=9db2fbc9) for method System.Number:ComputeProductApproximation(int,long,ulong):System.ValueTuple`2[ulong,ulong] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -109,7 +108,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 38 (0x00026) Actual length = 152 (0x000098)
+  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.04%) : 22332.dasm - System.Text.RegularExpressions.RegexParser:NoteCaptureSlot(int,int):this (Tier1)
@@ -79,11 +79,10 @@ G_M45734_IG03:        ; bbWeight=0.50, gcrefRegs=400000 {x22}, byrefRegs=80000 {
             bgt     G_M45734_IG04
             movn    w0, #0xD1FFAB1E LSL #16
             movn    w1, #0xD1FFAB1E LSL #16
-            add     w2, w20, #1
             cmp     w20, w0
-            csel    w0, w1, w2, eq
+            csinc   w0, w1, w20, eq
             str     w0, [x19, #0x68]
-						;; size=100 bbWeight=0.50 PerfScore 15.25
+						;; size=96 bbWeight=0.50 PerfScore 15.00
 G_M45734_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[x19]
             ldp     x21, x22, [sp, #0x20]
@@ -92,7 +91,7 @@ G_M45734_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=16 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 196, prolog size 16, PerfScore 62.35, instruction count 49, allocated bytes for code 196 (MethodHash=66904d59) for method System.Text.RegularExpressions.RegexParser:NoteCaptureSlot(int,int):this (Tier1)
+; Total bytes of code 192, prolog size 16, PerfScore 61.70, instruction count 48, allocated bytes for code 192 (MethodHash=66904d59) for method System.Text.RegularExpressions.RegexParser:NoteCaptureSlot(int,int):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -103,7 +102,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 49 (0x00031) Actual length = 196 (0x0000c4)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-1.09%) : 7871.dasm - System.TimeZoneInfo:GetLocalizedNameByMuiNativeResource(System.String):System.String (Tier0-FullOpts)
@@ -260,13 +260,11 @@ G_M6234_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}
             ldp     w22, w23, [x0]
             add     w0, w22, w19
             ; byrRegs -[x0]
-            add     w0, w0, #1
             cmp     w22, #0
-            csel    w22, w22, w0, ge
+            csinc   w22, w22, w0, ge
             add     w0, w23, w19
-            add     w0, w0, #1
             cmp     w23, #0
-            csel    w23, w23, w0, ge
+            csinc   w23, w23, w0, ge
             sub     w23, w23, w22
             mov     w0, w22
             add     x0, x0, w23, UXTW
@@ -289,7 +287,7 @@ G_M6234_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=300000 {x20 x21}
             blr     x2
             ; gcrRegs -[x1]
             ; gcr arg pop 0
-						;; size=120 bbWeight=1 PerfScore 23.00
+						;; size=112 bbWeight=1 PerfScore 22.00
 G_M6234_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=700000 {x20 x21 x22}, byref, isz
             movz    x0, #0xD1FFAB1E      // code for System.Globalization.CultureInfo:get_InvariantCulture():System.Globalization.CultureInfo
             movk    x0, #0xD1FFAB1E LSL #16
@@ -401,13 +399,11 @@ G_M6234_IG10:        ; bbWeight=1, gcrefRegs=C00000 {x22 x23}, byrefRegs=300002
             ldp     w1, w0, [x0]
             ; byrRegs -[x0-x1]
             add     w2, w1, w19
-            add     w2, w2, #1
             cmp     w1, #0
-            csel    w1, w1, w2, ge
+            csinc   w1, w1, w2, ge
             add     w2, w0, w19
-            add     w2, w2, #1
             cmp     w0, #0
-            csel    w0, w0, w2, ge
+            csinc   w0, w0, w2, ge
             sub     w21, w0, w1
             ; byrRegs -[x21]
             mov     w0, w1
@@ -430,7 +426,7 @@ G_M6234_IG10:        ; bbWeight=1, gcrefRegs=C00000 {x22 x23}, byrefRegs=300002
             mov     w0, wzr
             cmp     w21, #0
             ble     G_M6234_IG12
-						;; size=128 bbWeight=1 PerfScore 25.50
+						;; size=120 bbWeight=1 PerfScore 24.50
 G_M6234_IG11:        ; bbWeight=8, gcrefRegs=C00000 {x22 x23}, byrefRegs=80000 {x19}, byref, isz
             ldrh    w1, [x19, w0, UXTW #2]
             cmp     w1, #64
@@ -696,7 +692,7 @@ G_M6234_IG27:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
 						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1464, prolog size 68, PerfScore 834.40, instruction count 366, allocated bytes for code 1464 (MethodHash=4125e7a5) for method System.TimeZoneInfo:GetLocalizedNameByMuiNativeResource(System.String):System.String (Tier0-FullOpts)
+; Total bytes of code 1448, prolog size 68, PerfScore 830.80, instruction count 362, allocated bytes for code 1448 (MethodHash=4125e7a5) for method System.TimeZoneInfo:GetLocalizedNameByMuiNativeResource(System.String):System.String (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -707,7 +703,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 352 (0x00160) Actual length = 1408 (0x000580)
+  Function Length   : 348 (0x0015c) Actual length = 1392 (0x000570)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.30%) : 15136.dasm - System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Intrinsified(ulong,ulong):ulong (Tier1)
@@ -540,15 +540,14 @@ G_M26435_IG43:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 G_M26435_IG44:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             tbz     w20, #0, G_M26435_IG31
             ldrsb   w0, [x19]
-            add     x1, x19, #1
             cmp     w0, #0
-            csel    x19, x19, x1, lt
+            csinc   x19, x19, x19, lt
             b       G_M26435_IG31
-						;; size=24 bbWeight=0.50 PerfScore 3.25
+						;; size=20 bbWeight=0.50 PerfScore 3.00
 RWD00  	dq	1001100110011001h, 1001100110011001h
 
 
-; Total bytes of code 1348, prolog size 32, PerfScore 463.55, instruction count 337, allocated bytes for code 1348 (MethodHash=3d4498bc) for method System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Intrinsified(ulong,ulong):ulong (Tier1)
+; Total bytes of code 1344, prolog size 32, PerfScore 462.90, instruction count 336, allocated bytes for code 1344 (MethodHash=3d4498bc) for method System.Text.Ascii:GetIndexOfFirstNonAsciiByte_Intrinsified(ulong,ulong):ulong (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -559,7 +558,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 337 (0x00151) Actual length = 1348 (0x000544)
+  Function Length   : 336 (0x00150) Actual length = 1344 (0x000540)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.18%) : 35957.dasm - Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(bool,int,System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.String,System.Reflection.Metadata.TypeDefinitionHandle]],System.StringComparer,byref,byref) (Tier1)
@@ -296,10 +296,9 @@ G_M15004_IG08:        ; bbWeight=4, gcrefRegs=16100000 {x20 x25 x26 x28}, byrefR
 						;; size=72 bbWeight=4 PerfScore 88.00
 G_M15004_IG09:        ; bbWeight=0.50, gcVars=00000000200000000000002000000010 {V10 V12 V13}, gcrefRegs=16100000 {x20 x25 x26 x28}, byrefRegs=C00000 {x22 x23}, gcvars, byref
             ; GC ptr vars -{V11}
-            add     w0, w19, #1
             tst     w24, #255
-            csel    w19, w19, w0, ne
-						;; size=12 bbWeight=0.50 PerfScore 0.75
+            csinc   w19, w19, w19, ne
+						;; size=8 bbWeight=0.50 PerfScore 0.50
 G_M15004_IG10:        ; bbWeight=4, gcrefRegs=16100000 {x20 x25 x26 x28}, byrefRegs=C00000 {x22 x23}, byref, isz
             mov     x0, x28
             ; gcrRegs +[x0]
@@ -1060,7 +1059,7 @@ G_M15004_IG53:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 2224, prolog size 60, PerfScore 1344.15, instruction count 556, allocated bytes for code 2224 (MethodHash=f676c563) for method Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(bool,int,System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.String,System.Reflection.Metadata.TypeDefinitionHandle]],System.StringComparer,byref,byref) (Tier1)
+; Total bytes of code 2220, prolog size 60, PerfScore 1343.50, instruction count 555, allocated bytes for code 2220 (MethodHash=f676c563) for method Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(bool,int,System.Collections.Generic.IEnumerable`1[System.Linq.IGrouping`2[System.String,System.Reflection.Metadata.TypeDefinitionHandle]],System.StringComparer,byref,byref) (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -1071,7 +1070,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 533 (0x00215) Actual length = 2132 (0x000854)
+  Function Length   : 532 (0x00214) Actual length = 2128 (0x000850)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.04%) : 43655.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier1)
@@ -1903,9 +1903,8 @@ G_M26699_IG87:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
             cmp     w26, #0
             cinc    w22, w0, ne
             neg     w0, w26
-            add     w0, w0, #1
             cmp     w26, #0
-            csel    w26, wzr, w0, eq
+            csinc   w26, wzr, w0, eq
             mov     w0, w22
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -1917,7 +1916,7 @@ G_M26699_IG87:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
             ldr     w0, [x19, #0x10]
             add     w0, w0, #1
             str     w0, [x19, #0x10]
-						;; size=72 bbWeight=0.50 PerfScore 9.00
+						;; size=68 bbWeight=0.50 PerfScore 8.75
 G_M26699_IG88:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {x19}, byref, isz
             add     x25, x19, #24
             ; byrRegs +[x25]
@@ -4051,7 +4050,7 @@ RWD264 	dd	G_M26699_IG66 - G_M26699_IG02
        	dd	G_M26699_IG85 - G_M26699_IG02
 
 
-; Total bytes of code 9296, prolog size 36, PerfScore 2496.10, instruction count 2324, allocated bytes for code 9296 (MethodHash=2db697b4) for method System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier1)
+; Total bytes of code 9292, prolog size 36, PerfScore 2495.45, instruction count 2323, allocated bytes for code 9292 (MethodHash=2db697b4) for method System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -4062,7 +4061,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 2324 (0x00914) Actual length = 9296 (0x002450)
+  Function Length   : 2323 (0x00913) Actual length = 9292 (0x00244c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
coreclr_tests.run.windows.arm64.checked.mch
-4 (-10.00%) : 397283.dasm - Program:I4_BT_reg_reg_JCC(int,int):int (FullOpts)
@@ -20,17 +20,16 @@ G_M26481_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M26481_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w2, #1
             lsl     w1, w2, w1
-            add     w2, w0, #1
-            sub     w3, w0, #1
+            sub     w2, w0, #1
             tst     w0, w1
-            csel    w0, w2, w3, eq
-						;; size=24 bbWeight=1 PerfScore 3.00
+            csinc   w0, w2, w0, ne
+						;; size=20 bbWeight=1 PerfScore 2.50
 G_M26481_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 40, prolog size 8, PerfScore 10.50, instruction count 10, allocated bytes for code 40 (MethodHash=ef1d988e) for method Program:I4_BT_reg_reg_JCC(int,int):int (FullOpts)
+; Total bytes of code 36, prolog size 8, PerfScore 9.60, instruction count 9, allocated bytes for code 36 (MethodHash=ef1d988e) for method Program:I4_BT_reg_reg_JCC(int,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -41,7 +40,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 10 (0x0000a) Actual length = 40 (0x000028)
+  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-9.09%) : 384533.dasm - CSE1:DoIt(byref):int (FullOpts)
@@ -31,32 +31,29 @@ G_M17264_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
             str     w5, [x0]
             ldp     w3, w4, [x2]
             add     w3, w3, w4
-            add     w4, w1, #1
             cmp     w3, #1
-            csel    w1, w1, w4, ne
+            csinc   w1, w1, w1, ne
             mov     w3, #2
             str     w3, [x0]
             ldp     w3, w4, [x2]
             add     w3, w3, w4
-            add     w4, w1, #1
             cmp     w3, #2
-            csel    w1, w1, w4, ne
+            csinc   w1, w1, w1, ne
             mov     w3, #3
             str     w3, [x0]
             ldp     w0, w2, [x2]
             ; byrRegs -[x0]
             add     w0, w0, w2
-            add     w2, w1, #1
             cmp     w0, #3
-            csel    w1, w1, w2, ne
+            csinc   w1, w1, w1, ne
             mov     w0, w1
-						;; size=116 bbWeight=1 PerfScore 26.00
+						;; size=104 bbWeight=1 PerfScore 24.50
 G_M17264_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 132, prolog size 8, PerfScore 42.70, instruction count 33, allocated bytes for code 132 (MethodHash=bb82bc8f) for method CSE1:DoIt(byref):int (FullOpts)
+; Total bytes of code 120, prolog size 8, PerfScore 40.00, instruction count 30, allocated bytes for code 120 (MethodHash=bb82bc8f) for method CSE1:DoIt(byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -67,7 +64,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 33 (0x00021) Actual length = 132 (0x000084)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-16 (-7.69%) : 238614.dasm - CodeGenTests.CalculateChecksumTest:CalculateChecksum(byref,int):ushort (FullOpts)
@@ -60,10 +60,9 @@ G_M19957_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, b
             add     x0, x0, #4
             mov     w3, w3
             add     x2, x2, x3
-            add     x4, x2, #1
             cmp     x2, x3
-            csel    x2, x2, x4, hs
-						;; size=28 bbWeight=0.50 PerfScore 3.00
+            csinc   x2, x2, x2, hs
+						;; size=24 bbWeight=0.50 PerfScore 2.75
 G_M19957_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             tbz     w1, #1, G_M19957_IG10
 						;; size=4 bbWeight=1 PerfScore 1.00
@@ -72,10 +71,9 @@ G_M19957_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, b
             add     x0, x0, #2
             mov     w3, w3
             add     x2, x2, x3
-            add     x4, x2, #1
             cmp     x2, x3
-            csel    x2, x2, x4, hs
-						;; size=28 bbWeight=0.50 PerfScore 3.00
+            csinc   x2, x2, x2, hs
+						;; size=24 bbWeight=0.50 PerfScore 2.75
 G_M19957_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             tbz     w1, #0, G_M19957_IG12
 						;; size=4 bbWeight=1 PerfScore 1.00
@@ -83,16 +81,14 @@ G_M19957_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, b
             ldrb    w0, [x0]
             ; byrRegs -[x0]
             add     x2, x2, x0
-            add     x1, x2, #1
             cmp     x2, x0
-            csel    x2, x2, x1, hs
-						;; size=20 bbWeight=0.50 PerfScore 2.50
+            csinc   x2, x2, x2, hs
+						;; size=16 bbWeight=0.50 PerfScore 2.25
 G_M19957_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             lsr     x0, x2, #32
             add     w0, w0, w2
-            add     w1, w0, #1
             cmp     w0, w2
-            csel    w0, w0, w1, hs
+            csinc   w0, w0, w0, hs
             uxth    w1, w0
             add     w0, w1, w0,  LSR #16
             uxth    w0, w0
@@ -102,14 +98,14 @@ G_M19957_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             csel    w0, w0, w2, ge
             mvn     w0, w0
             uxth    w0, w0
-						;; size=56 bbWeight=1 PerfScore 8.00
+						;; size=52 bbWeight=1 PerfScore 7.50
 G_M19957_IG13:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 ; END METHOD CodeGenTests.CalculateChecksumTest:CalculateChecksum(byref,int):ushort
 
-; Total bytes of code 208, prolog size 8, PerfScore 76.80, instruction count 52, allocated bytes for code 208 (MethodHash=fd98b20a) for method CodeGenTests.CalculateChecksumTest:CalculateChecksum(byref,int):ushort (FullOpts)
+; Total bytes of code 192, prolog size 8, PerfScore 73.95, instruction count 48, allocated bytes for code 192 (MethodHash=fd98b20a) for method CodeGenTests.CalculateChecksumTest:CalculateChecksum(byref,int):ushort (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -120,7 +116,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 52 (0x00034) Actual length = 208 (0x0000d0)
+  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.07%) : 300380.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ArgIterator:GetNextOffset():int:this (Tier1)
@@ -431,11 +431,10 @@ G_M2066_IG19:        ; bbWeight=0.00, gcVars=00000000000000000000000000000000000
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            add     w1, w20, #1
             cmp     w0, #0
-            csel    w20, w20, w1, eq
+            csinc   w20, w20, w20, eq
             b       G_M2066_IG05
-						;; size=56 bbWeight=0.00 PerfScore 0.04
+						;; size=52 bbWeight=0.00 PerfScore 0.03
 G_M2066_IG20:        ; bbWeight=0.61, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ldr     w26, [x19, #0x28]
             add     x27, x19, #160
@@ -2588,7 +2587,7 @@ RWD48  	dd	G_M2066_IG128 - G_M2066_IG02
        	dd	G_M2066_IG130 - G_M2066_IG02
 
 
-; Total bytes of code 6120, prolog size 52, PerfScore 857.30, instruction count 1530, allocated bytes for code 6120 (MethodHash=57d4f7ed) for method ILCompiler.DependencyAnalysis.ReadyToRun.ArgIterator:GetNextOffset():int:this (Tier1)
+; Total bytes of code 6116, prolog size 52, PerfScore 856.89, instruction count 1529, allocated bytes for code 6116 (MethodHash=57d4f7ed) for method ILCompiler.DependencyAnalysis.ReadyToRun.ArgIterator:GetNextOffset():int:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -2599,7 +2598,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 1530 (0x005fa) Actual length = 6120 (0x0017e8)
+  Function Length   : 1529 (0x005f9) Actual length = 6116 (0x0017e4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.07%) : 298375.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.ArgIterator:GetNextOffset():int:this (Tier1)
@@ -431,11 +431,10 @@ G_M2066_IG19:        ; bbWeight=0.00, gcVars=00000000000000000000000000000000000
             blr     x1
             ; gcrRegs -[x0]
             ; gcr arg pop 0
-            add     w1, w20, #1
             cmp     w0, #0
-            csel    w20, w20, w1, eq
+            csinc   w20, w20, w20, eq
             b       G_M2066_IG05
-						;; size=56 bbWeight=0.00 PerfScore 0.04
+						;; size=52 bbWeight=0.00 PerfScore 0.03
 G_M2066_IG20:        ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ldr     w26, [x19, #0x28]
             add     x27, x19, #160
@@ -2588,7 +2587,7 @@ RWD48  	dd	G_M2066_IG128 - G_M2066_IG02
        	dd	G_M2066_IG130 - G_M2066_IG02
 
 
-; Total bytes of code 6120, prolog size 52, PerfScore 858.82, instruction count 1530, allocated bytes for code 6120 (MethodHash=57d4f7ed) for method ILCompiler.DependencyAnalysis.ReadyToRun.ArgIterator:GetNextOffset():int:this (Tier1)
+; Total bytes of code 6116, prolog size 52, PerfScore 858.42, instruction count 1529, allocated bytes for code 6116 (MethodHash=57d4f7ed) for method ILCompiler.DependencyAnalysis.ReadyToRun.ArgIterator:GetNextOffset():int:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -2599,7 +2598,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 1530 (0x005fa) Actual length = 6120 (0x0017e8)
+  Function Length   : 1529 (0x005f9) Actual length = 6116 (0x0017e4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.04%) : 385372.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
@@ -1903,9 +1903,8 @@ G_M26699_IG87:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
             cmp     w26, #0
             cinc    w22, w0, ne
             neg     w0, w26
-            add     w0, w0, #1
             cmp     w26, #0
-            csel    w26, wzr, w0, eq
+            csinc   w26, wzr, w0, eq
             mov     w0, w22
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -1917,7 +1916,7 @@ G_M26699_IG87:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
             ldr     w0, [x19, #0x10]
             add     w0, w0, #1
             str     w0, [x19, #0x10]
-						;; size=72 bbWeight=0.50 PerfScore 9.00
+						;; size=68 bbWeight=0.50 PerfScore 8.75
 G_M26699_IG88:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {x19}, byref, isz
             add     x25, x19, #24
             ; byrRegs +[x25]
@@ -4051,7 +4050,7 @@ RWD264 	dd	G_M26699_IG66 - G_M26699_IG02
        	dd	G_M26699_IG85 - G_M26699_IG02
 
 
-; Total bytes of code 9296, prolog size 36, PerfScore 2496.10, instruction count 2324, allocated bytes for code 9296 (MethodHash=2db697b4) for method System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
+; Total bytes of code 9292, prolog size 36, PerfScore 2495.45, instruction count 2323, allocated bytes for code 9292 (MethodHash=2db697b4) for method System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -4062,7 +4061,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 2324 (0x00914) Actual length = 9296 (0x002450)
+  Function Length   : 2323 (0x00913) Actual length = 9292 (0x00244c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
libraries.crossgen2.windows.arm64.checked.mch
-4 (-11.11%) : 152190.dasm - Microsoft.Diagnostics.Tracing.Analysis.CircularBuffer`1[System.__Canon]:Next(int):int:this (FullOpts)
@@ -23,16 +23,15 @@ G_M13494_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             ldr     w0, [x0, #0x18]
             ; gcrRegs -[x0]
             sub     w0, w0, #1
-            add     w2, w1, #1
             cmp     w1, w0
-            csel    w0, wzr, w2, eq
-						;; size=20 bbWeight=1 PerfScore 5.00
+            csinc   w0, wzr, w1, eq
+						;; size=16 bbWeight=1 PerfScore 4.50
 G_M13494_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 36, prolog size 8, PerfScore 12.10, instruction count 9, allocated bytes for code 36 (MethodHash=5dfacb49) for method Microsoft.Diagnostics.Tracing.Analysis.CircularBuffer`1[System.__Canon]:Next(int):int:this (FullOpts)
+; Total bytes of code 32, prolog size 8, PerfScore 11.20, instruction count 8, allocated bytes for code 32 (MethodHash=5dfacb49) for method Microsoft.Diagnostics.Tracing.Analysis.CircularBuffer`1[System.__Canon]:Next(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -43,7 +42,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 9 (0x00009) Actual length = 36 (0x000024)
+  Function Length   : 8 (0x00008) Actual length = 32 (0x000020)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-9.09%) : 14778.dasm - System.Index:GetOffset(int):int:this (FullOpts)
@@ -27,17 +27,16 @@ G_M58665_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
             ; byrRegs -[x0]
             sxtw    w2, w0
             add     w1, w2, w1
-            add     w1, w1, #1
             cmp     w0, #0
-            csel    w2, w2, w1, ge
+            csinc   w2, w2, w1, ge
             mov     w0, w2
-						;; size=28 bbWeight=1 PerfScore 6.00
+						;; size=24 bbWeight=1 PerfScore 5.50
 G_M58665_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
 						;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 44, prolog size 8, PerfScore 13.90, instruction count 11, allocated bytes for code 44 (MethodHash=59291ad6) for method System.Index:GetOffset(int):int:this (FullOpts)
+; Total bytes of code 40, prolog size 8, PerfScore 13.00, instruction count 10, allocated bytes for code 40 (MethodHash=59291ad6) for method System.Index:GetOffset(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -48,7 +47,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
+  Function Length   : 10 (0x0000a) Actual length = 40 (0x000028)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-8 (-7.69%) : 15494.dasm - System.Range:GetOffsetAndLength(int):System.ValueTuple`2[int,int]:this (FullOpts)
@@ -33,15 +33,13 @@ G_M16876_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
             ; byrRegs +[x0]
             ldr     w11, [x0]
             add     w2, w11, w1
-            add     w2, w2, #1
             cmp     w11, #0
-            csel    w11, w11, w2, ge
+            csinc   w11, w11, w2, ge
             ldr     w0, [x0, #0x04]
             ; byrRegs -[x0]
             add     w2, w0, w1
-            add     w2, w2, #1
             cmp     w0, #0
-            csel    w0, w0, w2, ge
+            csinc   w0, w0, w2, ge
             cmp     w0, w1
             ccmp    w11, w0, c, ls
             bhi     G_M16876_IG04
@@ -49,7 +47,7 @@ G_M16876_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
             sub     w0, w0, w11
             str     w0, [fp, #0x1C]	// [V12 tmp7]
             ldr     x0, [fp, #0x18]	// [V06 tmp1]
-						;; size=68 bbWeight=1 PerfScore 16.50
+						;; size=60 bbWeight=1 PerfScore 15.50
 G_M16876_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
             ret     lr
@@ -62,7 +60,7 @@ G_M16876_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
 						;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 104, prolog size 8, PerfScore 30.40, instruction count 26, allocated bytes for code 104 (MethodHash=5f98be13) for method System.Range:GetOffsetAndLength(int):System.ValueTuple`2[int,int]:this (FullOpts)
+; Total bytes of code 96, prolog size 8, PerfScore 28.60, instruction count 24, allocated bytes for code 96 (MethodHash=5f98be13) for method System.Range:GetOffsetAndLength(int):System.ValueTuple`2[int,int]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -73,7 +71,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.08%) : 195166.dasm - System.Data.Common.DbDataAdapter:Update(System.Data.DataRow[],System.Data.Common.DataTableMapping):int:this (FullOpts)
@@ -614,12 +614,11 @@ G_M42051_IG19:        ; bbWeight=1, gcVars=00000000000008000001010008040381 {V00
             ; gcr arg pop 0
             ldr     w11, [fp, #0xB4]	// [V04 loc1]
             mov     w1, w11
-            add     w1, w1, #1
             cmp     w0, #2
-            csel    w0, w11, w1, ne
+            csinc   w0, w11, w1, ne
             str     w0, [fp, #0xB4]	// [V04 loc1]
             b       G_M42051_IG15
-						;; size=56 bbWeight=1 PerfScore 14.50
+						;; size=52 bbWeight=1 PerfScore 14.00
 G_M42051_IG20:        ; bbWeight=4, gcVars=00000000000388000001030008040381 {V00 V02 V05 V06 V10 V11 V14 V15 V17 V25 V27 V33 V42}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars +{V09 V15 V17 V25 V27 V33 V41 V79 V80}
             ldr     w0, [fp, #0xAC]	// [V09 loc6]
@@ -2222,7 +2221,7 @@ G_M42051_IG103:        ; bbWeight=0, funclet epilog, nogc, extend
             ret     lr
 						;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 5164, prolog size 52, PerfScore 5130.94, instruction count 1291, allocated bytes for code 5164 (MethodHash=24105bbc) for method System.Data.Common.DbDataAdapter:Update(System.Data.DataRow[],System.Data.Common.DataTableMapping):int:this (FullOpts)
+; Total bytes of code 5160, prolog size 52, PerfScore 5130.04, instruction count 1290, allocated bytes for code 5160 (MethodHash=24105bbc) for method System.Data.Common.DbDataAdapter:Update(System.Data.DataRow[],System.Data.Common.DataTableMapping):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -2233,7 +2232,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 996 (0x003e4) Actual length = 3984 (0x000f90)
+  Function Length   : 995 (0x003e3) Actual length = 3980 (0x000f8c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.07%) : 52943.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:ScanNumericLiteral(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
@@ -658,11 +658,10 @@ G_M54455_IG40:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
 						;; size=148 bbWeight=0.50 PerfScore 21.25
 G_M54455_IG41:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             mov     w1, #45
-            add     w11, w23, #1
             cmp     w0, #43
             ccmp    w0, w1, z, ne
-            csel    w23, w23, w11, ne
-						;; size=20 bbWeight=0.50 PerfScore 1.25
+            csinc   w23, w23, w23, ne
+						;; size=16 bbWeight=0.50 PerfScore 1.00
 G_M54455_IG42:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     w0, [x19, #0xB0]
             add     w0, w0, w23
@@ -2091,7 +2090,7 @@ RWD56  	dd	G_M54455_IG144 - G_M54455_IG02
        	dd	G_M54455_IG148 - G_M54455_IG02
 
 
-; Total bytes of code 5628, prolog size 52, PerfScore 2328.43, instruction count 1407, allocated bytes for code 5628 (MethodHash=92c02b48) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:ScanNumericLiteral(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
+; Total bytes of code 5624, prolog size 52, PerfScore 2327.78, instruction count 1406, allocated bytes for code 5624 (MethodHash=92c02b48) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:ScanNumericLiteral(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode]):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -2102,7 +2101,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 1407 (0x0057f) Actual length = 5628 (0x0015fc)
+  Function Length   : 1406 (0x0057e) Actual length = 5624 (0x0015f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.06%) : 272512.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
@@ -1700,9 +1700,8 @@ G_M26699_IG87:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
             cmp     w0, #0
             cinc    w1, w2, ne
             neg     w2, w0
-            add     w2, w2, #1
             cmp     w0, #0
-            csel    w2, wzr, w2, eq
+            csinc   w2, wzr, w2, eq
             mov     x0, x19
             ; byrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -1712,7 +1711,7 @@ G_M26699_IG87:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {
             ; byrRegs -[x0]
             ; gcr arg pop 0
             b       G_M26699_IG91
-						;; size=56 bbWeight=0.50 PerfScore 6.50
+						;; size=52 bbWeight=0.50 PerfScore 6.25
 G_M26699_IG88:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=80000 {x19}, byref, isz
             mov     w11, #30
             cmp     w0, #0
@@ -2984,7 +2983,7 @@ RWD264 	dd	G_M26699_IG66 - G_M26699_IG02
        	dd	G_M26699_IG85 - G_M26699_IG02
 
 
-; Total bytes of code 6624, prolog size 32, PerfScore 1842.90, instruction count 1656, allocated bytes for code 6624 (MethodHash=2db697b4) for method System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
+; Total bytes of code 6620, prolog size 32, PerfScore 1842.25, instruction count 1655, allocated bytes for code 6620 (MethodHash=2db697b4) for method System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -2995,7 +2994,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 1656 (0x00678) Actual length = 6624 (0x0019e0)
+  Function Length   : 1655 (0x00677) Actual length = 6620 (0x0019dc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 26 26 0 0 -132 +0
benchmarks.run_pgo.windows.arm64.checked.mch 26 26 0 0 -128 +0
benchmarks.run_tiered.windows.arm64.checked.mch 8 8 0 0 -56 +0
coreclr_tests.run.windows.arm64.checked.mch 80 80 0 0 -408 +0
libraries.crossgen2.windows.arm64.checked.mch 112 112 0 0 -500 +0
252 252 0 0 -1,224 +0

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,729 1,356 23,373 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.arm64.checked.mch 82,233 47,464 34,769 0 (0.00%) 0 (0.00%)
benchmarks.run_tiered.windows.arm64.checked.mch 46,764 36,397 10,367 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.arm64.checked.mch 581,049 361,262 219,787 0 (0.00%) 0 (0.00%)
libraries.crossgen2.windows.arm64.checked.mch 272,918 15 272,903 0 (0.00%) 0 (0.00%)
1,007,693 446,494 561,199 0 (0.00%) 0 (0.00%)

jit-analyze output

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